diff --git a/packages/studio/src/api/server.ts b/packages/studio/src/api/server.ts index adc32a5d..75dee94e 100644 --- a/packages/studio/src/api/server.ts +++ b/packages/studio/src/api/server.ts @@ -451,9 +451,9 @@ export function createStudioServer(initialConfig: ProjectConfig, root: string) { const storyDir = join(bookDir, "story"); try { const files = await readdir(storyDir); - const mdFiles = files.filter((f) => f.endsWith(".md") || f.endsWith(".json")); + const filteredFiles = files.filter((f) => TRUTH_FILES.includes(f)); const result = await Promise.all( - mdFiles.map(async (f) => { + filteredFiles.map(async (f) => { const content = await readFile(join(storyDir, f), "utf-8"); return { name: f, size: content.length, preview: content.slice(0, 200) }; }), diff --git a/packages/studio/src/pages/TruthFiles.tsx b/packages/studio/src/pages/TruthFiles.tsx index 37d0d1f4..b8354232 100644 --- a/packages/studio/src/pages/TruthFiles.tsx +++ b/packages/studio/src/pages/TruthFiles.tsx @@ -23,10 +23,16 @@ export function TruthFiles({ bookId, nav, theme, t }: { bookId: string; nav: Nav const [editMode, setEditMode] = useState(false); const [editText, setEditText] = useState(""); const [savingEdit, setSavingEdit] = useState(false); - const { data: fileData, refetch: refetchFile } = useApi<{ file: string; content: string | null }>( + const { data: fileData, loading: fileLoading, error: fileError, refetch: refetchFile } = useApi<{ file: string; content: string | null }>( selected ? `/books/${bookId}/truth/${selected}` : "", ); + // Clear edit mode when switching files + const handleSelect = (name: string) => { + setSelected(name); + setEditMode(false); + }; + const startEdit = () => { setEditText(fileData?.content ?? ""); setEditMode(true); @@ -72,7 +78,7 @@ export function TruthFiles({ bookId, nav, theme, t }: { bookId: string; nav: Nav {data?.files.map((f) => (