diff --git a/frontend/src/calendar.jsx b/frontend/src/calendar.jsx index 02c9c87..84c8be3 100644 --- a/frontend/src/calendar.jsx +++ b/frontend/src/calendar.jsx @@ -86,9 +86,9 @@ export default function CalendarWidget() { const [today] = useState(new Date()); const [cur, setCur] = useState({ y: today.getFullYear(), m: today.getMonth() }); const [events, setEvents] = useState([]); - const [feeds, setFeeds] = useState(() => { - try { return JSON.parse(localStorage.getItem('dd_cal_feeds') || '[]'); } catch { return []; } - }); + // Feeds immer frisch aus localStorage lesen + const getFeeds = () => { try { return JSON.parse(localStorage.getItem('dd_cal_feeds') || '[]'); } catch { return []; } }; + const [feedCount, setFeedCount] = useState(0); // trigger re-render const [loading, setLoading] = useState(false); const [selected, setSelected] = useState(null); // date object @@ -121,7 +121,8 @@ export default function CalendarWidget() { setLoading(false); }; - useEffect(() => { if (isOpen && feeds.length > 0) loadFeeds(feeds); }, [isOpen]); + const refresh = () => { const f = getFeeds(); if (f.length > 0) loadFeeds(f); setFeedCount(f.length); }; + useEffect(() => { if (isOpen) refresh(); }, [isOpen]); // Calendar grid const days = useMemo(() => { @@ -150,8 +151,8 @@ export default function CalendarWidget() { ▶ - {isOpen && feeds.length > 0 && ( - loadFeeds(feeds)} disabled={loading} + {isOpen && getFeeds().length > 0 && ( + @@ -252,7 +253,7 @@ export default function CalendarWidget() { )} - {feeds.length === 0 && ( + {getFeeds().length === 0 && ( Noch keine Kalender abonniert. Füge Kalender in den Einstellungen hinzu.