import { useState, useTransition } from 'react' import { Button } from '@/components/ui/button' import { Dialog, DialogContent, DialogFooter } from '@/components/ui/dialog' import { ScrollArea } from '@/components/ui/scroll-area' import { cn } from '@/lib/utils' import { useUI } from '@/services' import { SettingsSectionProvider } from './provider' import { SettingsSectionAssistant } from './assistant' import { SettingsSectionEditors } from './editors' import { SettingsSectionImage } from './image' import { SettingsSectionVideo } from './video' import { SettingsSectionSound } from './sound' import { SettingsSectionMusic } from './music' import { SettingsSectionVoice } from './voice' import { SettingsCategory } from '@aitube/clapper-services' const panels: Record = { [SettingsCategory.NONE]: <>, [SettingsCategory.PROVIDER]: , [SettingsCategory.ASSISTANT]: , [SettingsCategory.EDITORS]: , [SettingsCategory.IMAGE]: , [SettingsCategory.VIDEO]: , [SettingsCategory.VOICE]: , [SettingsCategory.SOUND]: , [SettingsCategory.MUSIC]: , } const panelLabels = { [SettingsCategory.NONE]: '', [SettingsCategory.PROVIDER]: 'Providers', [SettingsCategory.ASSISTANT]: 'Assistant', [SettingsCategory.EDITORS]: 'Editors', [SettingsCategory.IMAGE]: 'Image', [SettingsCategory.VIDEO]: 'Video', [SettingsCategory.VOICE]: 'Voice', [SettingsCategory.SOUND]: 'Sound', [SettingsCategory.MUSIC]: 'Music', } as any export function SettingsDialog() { const showSettings = useUI((s) => s.showSettings) const setShowSettings = useUI((s) => s.setShowSettings) return ( setShowSettings( open ? SettingsCategory.PROVIDER : SettingsCategory.NONE ) } >
{Object.keys(panels).map((key) => ( ))}
{panels[showSettings]}
) }