From f6301fb86ef99a9113c4f98623c97cfa3cebd510 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 16 Sep 2025 17:19:29 +0000 Subject: [PATCH 1/2] Fix: Default node search trigger to '@' Co-authored-by: mclicks --- apps/roam/src/components/DiscourseNodeSearchMenu.tsx | 2 +- apps/roam/src/utils/initializeObserversAndListeners.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/roam/src/components/DiscourseNodeSearchMenu.tsx b/apps/roam/src/components/DiscourseNodeSearchMenu.tsx index a7bc6e77d..6b9ac82b8 100644 --- a/apps/roam/src/components/DiscourseNodeSearchMenu.tsx +++ b/apps/roam/src/components/DiscourseNodeSearchMenu.tsx @@ -536,7 +536,7 @@ export const NodeSearchMenuTriggerSetting = ({ }) => { const extensionAPI = onloadArgs.extensionAPI; const [nodeSearchTrigger, setNodeSearchTrigger] = useState( - extensionAPI.settings.get("node-search-trigger") as string, + (extensionAPI.settings.get("node-search-trigger") as string) || "@", ); const handleNodeSearchTriggerChange = ( diff --git a/apps/roam/src/utils/initializeObserversAndListeners.ts b/apps/roam/src/utils/initializeObserversAndListeners.ts index 5c438e2bd..93024bb96 100644 --- a/apps/roam/src/utils/initializeObserversAndListeners.ts +++ b/apps/roam/src/utils/initializeObserversAndListeners.ts @@ -230,9 +230,9 @@ export const initObservers = async ({ } }; - const customTrigger = onloadArgs.extensionAPI.settings.get( + const customTrigger = (onloadArgs.extensionAPI.settings.get( "node-search-trigger", - ) as string; + ) as string) || "@"; const discourseNodeSearchTriggerListener = (e: Event) => { const evt = e as KeyboardEvent; From fae3bf07ed2116b84cca0c6dc6ccf1117ad92a4a Mon Sep 17 00:00:00 2001 From: Michael Gartner Date: Thu, 18 Sep 2025 13:43:37 -0600 Subject: [PATCH 2/2] Refactor: Replace direct API calls with getSetting for node search trigger - Updated the NodeSearchMenuTriggerSetting and initObservers functions to use the getSetting utility for retrieving the default node search trigger, improving consistency and maintainability. --- apps/roam/src/components/DiscourseNodeSearchMenu.tsx | 3 ++- apps/roam/src/utils/initializeObserversAndListeners.ts | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/roam/src/components/DiscourseNodeSearchMenu.tsx b/apps/roam/src/components/DiscourseNodeSearchMenu.tsx index 6b9ac82b8..3cdf9668a 100644 --- a/apps/roam/src/components/DiscourseNodeSearchMenu.tsx +++ b/apps/roam/src/components/DiscourseNodeSearchMenu.tsx @@ -25,6 +25,7 @@ import getDiscourseNodes, { DiscourseNode } from "~/utils/getDiscourseNodes"; import getDiscourseNodeFormatExpression from "~/utils/getDiscourseNodeFormatExpression"; import { escapeCljString } from "~/utils/formatUtils"; import { Result } from "~/utils/types"; +import { getSetting } from "~/utils/extensionSettings"; type Props = { textarea: HTMLTextAreaElement; @@ -536,7 +537,7 @@ export const NodeSearchMenuTriggerSetting = ({ }) => { const extensionAPI = onloadArgs.extensionAPI; const [nodeSearchTrigger, setNodeSearchTrigger] = useState( - (extensionAPI.settings.get("node-search-trigger") as string) || "@", + getSetting("node-search-trigger", "@"), ); const handleNodeSearchTriggerChange = ( diff --git a/apps/roam/src/utils/initializeObserversAndListeners.ts b/apps/roam/src/utils/initializeObserversAndListeners.ts index 93024bb96..98ff16a9d 100644 --- a/apps/roam/src/utils/initializeObserversAndListeners.ts +++ b/apps/roam/src/utils/initializeObserversAndListeners.ts @@ -45,6 +45,7 @@ import { } from "~/utils/renderTextSelectionPopup"; import { renderNodeTagPopupButton } from "./renderNodeTagPopup"; import { formatHexColor } from "~/components/settings/DiscourseNodeCanvasSettings"; +import { getSetting } from "./extensionSettings"; const debounce = (fn: () => void, delay = 250) => { let timeout: number; @@ -230,9 +231,7 @@ export const initObservers = async ({ } }; - const customTrigger = (onloadArgs.extensionAPI.settings.get( - "node-search-trigger", - ) as string) || "@"; + const customTrigger = getSetting("node-search-trigger", "@"); const discourseNodeSearchTriggerListener = (e: Event) => { const evt = e as KeyboardEvent;