import { Badge } from '@/components/ui/badge' import { Button } from '@/components/ui/button' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { Cloud, Cpu, Database, Download, HardDrive, Upload } from '@phosphor-icons/react' import { getBackendCopy, storageSettingsCopy, } from '@/components/storage/storageSettingsConfig' import type { StorageBackendKey } from '@/components/storage/storageSettingsConfig' import type { StorageSettingsWrapperProps } from './interfaces' const getBackendIcon = (backend: StorageBackendKey | null) => { switch (backend) { case 'flask': return case 'indexeddb': return case 'sqlite': return case 'sparkkv': return default: return } } export function StorageSettingsWrapper({ backend = null, isLoading = false, flaskUrl = storageSettingsCopy.molecule.flaskUrlPlaceholder, isSwitching = false, onFlaskUrlChange, onSwitchToFlask, onSwitchToIndexedDB, onSwitchToSQLite, isExporting = false, isImporting = false, onExport, onImport, }: StorageSettingsWrapperProps) { const backendCopy = getBackendCopy(backend) return (
{getBackendIcon(backend)} {storageSettingsCopy.molecule.title} {storageSettingsCopy.molecule.description}
{storageSettingsCopy.molecule.currentBackendLabel} {getBackendIcon(backend)} {backendCopy.moleculeLabel}
onFlaskUrlChange?.(e.target.value)} placeholder={storageSettingsCopy.molecule.flaskUrlPlaceholder} disabled={isSwitching || isLoading} />

{storageSettingsCopy.molecule.flaskHelp}

{storageSettingsCopy.molecule.backendDetails.indexeddb}

{storageSettingsCopy.molecule.backendDetails.sqlite}

{storageSettingsCopy.molecule.backendDetails.flask}

{storageSettingsCopy.molecule.dataTitle} {storageSettingsCopy.molecule.dataDescription}

{storageSettingsCopy.molecule.dataHelp}

) }