From f8eccc274bd855d2e255ef728a02717fcb84433e Mon Sep 17 00:00:00 2001 From: sid597 Date: Mon, 17 Aug 2026 14:53:05 +0530 Subject: [PATCH] ENG-2097 Exclude Page, Block, and Any from relation endpoint selectors --- .../settings/DiscourseRelationConfigPanel.tsx | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/apps/roam/src/components/settings/DiscourseRelationConfigPanel.tsx b/apps/roam/src/components/settings/DiscourseRelationConfigPanel.tsx index b78dff219..a74f70f45 100644 --- a/apps/roam/src/components/settings/DiscourseRelationConfigPanel.tsx +++ b/apps/roam/src/components/settings/DiscourseRelationConfigPanel.tsx @@ -44,7 +44,9 @@ import { render as renderToast } from "roamjs-components/components/Toast"; import getPageTitleByPageUid from "roamjs-components/queries/getPageTitleByPageUid"; import updateBlock from "roamjs-components/writes/updateBlock"; import getTextByBlockUid from "roamjs-components/queries/getTextByBlockUid"; -import getDiscourseNodes from "~/utils/getDiscourseNodes"; +import getDiscourseNodes, { + excludeDefaultNodes, +} from "~/utils/getDiscourseNodes"; import { isRelationComplete } from "~/utils/isRelationComplete"; import { getConditionLabels } from "~/utils/conditionToDatalog"; import { formatHexColor } from "./DiscourseNodeCanvasSettings"; @@ -81,6 +83,7 @@ const edgeDisplayByUid = (uid: string) => export const RelationEditPanel = ({ editingRelationInfo, nodes, + configuredNodeTypes, back, translatorKeys, previewUid, @@ -88,6 +91,7 @@ export const RelationEditPanel = ({ editingRelationInfo: TreeNode; back: () => void; nodes: Record; + configuredNodeTypes: string[]; translatorKeys: string[]; previewUid: string; }) => { @@ -748,7 +752,7 @@ export const RelationEditPanel = ({ ); } }} - items={Object.keys(nodes)} + items={configuredNodeTypes} transformItem={transformItem} /> @@ -765,7 +769,7 @@ export const RelationEditPanel = ({ ).data("node", nodes[e]?.label); } }} - items={Object.keys(nodes)} + items={configuredNodeTypes} transformItem={transformItem} /> @@ -991,16 +995,20 @@ const DiscourseRelationConfigPanel = ({ })), [], ); - const nodes = useMemo(() => { + const { nodes, configuredNodeTypes } = useMemo(() => { + const discourseNodes = getDiscourseNodes(); const nodes = Object.fromEntries( - getDiscourseNodes().map((n) => { + discourseNodes.map((n) => { const color = formatHexColor(n.canvasSettings.color); return [n.type, { label: n.text, format: n.format, color }]; }), ); // TypeError: Iterator value * is not an entry object nodes["*"] = { label: "Any", format: ".+", color: "#000" }; - return nodes; + const configuredNodeTypes = discourseNodes + .filter(excludeDefaultNodes) + .map((n) => n.type); + return { nodes, configuredNodeTypes }; }, []); const previewUid = useSubTree({ parentUid, key: "preview" }).uid; const [translatorKeys, setTranslatorKeys] = useState(getConditionLabels); @@ -1148,6 +1156,7 @@ const DiscourseRelationConfigPanel = ({