feat(app): clear all events from the Event Center (red trash icon)
Adds Cmd::ClearEvents + Evt::EventsCleared: the daemon drops the persistent event log (keeping next_id monotonic), persists, and broadcasts so every client empties its list. A red trash icon next to 'Mark all read' triggers it; disabled when the list is empty. Threaded through proto, the daemon handler, the Tauri bridge, and socketBridge. Includes an EventLog::clear test. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -86,6 +86,10 @@ export async function markEventsRead(target: MarkReadTarget): Promise<void> {
|
||||
await invoke("mark_read", { target });
|
||||
}
|
||||
|
||||
export async function clearEvents(): Promise<void> {
|
||||
await invoke("clear_events");
|
||||
}
|
||||
|
||||
export type DaemonEvt =
|
||||
| { evt: "exit"; data: { surface_id: string; code: number } }
|
||||
| { evt: "surface_created"; data: { surface_id: string; workspace_id: string } }
|
||||
@@ -96,7 +100,8 @@ export type DaemonEvt =
|
||||
| { evt: "groups_changed"; data: unknown }
|
||||
| { evt: "config_changed"; data: { config: ConfigView } }
|
||||
| { evt: "event"; data: { record: EventRecord } }
|
||||
| { evt: "events_read"; data: { ids: number[] } };
|
||||
| { evt: "events_read"; data: { ids: number[] } }
|
||||
| { evt: "events_cleared"; data: unknown };
|
||||
|
||||
export function onDaemonEvent(handler: (evt: DaemonEvt) => void): Promise<() => void> {
|
||||
return listen<DaemonEvt>("spacesh:evt", (e) => handler(e.payload));
|
||||
|
||||
Reference in New Issue
Block a user