Files
GovAI/apps/web/src/hooks/use-app-config.ts
T
2026-06-15 23:48:37 +08:00

39 lines
975 B
TypeScript

"use client";
import { useMemo, useRef } from "react";
import type { App } from "@/lib/types";
/**
* 解析 app.app_config(可能是 JSON 字符串或对象)。
* completion-ui / workflow-ui / agent-ui 共用。
*/
export function useAppConfig(app: App): Record<string, unknown> {
return useMemo(() => {
try {
if (typeof app.app_config === "string")
return JSON.parse(app.app_config);
return app.app_config || {};
} catch {
return {};
}
}, [app.app_config]);
}
/**
* 解析 app.suggested_prompts(可能是 JSON 字符串或数组)。
* chatbot-ui / agent-ui 共用。
*/
export function useSuggestedPrompts(app: App): string[] {
return useRef(
(() => {
try {
if (typeof app.suggested_prompts === "string")
return JSON.parse(app.suggested_prompts) as string[];
return (app.suggested_prompts as string[]) || [];
} catch {
return [];
}
})(),
).current;
}