From dd36f335de970ea7015cf725fd3e7800c4b591d2 Mon Sep 17 00:00:00 2001 From: chihlasm Date: Fri, 13 Mar 2026 02:10:46 -0400 Subject: [PATCH] feat: add ScriptTemplateList with skeleton and empty states Co-Authored-By: Claude Sonnet 4.6 --- .../components/scripts/ScriptTemplateList.tsx | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 frontend/src/components/scripts/ScriptTemplateList.tsx diff --git a/frontend/src/components/scripts/ScriptTemplateList.tsx b/frontend/src/components/scripts/ScriptTemplateList.tsx new file mode 100644 index 00000000..d6cb1dd1 --- /dev/null +++ b/frontend/src/components/scripts/ScriptTemplateList.tsx @@ -0,0 +1,68 @@ +import { FileCode, Search } from 'lucide-react' +import { useScriptGeneratorStore } from '@/store/scriptGeneratorStore' +import { TemplateCard } from './TemplateCard' + +interface Props { + inputValue: string + onClearSearch: () => void +} + +function TemplateSkeleton() { + return ( +
+
+
+
+
+
+
+
+ ) +} + +export function ScriptTemplateList({ inputValue, onClearSearch }: Props) { + const templates = useScriptGeneratorStore(s => s.templates) + const isLoadingTemplates = useScriptGeneratorStore(s => s.isLoadingTemplates) + + if (isLoadingTemplates) { + return ( +
+ + + +
+ ) + } + + if (templates.length === 0) { + if (inputValue !== '') { + return ( +
+ +

No templates match your search

+ +
+ ) + } + return ( +
+ +

No templates found

+
+ ) + } + + return ( +
+ {templates.map(template => ( + + ))} +
+ ) +}