@@ -2,12 +2,18 @@ import { Button, InputGroup } from "@blueprintjs/core";
22import posthog from "posthog-js" ;
33import React , { useState } from "react" ;
44import type { OnloadArgs } from "roamjs-components/types" ;
5+ import {
6+ getPersonalSetting ,
7+ setPersonalSetting ,
8+ } from "~/components/settings/utils/accessors" ;
59
6- export const getQueryPages = ( extensionAPI : OnloadArgs [ "extensionAPI" ] ) => {
7- const value = extensionAPI . settings . get ( "query-pages" ) as
8- | string [ ]
9- | string
10- | Record < string , string > ;
10+ // Legacy extensionAPI stored query-pages as string | string[] | Record<string, string>.
11+ // Coerce to string[] for backward compatibility with old stored formats.
12+ export const getQueryPages = ( ) : string [ ] => {
13+ const value = getPersonalSetting < string [ ] | string | Record < string , string > > ( [
14+ "Query" ,
15+ "Query pages" ,
16+ ] ) ;
1117 return typeof value === "string"
1218 ? [ value ]
1319 : Array . isArray ( value )
@@ -22,8 +28,13 @@ const QueryPagesPanel = ({
2228} : {
2329 extensionAPI : OnloadArgs [ "extensionAPI" ] ;
2430} ) => {
25- const [ texts , setTexts ] = useState ( ( ) => getQueryPages ( extensionAPI ) ) ;
31+ const [ texts , setTexts ] = useState ( ( ) => getQueryPages ( ) ) ;
2632 const [ value , setValue ] = useState ( "" ) ;
33+ const setQueryPages = ( newTexts : string [ ] ) => {
34+ setPersonalSetting ( [ "Query" , "Query pages" ] , newTexts ) ;
35+ void extensionAPI . settings . set ( "query-pages" , newTexts ) ;
36+ } ;
37+
2738 return (
2839 < div
2940 className = "flex flex-col"
@@ -45,7 +56,7 @@ const QueryPagesPanel = ({
4556 onClick = { ( ) => {
4657 const newTexts = [ ...texts , value ] ;
4758 setTexts ( newTexts ) ;
48- extensionAPI . settings . set ( "query-pages" , newTexts ) ;
59+ setQueryPages ( newTexts ) ;
4960 setValue ( "" ) ;
5061 posthog . capture ( "Query Page: Page Format Added" , {
5162 newType : value ,
@@ -70,7 +81,7 @@ const QueryPagesPanel = ({
7081 onClick = { ( ) => {
7182 const newTexts = texts . filter ( ( _ , jndex ) => index !== jndex ) ;
7283 setTexts ( newTexts ) ;
73- extensionAPI . settings . set ( "query-pages" , newTexts ) ;
84+ setQueryPages ( newTexts ) ;
7485 } }
7586 />
7687 </ div >
0 commit comments