/* FreeSize — Einstellungen (Settings) view */ function SettingsView({ tweaks, setTweak, nav }) { const { fmt } = window.FZ; const volumes = window.VOLUMES; const [licensed, setLicensed] = React.useState(false); const [key, setKey] = React.useState(""); const [licMsg, setLicMsg] = React.useState(null); const [autoSync, setAutoSync] = React.useState(true); const [interval, setIntervalMin] = React.useState(60); const [monitored, setMonitored] = React.useState(new Set()); const [saved, setSaved] = React.useState(false); const savedT = React.useRef(null); const activate = () => { if (key.trim().length < 6) { setLicMsg({ ok: false, t: "Bitte einen gültigen Lizenzschlüssel eingeben." }); return; } setLicensed(true); setLicMsg({ ok: true, t: "Lizenz erfolgreich aktiviert. Willkommen bei FreeSize Pro!" }); }; const save = () => { setSaved(true); clearTimeout(savedT.current); savedT.current = setTimeout(() => setSaved(false), 2200); }; const toggleVol = (id) => setMonitored((p) => { const n = new Set(p); n.has(id) ? n.delete(id) : n.add(id); return n; }); const ToggleSwitch = ({ on, onClick }) => ( ); const proOverlay = (
Nur in FreeSize Pro
); return (

Einstellungen

Erscheinungsbild, Lizenz, Synchronisierung und überwachte Volumes verwalten.

{/* ---- Appearance ---- */}
{tweaks.dark ? : }

Erscheinungsbild

Helles oder dunkles Design.

Dunkles Design
Dunkle Oberfläche für wenig Umgebungslicht.
setTweak("dark", !tweaks.dark)} />
{/* ---- License ---- */}

Lizenz

Status deiner FreeSize-Aktivierung.

{licensed ? FreeSize Pro aktiv : Nicht aktiviert}
{licensed ? (
FreeSize Pro
Hintergrund-Synchronisierung und Portal-Metriken sind freigeschaltet.
) : (
Auf FreeSize Pro upgraden
Schalte die kontinuierliche Überwachung und das Portal-Dashboard für all deine Geräte frei.
    {["Automatische Metrik-Synchronisierung", "Volume-Überwachung im Hintergrund", "Verlauf & Trends im FreeSize-Portal", "Mehrere Geräte zentral verwalten"].map((f) => (
  • {f}
  • ))}
setKey(e.target.value)} />
{licMsg && (
{licMsg.t}
)}
FreeSize Pro
CHF 29/Jahr
)}
{/* ---- Sync (Pro) ---- */}

Synchronisierung

Volume-Metriken an das FreeSize-Portal senden.

Automatische Metrik-Synchronisierung
Sendet regelmässig Auslastungsdaten der überwachten Volumes.
setAutoSync((s) => !s)} />
Intervall
Wie oft Metriken gesendet werden.
setIntervalMin(Math.max(5, +e.target.value || 5))} style={{ width: 86, opacity: autoSync ? 1 : 0.5 }} disabled={!autoSync} /> Minuten
Letzte Synchronisierung
{autoSync ? "Heute, 14:32" : "—"}
{!licensed && proOverlay}
{/* ---- Monitored volumes (Pro) ---- */}

Überwachte Volumes

Ohne Auswahl werden alle erkannten Volumes überwacht.

{volumes.map((v) => (
toggleVol(v.id)} style={{ cursor: "pointer" }}> {v.label} {v.caption} {fmt(v.total)}
))}
{!licensed && proOverlay}
{/* ---- Actions ---- */}
Gespeichert
{/* ---- Info ---- */}
Geräte-ID
Für den Support — eindeutige Kennung dieses Geräts.
7F3A-9C21-D8E0-4B65
Version
FreeSize 0.1.0
); } window.SettingsView = SettingsView;