feat: User-Benachrichtigung wenn Admin Favoriten quittiert
This commit is contained in:
@@ -1983,12 +1983,22 @@ function Dashboard({ toast, mobile, setActive, setDevToolsNav, unreadMsgs=0, unr
|
||||
</button>
|
||||
{/* Unquittierte Favoriten für alle User */}
|
||||
{unackedFavs > 0 && (
|
||||
<button onClick={()=>{ setActive('media'); setTimeout(()=>window.dispatchEvent(new CustomEvent('media-navigate',{detail:'favoriten'})),80); }} style={{
|
||||
<button onClick={()=>{
|
||||
if (unackedFavs?.isAdmin) {
|
||||
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(()=>{});
|
||||
}
|
||||
}} style={{
|
||||
background:'rgba(245,158,11,0.12)', border:'1px solid rgba(245,158,11,0.35)',
|
||||
borderRadius:7, color:'#f59e0b', cursor:'pointer',
|
||||
padding:'4px 10px', fontSize:9, fontFamily:'monospace', letterSpacing:1,
|
||||
}}>
|
||||
⭐ {unackedFavs} neue Favorit{unackedFavs!==1?'en':''}
|
||||
{unackedFavs?.isAdmin
|
||||
? `⭐ ${unackedFavs.count} neue Favorit${unackedFavs.count!==1?'en':''}`
|
||||
: `✅ ${unackedFavs.count} Favorit${unackedFavs.count!==1?'en':' wurde'} bestätigt`
|
||||
}
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
@@ -3618,7 +3628,7 @@ export default function App() {
|
||||
const [unreadBoard, setUnreadBoard] = useState(0);
|
||||
const [unreadPromoted, setUnreadPromoted] = useState(0);
|
||||
const [unreadChangelog,setUnreadChangelog]= useState(0);
|
||||
const [unackedFavs, setUnackedFavs] = useState(0);
|
||||
const [unackedFavs, setUnackedFavs] = useState({count:0,isAdmin:false});
|
||||
const [mediaInitTab, setMediaInitTab] = useState(null);
|
||||
|
||||
const [authChecked, setAuthChecked] = useState(false);
|
||||
@@ -3658,7 +3668,7 @@ export default function App() {
|
||||
|
||||
useEffect(()=>{
|
||||
if(!user)return;
|
||||
const poll=()=>api('/tools/media/favorites/unacked').then(d=>setUnackedFavs(d.count||0)).catch(()=>{});
|
||||
const poll=()=>api('/tools/media/favorites/unacked').then(d=>setUnackedFavs({count:d.count||0,isAdmin:d.isAdmin})).catch(()=>{});
|
||||
poll(); const ti=setInterval(poll,60000); return()=>clearInterval(ti);
|
||||
},[user]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user