Skip to content

Commit 2d2bb77

Browse files
committed
suggestive mode flags migrate
1 parent 0fc7b27 commit 2d2bb77

File tree

2 files changed

+17
-26
lines changed

2 files changed

+17
-26
lines changed

apps/roam/src/components/settings/SuggestiveModeSettings.tsx

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,33 @@
22
import React, { useEffect, useState } from "react";
33
import { Button, Intent, Tabs, Tab, TabId } from "@blueprintjs/core";
44
import { getFormattedConfigTree } from "~/utils/discourseConfigRef";
5-
import FlagPanel from "roamjs-components/components/ConfigPanels/FlagPanel";
65
import PageGroupsPanel from "./PageGroupPanel";
76
import createBlock from "roamjs-components/writes/createBlock";
87
import getPageUidByPageTitle from "roamjs-components/queries/getPageUidByPageTitle";
98
import { DISCOURSE_CONFIG_PAGE_TITLE } from "~/utils/renderNodeConfigPage";
109
import { createOrUpdateDiscourseEmbedding } from "~/utils/syncDgNodesToSupabase";
1110
import { render as renderToast } from "roamjs-components/components/Toast";
11+
import { BlockPropFlagPanel } from "./components/BlockPropGlobalSettingPanels";
12+
import { getGlobalSetting } from "./utils/accessors";
1213

1314
const SuggestiveModeSettings = () => {
15+
// Keep old config tree for PageGroups (not yet migrated)
1416
const settings = getFormattedConfigTree();
17+
const pageGroupsUid = settings.suggestiveMode.pageGroups.uid;
1518

1619
const [suggestiveModeUid, setSuggestiveModeUid] = useState(
1720
settings.suggestiveMode.parentUid,
1821
);
19-
const pageGroupsUid = settings.suggestiveMode.pageGroups.uid;
2022

21-
const [includePageRelations, setIncludePageRelations] = useState(
22-
settings.suggestiveMode.includePageRelations.value,
23+
// Track includePageRelations to control the disabled state of includeParentAndChildren
24+
const [includePageRelations, setIncludePageRelations] = useState(() =>
25+
getGlobalSetting<boolean>([
26+
"Suggestive Mode",
27+
"Include Current Page Relations",
28+
]),
2329
);
2430

31+
// Keep this useEffect for PageGroups compatibility (old system)
2532
useEffect(() => {
2633
if (suggestiveModeUid) return;
2734
void (async () => {
@@ -33,9 +40,6 @@ const SuggestiveModeSettings = () => {
3340
})();
3441
}, [suggestiveModeUid]);
3542

36-
const effectiveSuggestiveModeUid =
37-
suggestiveModeUid || settings.suggestiveMode.parentUid;
38-
3943
const [selectedTabId, setSelectedTabId] = useState<TabId>("page-groups");
4044

4145
return (
@@ -64,35 +68,21 @@ const SuggestiveModeSettings = () => {
6468
panel={
6569
<div className="flex flex-col gap-4 p-1">
6670
<div className="sync-config-settings">
67-
<FlagPanel
71+
<BlockPropFlagPanel
6872
title="Include Current Page Relations"
6973
description="Include relations from pages referenced on the current page"
70-
order={0}
71-
uid={settings.suggestiveMode.includePageRelations.uid}
72-
parentUid={effectiveSuggestiveModeUid}
73-
value={includePageRelations}
74-
options={{
75-
onChange: (checked: boolean) => {
76-
setIncludePageRelations(checked);
77-
},
78-
}}
74+
settingKeys={["Suggestive Mode", "Include Current Page Relations"]}
75+
onChange={setIncludePageRelations}
7976
/>
8077

81-
<FlagPanel
78+
<BlockPropFlagPanel
8279
title="Include Parent And Child Blocks"
8380
description={
8481
includePageRelations
8582
? "Include relations from parent and child blocks (automatically enabled when including page relations)"
8683
: "Include relations from parent and child blocks"
8784
}
88-
order={1}
89-
uid={settings.suggestiveMode.includeParentAndChildren.uid}
90-
parentUid={effectiveSuggestiveModeUid}
91-
value={
92-
includePageRelations
93-
? true
94-
: settings.suggestiveMode.includeParentAndChildren.value
95-
}
85+
settingKeys={["Suggestive Mode", "Include Parent And Child Blocks"]}
9686
disabled={includePageRelations}
9787
/>
9888
</div>

apps/roam/src/components/settings/components/BlockPropGlobalSettingPanels.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ export const BlockPropMultiTextPanel = ({
177177
};
178178

179179
const handleRemove = (index: number) => {
180+
// eslint-disable-next-line @typescript-eslint/naming-convention
180181
const newValues = values.filter((_, i) => i !== index);
181182
setValues(newValues);
182183
setGlobalSetting(settingKeys, newValues);

0 commit comments

Comments
 (0)