// ============================================================================ // settings.jsx — Modale Paramètres globaux du coffre. // Les préférences sont stockées dans vault.settings, donc chiffrées avec le // reste du coffre (zero-knowledge). // ============================================================================ (function (global) { 'use strict'; const { useState, useEffect } = React; // ─── Confirmation suppression totale (15s avant que le bouton soit actif) ─ const WipeConfirmModal = ({ onConfirm, onCancel }) => { const [countdown, setCountdown] = useState(15); const [busy, setBusy] = useState(false); useEffect(() => { if (countdown <= 0) return; const id = setInterval(() => setCountdown(c => Math.max(0, c - 1)), 1000); return () => clearInterval(id); }, [countdown]); const submit = async () => { if (countdown > 0 || busy) return; setBusy(true); try { await onConfirm(); } catch { setBusy(false); } }; return (
Cette action est définitive et ne peut pas être annulée.
{countdown > 0 ? <>Le bouton de confirmation deviendra actif dans {countdown} seconde{countdown > 1 ? 's' : ''}.> : <>Vous pouvez maintenant confirmer la suppression.>}
Préférences pour ce coffre. Stockées chiffrées comme le reste.