diff --git a/src/app/(app)/dashboard/@admin/settings/language-server/accordion.tsx b/src/app/(app)/dashboard/@admin/settings/language-server/accordion.tsx new file mode 100644 index 0000000..f72e9c0 --- /dev/null +++ b/src/app/(app)/dashboard/@admin/settings/language-server/accordion.tsx @@ -0,0 +1,70 @@ +"use client"; + +import { + Accordion, + AccordionContent, + AccordionItem, + AccordionTrigger, +} from "@/components/ui/accordion"; +import { Loading } from "@/components/loading"; +import { useAdminSettingsStore } from "@/store/useAdminSettingsStore"; +import { EditorLanguage, LanguageServerConfig } from "@prisma/client"; +import { SettingsLanguageServerForm } from "@/app/(app)/dashboard/@admin/settings/language-server/form"; + +interface LanguageServerAccordionProps { + configs: { + language: EditorLanguage; + config: LanguageServerConfig | null; + }[]; +} + +export function LanguageServerAccordion({ + configs, +}: LanguageServerAccordionProps) { + const { hydrated, activeLanguageServerSetting, setActiveLanguageServerSetting } = + useAdminSettingsStore(); + + if (!hydrated) return ; + + return ( + + {configs.map(({ language, config }) => ( + + + {language.toUpperCase()} + + +
+ +
+
+
+ ))} +
+ ); +}