From 5ccc0713071672c1f4286f8926fa10b330778196 Mon Sep 17 00:00:00 2001 From: sid597 Date: Tue, 17 Feb 2026 17:57:03 +0530 Subject: [PATCH 1/2] dual write page group to block props --- .../components/settings/PageGroupPanel.tsx | 43 +++++++++++++------ apps/roam/src/index.ts | 2 +- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/apps/roam/src/components/settings/PageGroupPanel.tsx b/apps/roam/src/components/settings/PageGroupPanel.tsx index 27f95476d..2d36f9e02 100644 --- a/apps/roam/src/components/settings/PageGroupPanel.tsx +++ b/apps/roam/src/components/settings/PageGroupPanel.tsx @@ -6,6 +6,14 @@ import createBlock from "roamjs-components/writes/createBlock"; import deleteBlock from "roamjs-components/writes/deleteBlock"; import getAllPageNames from "roamjs-components/queries/getAllPageNames"; import { type PageGroup } from "~/utils/getSuggestiveModeConfigSettings"; +import { setGlobalSetting } from "~/components/settings/utils/accessors"; + +const syncPageGroupsToBlockProps = (groups: PageGroup[]) => { + setGlobalSetting( + ["Suggestive Mode", "Page Groups"], + groups.map((g) => ({ name: g.name, pages: g.pages.map((p) => p.name) })), + ); +}; const PageGroupsPanel = ({ uid, @@ -31,7 +39,12 @@ const PageGroupsPanel = ({ parentUid: uid, node: { text: name }, }); - setPageGroups([...pageGroups, { uid: newGroupUid, name, pages: [] }]); + const updatedGroups = [ + ...pageGroups, + { uid: newGroupUid, name, pages: [] }, + ]; + setPageGroups(updatedGroups); + syncPageGroupsToBlockProps(updatedGroups); setNewGroupName(""); setGroupKeys((prev) => prev + 1); } catch (e) { @@ -42,7 +55,9 @@ const PageGroupsPanel = ({ const removeGroup = async (groupUid: string) => { try { await deleteBlock(groupUid); - setPageGroups(pageGroups.filter((g) => g.uid !== groupUid)); + const updatedGroups = pageGroups.filter((g) => g.uid !== groupUid); + setPageGroups(updatedGroups); + syncPageGroupsToBlockProps(updatedGroups); } catch (e) { console.error("Error removing group", e); } @@ -58,13 +73,13 @@ const PageGroupsPanel = ({ parentUid: groupUid, node: { text: page }, }); - setPageGroups( - pageGroups.map((g) => - g.uid === groupUid - ? { ...g, pages: [...g.pages, { uid: newPageUid, name: page }] } - : g, - ), + const updatedGroups = pageGroups.map((g) => + g.uid === groupUid + ? { ...g, pages: [...g.pages, { uid: newPageUid, name: page }] } + : g, ); + setPageGroups(updatedGroups); + syncPageGroupsToBlockProps(updatedGroups); setNewPageInputs((prev) => ({ ...prev, [groupUid]: "", @@ -81,13 +96,13 @@ const PageGroupsPanel = ({ const removePageFromGroup = async (groupUid: string, pageUid: string) => { try { await deleteBlock(pageUid); - setPageGroups( - pageGroups.map((g) => - g.uid === groupUid - ? { ...g, pages: g.pages.filter((p) => p.uid !== pageUid) } - : g, - ), + const updatedGroups = pageGroups.map((g) => + g.uid === groupUid + ? { ...g, pages: g.pages.filter((p) => p.uid !== pageUid) } + : g, ); + setPageGroups(updatedGroups); + syncPageGroupsToBlockProps(updatedGroups); } catch (e) { console.error("Error removing page from group", e); } diff --git a/apps/roam/src/index.ts b/apps/roam/src/index.ts index 0579784c3..acc26eb1d 100644 --- a/apps/roam/src/index.ts +++ b/apps/roam/src/index.ts @@ -42,6 +42,7 @@ import { DISALLOW_DIAGNOSTICS, } from "./data/userSettings"; import { initSchema } from "./components/settings/utils/init"; + export const DEFAULT_CANVAS_PAGE_FORMAT = "Canvas/*"; export default runExtension(async (onloadArgs) => { @@ -155,7 +156,6 @@ export default runExtension(async (onloadArgs) => { } await initSchema(); - return { elements: [ style, From d1168f9216b27826a193d1e262224041c62df34c Mon Sep 17 00:00:00 2001 From: sid597 Date: Tue, 17 Feb 2026 18:28:51 +0530 Subject: [PATCH 2/2] fix after restack --- apps/roam/src/components/settings/PageGroupPanel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/roam/src/components/settings/PageGroupPanel.tsx b/apps/roam/src/components/settings/PageGroupPanel.tsx index 2d36f9e02..e581a2d15 100644 --- a/apps/roam/src/components/settings/PageGroupPanel.tsx +++ b/apps/roam/src/components/settings/PageGroupPanel.tsx @@ -10,7 +10,7 @@ import { setGlobalSetting } from "~/components/settings/utils/accessors"; const syncPageGroupsToBlockProps = (groups: PageGroup[]) => { setGlobalSetting( - ["Suggestive Mode", "Page Groups"], + ["Suggestive mode", "Page groups"], groups.map((g) => ({ name: g.name, pages: g.pages.map((p) => p.name) })), ); };