From 75f78fdce06053b7da7fb29864044f854576029b Mon Sep 17 00:00:00 2001 From: Trang Doan Date: Mon, 26 May 2025 16:59:56 -0400 Subject: [PATCH 1/5] UI ready --- .../src/components/NodeTypeSettings.tsx | 34 +++++++++++++++++-- apps/obsidian/src/constants.ts | 3 ++ apps/obsidian/src/types.ts | 1 + apps/obsidian/src/utils/getTemplateFiles.ts | 32 +++++++++++++++++ 4 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 apps/obsidian/src/utils/getTemplateFiles.ts diff --git a/apps/obsidian/src/components/NodeTypeSettings.tsx b/apps/obsidian/src/components/NodeTypeSettings.tsx index 0e3a00d79..f5178664e 100644 --- a/apps/obsidian/src/components/NodeTypeSettings.tsx +++ b/apps/obsidian/src/components/NodeTypeSettings.tsx @@ -1,4 +1,4 @@ -import { useState } from "react"; +import { useState, useEffect } from "react"; import { validateAllNodes, validateNodeFormat, @@ -9,6 +9,7 @@ import { Notice } from "obsidian"; import generateUid from "~/utils/generateUid"; import { DiscourseNode } from "~/types"; import { ConfirmationModal } from "./ConfirmationModal"; +import { getTemplateFiles } from "~/utils/getTemplateFiles"; const NodeTypeSettings = () => { const plugin = usePlugin(); @@ -17,6 +18,15 @@ const NodeTypeSettings = () => { ); const [formatErrors, setFormatErrors] = useState>({}); const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false); + const [templateFiles, setTemplateFiles] = useState([]); + + useEffect(() => { + const loadTemplateFiles = async () => { + const files = await getTemplateFiles(plugin.app); + setTemplateFiles(files); + }; + loadTemplateFiles(); + }, [plugin.app]); const updateErrors = ( index: number, @@ -44,7 +54,12 @@ const NodeTypeSettings = () => { const updatedNodeTypes = [...nodeTypes]; if (!updatedNodeTypes[index]) { const newId = generateUid("node"); - updatedNodeTypes[index] = { id: newId, name: "", format: "" }; + updatedNodeTypes[index] = { + id: newId, + name: "", + format: "", + template: "", + }; } updatedNodeTypes[index][field] = value; @@ -69,6 +84,7 @@ const NodeTypeSettings = () => { id: newId, name: "", format: "", + template: "", }, ]; setNodeTypes(updatedNodeTypes); @@ -153,6 +169,20 @@ const NodeTypeSettings = () => { } className="flex-1" /> +