diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx
index ff470a7..02e1a1d 100644
--- a/frontend/src/App.jsx
+++ b/frontend/src/App.jsx
@@ -1988,7 +1988,9 @@ function Dashboard({ toast, mobile, setActive, setDevToolsNav, unreadMsgs=0, unr
setActive('media');
setTimeout(()=>window.dispatchEvent(new CustomEvent('media-navigate',{detail:'favoriten'})),80);
} else {
- api('/tools/media/favorites/user-notify',{method:'POST',body:{}}).then(()=>setUnackedFavs({count:0,isAdmin:false})).catch(()=>{});
+ api('/tools/media/favorites/user-notify',{method:'POST',body:{}})
+ .then(()=>{ setUnackedFavs({count:0,isAdmin:false}); setActive('media'); setTimeout(()=>window.dispatchEvent(new CustomEvent('media-navigate',{detail:'favoriten'})),80); })
+ .catch(()=>{});
}
}} style={{
background:'rgba(245,158,11,0.12)', border:'1px solid rgba(245,158,11,0.35)',
@@ -3618,9 +3620,8 @@ export default function App() {
const [active,setActiveRaw]=useState('dashboard');
const [devToolsNav, setDevToolsNav] = useState(null);
const setActive = (page) => {
- // Reload nur beim Klick auf Dashboard und nur wenn ein neuer Build vorliegt
- // und keine Eingabe aktiv ist (schützt ungespeicherte Eingaben)
if (page === 'dashboard' && window.__newBuildAvailable && window.__safeReloadIfNewBuild?.()) return;
+ if (page === 'dashboard') setDashboardKey(k => k + 1); // Force-Refresh
setActiveRaw(page);
};
const [toastMsg,setToastMsg]=useState({msg:'',type:'success'});
@@ -3630,6 +3631,7 @@ export default function App() {
const [unreadChangelog,setUnreadChangelog]= useState(0);
const [unackedFavs, setUnackedFavs] = useState({count:0,isAdmin:false});
const [mediaInitTab, setMediaInitTab] = useState(null);
+ const [dashboardKey, setDashboardKey] = useState(0);
const [authChecked, setAuthChecked] = useState(false);
useEffect(()=>{
@@ -3728,7 +3730,7 @@ export default function App() {
unreadMsgs={unreadMsgs}/>
)}