mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
Panel: de-dupe live notifications and expose recovery states on the board
Notification bell: the websocket stream was rendered with a plain filter, so a stream replay after a reconnect surfaced — and counted — the same notification twice, inflating the unread badge. De-duplicate by notification_id (newest copy wins, arrival order preserved) and key the list on the id instead of array index. PM kanban: the board had no columns for the recovery states (paused, needs-revision, awaiting-CEO-approval, cancelled), so a human had no way to drive a wedged task into them from the UI. Add those columns; dragging a card issues an admin status override, giving the CEO direct recovery from the board.
This commit is contained in:
@@ -58,7 +58,7 @@ export function NotificationBell() {
|
||||
<div className="space-y-2 max-h-64 overflow-y-auto">
|
||||
{notifications.slice(-10).reverse().map((notification, i) => (
|
||||
<div
|
||||
key={i}
|
||||
key={notification.notification_id ?? `anon-${i}`}
|
||||
className="p-2 rounded bg-muted hover:bg-muted/80 cursor-pointer"
|
||||
>
|
||||
<div className="flex items-center justify-between">
|
||||
|
||||
Reference in New Issue
Block a user