diff --git a/apps/roam/src/components/settings/DiscourseNodeCanvasSettings.tsx b/apps/roam/src/components/settings/DiscourseNodeCanvasSettings.tsx index ac39d0e15..ebc47d1ad 100644 --- a/apps/roam/src/components/settings/DiscourseNodeCanvasSettings.tsx +++ b/apps/roam/src/components/settings/DiscourseNodeCanvasSettings.tsx @@ -6,12 +6,12 @@ import { Tooltip, Icon, ControlGroup, - Checkbox, } from "@blueprintjs/core"; import React, { useState, useMemo } from "react"; import getBasicTreeByParentUid from "roamjs-components/queries/getBasicTreeByParentUid"; import getSettingValueFromTree from "roamjs-components/util/getSettingValueFromTree"; import setInputSetting from "roamjs-components/util/setInputSetting"; +import { DiscourseNodeFlagPanel } from "./components/BlockPropSettingPanels"; export const formatHexColor = (color: string) => { if (!color) return ""; @@ -25,7 +25,13 @@ export const formatHexColor = (color: string) => { return ""; }; -const DiscourseNodeCanvasSettings = ({ uid }: { uid: string }) => { +const DiscourseNodeCanvasSettings = ({ + nodeType, + uid, +}: { + nodeType: string; + uid: string; +}) => { const tree = useMemo(() => getBasicTreeByParentUid(uid), [uid]); const [color, setColor] = useState(() => { const color = getSettingValueFromTree({ tree, key: "color" }); @@ -43,6 +49,7 @@ const DiscourseNodeCanvasSettings = ({ uid }: { uid: string }) => { const [keyImageOption, setKeyImageOption] = useState(() => getSettingValueFromTree({ tree, key: "key-image-option" }), ); + return (
@@ -54,7 +61,7 @@ const DiscourseNodeCanvasSettings = ({ uid }: { uid: string }) => { value={color} onChange={(e) => { setColor(e.target.value); - setInputSetting({ + void setInputSetting({ blockUid: uid, key: "color", value: e.target.value.replace("#", ""), // remove hash to not create roam link @@ -67,7 +74,7 @@ const DiscourseNodeCanvasSettings = ({ uid }: { uid: string }) => { icon={color ? "delete" : "info-sign"} onClick={() => { setColor(""); - setInputSetting({ + void setInputSetting({ blockUid: uid, key: "color", value: "", @@ -83,7 +90,7 @@ const DiscourseNodeCanvasSettings = ({ uid }: { uid: string }) => { value={alias} onChange={(e) => { setAlias(e.target.value); - setInputSetting({ + void setInputSetting({ blockUid: uid, key: "alias", value: e.target.value, @@ -91,49 +98,33 @@ const DiscourseNodeCanvasSettings = ({ uid }: { uid: string }) => { }} /> - { - const target = e.target as HTMLInputElement; - setIsKeyImage(target.checked); - if (target.checked) { - if (!keyImageOption) setKeyImageOption("first-image"); - setInputSetting({ - blockUid: uid, - key: "key-image", - value: "true", - }); - } else { - setInputSetting({ - blockUid: uid, - key: "key-image", - value: "false", - }); - } + { + setIsKeyImage(checked); + if (checked && !keyImageOption) setKeyImageOption("first-image"); + void setInputSetting({ + blockUid: uid, + key: "key-image", + value: checked ? "true" : "false", + }); }} - > - Key image - - - - - {/* */} + /> { - const target = e.target as HTMLInputElement; - setKeyImageOption(target.value); - setInputSetting({ + const value = (e.target as HTMLInputElement).value; + setKeyImageOption(value); + void setInputSetting({ blockUid: uid, key: "key-image-option", - value: target.value, + value, }); }} > @@ -155,7 +146,7 @@ const DiscourseNodeCanvasSettings = ({ uid }: { uid: string }) => { value={queryBuilderAlias} onChange={(e) => { setQueryBuilderAlias(e.target.value); - setInputSetting({ + void setInputSetting({ blockUid: uid, key: "query-builder-alias", value: e.target.value, diff --git a/apps/roam/src/components/settings/DiscourseNodeSuggestiveRules.tsx b/apps/roam/src/components/settings/DiscourseNodeSuggestiveRules.tsx index 988928bfb..70088313f 100644 --- a/apps/roam/src/components/settings/DiscourseNodeSuggestiveRules.tsx +++ b/apps/roam/src/components/settings/DiscourseNodeSuggestiveRules.tsx @@ -1,21 +1,16 @@ -import React, { - useState, - useMemo, - useEffect, - useRef, - useCallback, -} from "react"; +import React, { useState, useMemo, useEffect, useRef } from "react"; import { Button, Intent } from "@blueprintjs/core"; import BlocksPanel from "roamjs-components/components/ConfigPanels/BlocksPanel"; -import FlagPanel from "roamjs-components/components/ConfigPanels/FlagPanel"; -import TextPanel from "roamjs-components/components/ConfigPanels/TextPanel"; import getSubTree from "roamjs-components/util/getSubTree"; import { DiscourseNode } from "~/utils/getDiscourseNodes"; import extractRef from "roamjs-components/util/extractRef"; import { getAllDiscourseNodesSince } from "~/utils/getAllDiscourseNodesSince"; import { upsertNodesToSupabaseAsContentWithEmbeddings } from "~/utils/syncDgNodesToSupabase"; -import { discourseNodeBlockToLocalConcept } from "~/utils/conceptConversion"; import { getLoggedInClient, getSupabaseContext } from "~/utils/supabaseContext"; +import { + DiscourseNodeFlagPanel, + DiscourseNodeTextPanel, +} from "./components/BlockPropSettingPanels"; const BlockRenderer = ({ uid }: { uid: string }) => { const containerRef = useRef(null); @@ -44,12 +39,7 @@ const DiscourseNodeSuggestiveRules = ({ }) => { const nodeUid = node.type; - const [embeddingRef, setEmbeddingRef] = useState(node.embeddingRef); - - useEffect(() => { - setEmbeddingRef(node.embeddingRef || ""); - }, [node.embeddingRef]); - + const [embeddingRef, setEmbeddingRef] = useState(node.embeddingRef || ""); const blockUidToRender = useMemo( () => extractRef(embeddingRef), [embeddingRef], @@ -64,14 +54,6 @@ const DiscourseNodeSuggestiveRules = ({ [nodeUid], ); - const handleEmbeddingRefChange = useCallback( - (e: React.ChangeEvent) => { - const newValue = e.target.value; - setEmbeddingRef(newValue); - node.embeddingRef = newValue; - }, - [node], - ); const [isUpdating, setIsUpdating] = useState(false); const handleUpdateEmbeddings = async (): Promise => { @@ -96,6 +78,7 @@ const DiscourseNodeSuggestiveRules = ({ setIsUpdating(false); } }; + return (
- {blockUidToRender && ( @@ -127,13 +110,15 @@ const DiscourseNodeSuggestiveRules = ({
)} -
); -const ValidatedTextareaPanel = ({ - label, - description, - value, - onChange, - onBlur, - placeholder, -}: { - label: string; - description: string; - value: string; - onChange: (e: React.ChangeEvent) => void; - onBlur: () => void; - placeholder?: string; -}) => ( -
-