import React from 'react'; import { Button } from '@/components/ui/button'; import { Link } from 'react-router-dom'; import { Sheet, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from '@/components/ui/sheet'; import AppearanceToggleDropdown from '@/components/appearance-dropdown'; import { Settings, ChevronDown } from 'lucide-react'; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/components/ui/collapsible'; export default function Header({ title = '' }: { title?: string }) { return (
{title}
); } function SettingsSheet() { return ( Einstellungen
Cache
Rechtliches
  • Impressum
  • Datenschutz
  • AGB
); } function ClearCacheButton() { const [busy, setBusy] = React.useState(false); const [done, setDone] = React.useState(false); async function clearAll() { setBusy(true); setDone(false); try { // Clear CacheStorage if ('caches' in window) { const keys = await caches.keys(); await Promise.all(keys.map((k) => caches.delete(k))); } // Clear known IndexedDB dbs (best-effort) if ('indexedDB' in window) { try { await new Promise((res, rej) => { const r = indexedDB.deleteDatabase('upload-queue'); r.onsuccess=()=>res(null); r.onerror=()=>res(null); }); } catch {} } setDone(true); } finally { setBusy(false); setTimeout(() => setDone(false), 2500); } } return (
{done &&
Cache gelöscht.
}
); }