From 9985e32d0bef9fc40899f077a5ed2b6d7237ab40 Mon Sep 17 00:00:00 2001 From: Samuel Elliott Date: Sun, 20 Apr 2025 20:40:07 +0100 Subject: [PATCH] Add status update banners --- src/app/browser/main/index.tsx | 2 + src/app/browser/main/status-updates.tsx | 48 +++ src/app/browser/main/update.tsx | 21 +- src/app/main/index.ts | 69 +++- src/app/main/ipc.ts | 2 + src/app/preload/index.ts | 4 + src/cli/util/commands.ts | 1 + src/cli/util/status.ts | 47 +++ src/common/status.ts | 517 ++++++++++++++++++++++++ 9 files changed, 707 insertions(+), 4 deletions(-) create mode 100644 src/app/browser/main/status-updates.tsx create mode 100644 src/cli/util/status.ts create mode 100644 src/common/status.ts diff --git a/src/app/browser/main/index.tsx b/src/app/browser/main/index.tsx index effbc5a..6360e42 100644 --- a/src/app/browser/main/index.tsx +++ b/src/app/browser/main/index.tsx @@ -6,6 +6,7 @@ import Sidebar from './sidebar.js'; import Update from './update.js'; import Main from './main.js'; import { BACKGROUND_COLOUR_MAIN_DARK, BACKGROUND_COLOUR_MAIN_LIGHT, BACKGROUND_COLOUR_SECONDARY_DARK, BACKGROUND_COLOUR_SECONDARY_LIGHT, TEXT_COLOUR_DARK, TEXT_COLOUR_LIGHT } from '../constants.js'; +import StatusUpdates from './status-updates.js'; const REFRESH_INTERVAL = 30 * 1000; // 30 seconds @@ -45,6 +46,7 @@ export default function App(props: AppProps) { + {selectedUser ?
(null); + useEffect(() => (ipc.getStatusUpdateData().then(setStatusUpdateData), undefined), [ipc]); + useEventListener(ipc.events, 'status-updates', setStatusUpdateData, [ipc.events]); + + return status_updates?.map(status_update => status_update.flags & (1 << StatusUpdateFlag.HIDDEN) ? null : + {status_update.content} + {status_update.action ? +