From 65707617dd7942b91ed295659fc60a5d81de1472 Mon Sep 17 00:00:00 2001 From: Dicken Date: Sat, 13 Jun 2026 17:27:02 +0200 Subject: [PATCH] fix: sharePws in localStorage persistieren (PW-Button bleibt nach Reload) --- frontend/src/tools/dateien.jsx | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/frontend/src/tools/dateien.jsx b/frontend/src/tools/dateien.jsx index 377c108..a48c340 100644 --- a/frontend/src/tools/dateien.jsx +++ b/frontend/src/tools/dateien.jsx @@ -74,7 +74,9 @@ function PublicShareModal({ item, itemType, onClose, onShareCreated, toast }) { setNewLink(link); setNewPw(password.trim()); setShares(p => [d.share, ...p]); - onShareCreated?.(d.token, password.trim()); + if (onShareCreated) { + onShareCreated(d.token, password.trim()); + } navigator.clipboard?.writeText(link).catch(()=>{}); toast('Link erstellt & kopiert ✓'); setPassword(genPw()); @@ -595,7 +597,9 @@ export default function Dateien({ toast, mobile }) { const [publicShareItem, setPublicShareItem] = useState(null); const [publicShares, setPublicShares] = useState([]); const [showPublicLinks, setShowPublicLinks] = useState(false); - const [sharePws, setSharePws] = useState({}); // {token: plaintext_pw} + const [sharePws, setSharePws] = useState(() => { + try { return JSON.parse(localStorage.getItem('dicken_share_pws') || '{}'); } catch { return {}; } + }); const [pwPrompt, setPwPrompt] = useState(null); // {file} const [uploading, setUploading] = useState(false); const [dragOver, setDragOver] = useState(false); @@ -734,7 +738,13 @@ export default function Dateien({ toast, mobile }) { )} {shareItem && {setShareItem(null);load();}} toast={toast}/>} - {publicShareItem && {setPublicShareItem(null);api('/tools/dateien/public-shares').then(d=>setPublicShares(d.shares||[])).catch(()=>{});}} onShareCreated={(token,pw)=>setSharePws(p=>({...p,[token]:pw}))} toast={toast}/>} + {publicShareItem && {setPublicShareItem(null);api('/tools/dateien/public-shares').then(d=>setPublicShares(d.shares||[])).catch(()=>{});}} onShareCreated={(token,pw)=>{ + setSharePws(p=>{ + const next={...p,[token]:pw}; + try{localStorage.setItem('dicken_share_pws',JSON.stringify(next));}catch{} + return next; + }); + }} toast={toast}/>} {/* ── Aktive öffentliche Links ──────────────────────────────────────── */} {publicShares.length > 0 && tab === 'own' && (