import { useState } from "react"; import { INK, RED, BLUE, PAPER, SKY, MUTE, FONT_MONO, FONT_SERIF } from "../../theme"; import { FAREWELL_MAX, GENERAL_CONTACT } from "../../constants"; import ExportDialog from "./ExportDialog"; import PrivacyDialog from "../privacy/PrivacyDialog"; /* * Jouw gegevens (AVG), onderaan Mijn profiel: inzage (onExport() → Promise, getoond in * ExportDialog) en vergetelheid (onDelete(password, farewell) → Promise; daarna is de sessie weg * en toont App het inlogscherm). Verwijderen vraagt eerst het wachtwoord, inline — geen * browser-confirm, want er is echt iets in te vullen. * * In datzelfde formulier staat de brief aan de beheerder. Dat is de enige plek waar hij thuishoort: * wie weggaat heeft meestal een reden, en die reden is precies wat je nooit te horen krijgt als het * vertrek één knop is. Hij is niet verplicht, hij houdt niets tegen, en hij blijft staan zonder wie * hem schreef — dus antwoorden kan niet, en dat staat er ook bij. */ const FAREWELL_START = { text: "", open: false }; export default function DataSection({ email, onExport, onDelete }) { const [exp, setExp] = useState({ busy: false, data: null, error: null }); const [del, setDel] = useState({ open: false, password: "", busy: false, error: null }); const [farewell, setFarewell] = useState(FAREWELL_START); const [privacyOpen, setPrivacyOpen] = useState(false); const exportData = async () => { setExp({ busy: true, data: null, error: null }); try { setExp({ busy: false, data: await onExport(), error: null }); } catch (e) { setExp({ busy: false, data: null, error: e.message }); } }; const deleteAccount = async (e) => { e.preventDefault(); if (!del.password) return; setDel((d) => ({ ...d, busy: true, error: null })); try { await onDelete(del.password, farewell.text); // gelukt: de sessie is gewist, App wisselt naar het inlogscherm — hier valt niets meer te tonen } catch (err) { setDel((d) => ({ ...d, busy: false, error: err.message })); } }; const closeDelete = () => { setDel({ open: false, password: "", busy: false, error: null }); setFarewell(FAREWELL_START); }; const outline = (color) => ({ background: "#fff", color, border: `2px solid ${color}`, padding: "8px 14px", fontSize: 13, fontWeight: 600 }); return (

Jouw gegevens

Je kunt altijd opvragen wat we van je bewaren (je profiel, brieven, favorieten, blokkades en sessies) en je account met alles erin laten wissen — zoals de AVG voorschrijft. Wat we bewaren en waarom staat in de{" "} .

{privacyOpen && setPrivacyOpen(false)} />}
{!del.open && ( )}
{exp.error && (

fout: {exp.error}

)} {exp.data && setExp((s) => ({ ...s, data: null }))} />} {del.open && (

Je account definitief verwijderen?

Dit wist je account, je profiel en álle brieven — ook wat je aan anderen schreef; bij hen verdwijnt de correspondentie eveneens. Dit kan niet ongedaan worden gemaakt. Bevestig met je wachtwoord.

{/* * De brief aan de beheerder. Ingeklapt, want hij mag het vertrek niet in de weg zitten: * wie weg wil moet weg kunnen zonder eerst een tekstvak te zien dat om uitleg vraagt. */} {!farewell.open ? ( ) : (