fix: initTab vor setActive setzen, keine Auto-Quittierung beim Badge-Klick
This commit is contained in:
@@ -1903,7 +1903,7 @@ function GlobalSearch({ setActive, setDevToolsNav, mobile }) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function Dashboard({ toast, mobile, setActive, setDevToolsNav, unreadMsgs=0, unreadBoard=0, unreadPromoted=0, onBoardRead, unreadChangelog=0, onChangelogRead, unackedFavs=0, onAckFavs, user }) {
|
function Dashboard({ toast, mobile, setActive, setDevToolsNav, unreadMsgs=0, unreadBoard=0, unreadPromoted=0, onBoardRead, unreadChangelog=0, onChangelogRead, unackedFavs=0, user }) {
|
||||||
const [now, setNow] = useState(new Date());
|
const [now, setNow] = useState(new Date());
|
||||||
const [showBoard, setShowBoard] = useState(false);
|
const [showBoard, setShowBoard] = useState(false);
|
||||||
const [showChangelog, setShowChangelog] = useState(false);
|
const [showChangelog, setShowChangelog] = useState(false);
|
||||||
@@ -1983,7 +1983,7 @@ function Dashboard({ toast, mobile, setActive, setDevToolsNav, unreadMsgs=0, unr
|
|||||||
</button>
|
</button>
|
||||||
{/* Unquittierte Favoriten für alle User */}
|
{/* Unquittierte Favoriten für alle User */}
|
||||||
{unackedFavs > 0 && (
|
{unackedFavs > 0 && (
|
||||||
<button onClick={()=>{ setActive('media'); setTimeout(()=>setMediaInitTab('favoriten'),50); onAckFavs?.(); }} style={{
|
<button onClick={()=>{ setMediaInitTab('favoriten'); setActive('media'); }} style={{
|
||||||
background:'rgba(245,158,11,0.12)', border:'1px solid rgba(245,158,11,0.35)',
|
background:'rgba(245,158,11,0.12)', border:'1px solid rgba(245,158,11,0.35)',
|
||||||
borderRadius:7, color:'#f59e0b', cursor:'pointer',
|
borderRadius:7, color:'#f59e0b', cursor:'pointer',
|
||||||
padding:'4px 10px', fontSize:9, fontFamily:'monospace', letterSpacing:1,
|
padding:'4px 10px', fontSize:9, fontFamily:'monospace', letterSpacing:1,
|
||||||
@@ -3718,9 +3718,9 @@ export default function App() {
|
|||||||
unreadMsgs={unreadMsgs}/>
|
unreadMsgs={unreadMsgs}/>
|
||||||
)}
|
)}
|
||||||
<main ref={mainRef} style={mainStyle}>
|
<main ref={mainRef} style={mainStyle}>
|
||||||
{active==='dashboard' && <Dashboard toast={toast} mobile={mobile} setActive={setActive} setDevToolsNav={setDevToolsNav} unreadMsgs={unreadMsgs} unreadBoard={unreadBoard} unreadPromoted={unreadPromoted} onBoardRead={()=>{ setUnreadBoard(0); setUnreadPromoted(0); }} unreadChangelog={unreadChangelog} onChangelogRead={()=>setUnreadChangelog(0)} unackedFavs={unackedFavs} onAckFavs={()=>api('/tools/media/favorites/acknowledge-all',{method:'POST',body:{}}).then(()=>setUnackedFavs(0)).catch(()=>{})} user={user}/>}
|
{active==='dashboard' && <Dashboard toast={toast} mobile={mobile} setActive={setActive} setDevToolsNav={setDevToolsNav} unreadMsgs={unreadMsgs} unreadBoard={unreadBoard} unreadPromoted={unreadPromoted} onBoardRead={()=>{ setUnreadBoard(0); setUnreadPromoted(0); }} unreadChangelog={unreadChangelog} onChangelogRead={()=>setUnreadChangelog(0)} unackedFavs={unackedFavs} user={user}/>}
|
||||||
{active==='admin' && <AdminPanel toast={toast} mobile={mobile} user={user} nav={devToolsNav}/>}
|
{active==='admin' && <AdminPanel toast={toast} mobile={mobile} user={user} nav={devToolsNav}/>}
|
||||||
{activeTool && <activeTool.component toast={toast} mobile={mobile} setActive={setActive} {...(activeTool.id==='devtools'?{nav:devToolsNav}:{})} {...(activeTool.id==='media' && mediaInitTab ? {initTab:mediaInitTab, onInitTabConsumed:()=>setMediaInitTab(null)} : {})}/>}
|
{activeTool && <activeTool.component toast={toast} mobile={mobile} setActive={setActive} {...(activeTool.id==='devtools'?{nav:devToolsNav}:{})} {...(activeTool.id==='media' ? {initTab:mediaInitTab, onInitTabConsumed:()=>setMediaInitTab(null)} : {})}/>}
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
{mobile && (
|
{mobile && (
|
||||||
|
|||||||
@@ -44,7 +44,10 @@ export default function Media({ toast, mobile, initTab, onInitTabConsumed }) {
|
|||||||
|
|
||||||
// Wenn von außen ein Tab vorgegeben wird (z.B. Dashboard-Badge)
|
// Wenn von außen ein Tab vorgegeben wird (z.B. Dashboard-Badge)
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (initTab) { setActiveTool(initTab); onInitTabConsumed?.(); }
|
if (initTab) {
|
||||||
|
setActiveTool(initTab);
|
||||||
|
onInitTabConsumed?.();
|
||||||
|
}
|
||||||
}, [initTab]);
|
}, [initTab]);
|
||||||
const [modal, setModal] = useState(null); // { id, media_type }
|
const [modal, setModal] = useState(null); // { id, media_type }
|
||||||
const [xrelIds, setXrelIds] = useState(new Set()); // tmdb_ids mit bekannten Releases
|
const [xrelIds, setXrelIds] = useState(new Set()); // tmdb_ids mit bekannten Releases
|
||||||
|
|||||||
Reference in New Issue
Block a user