From 14ad4ec7855d0481199268831448fcd6470f41e7 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Thu, 14 Nov 2024 10:53:13 -0800 Subject: [PATCH] Add notification badges --- src/app/components/ChatItem.svelte | 11 +- src/app/components/LogIn.svelte | 2 + src/app/components/LogInBunker.svelte | 2 + src/app/components/MenuSpace.svelte | 17 ++- src/app/components/MenuSpaceRoomItem.svelte | 17 +++ src/app/components/PrimaryNav.svelte | 27 ++--- src/app/components/PrimaryNavItemSpace.svelte | 20 ++++ src/app/components/SignUp.svelte | 2 + src/app/components/ThreadActions.svelte | 12 ++- src/app/notifications.ts | 51 +++++++++ src/app/state.ts | 18 ++-- src/lib/components/PrimaryNavItem.svelte | 7 ++ src/lib/components/SecondaryNavItem.svelte | 12 ++- src/routes/+layout.svelte | 40 ++++--- src/routes/chat/[chat]/+page.svelte | 6 +- src/routes/spaces/[relay]/+layout.svelte | 7 +- src/routes/spaces/[relay]/+page.svelte | 7 +- src/routes/spaces/[relay]/[room]/+page.svelte | 6 +- .../spaces/[relay]/calendar/+page.svelte | 11 +- .../spaces/[relay]/threads/+page.svelte | 100 +++++++++--------- .../spaces/[relay]/threads/[id]/+page.svelte | 7 +- 21 files changed, 256 insertions(+), 126 deletions(-) create mode 100644 src/app/components/MenuSpaceRoomItem.svelte create mode 100644 src/app/components/PrimaryNavItemSpace.svelte create mode 100644 src/app/notifications.ts diff --git a/src/app/components/ChatItem.svelte b/src/app/components/ChatItem.svelte index 4c4e3324..c33d5b82 100644 --- a/src/app/components/ChatItem.svelte +++ b/src/app/components/ChatItem.svelte @@ -1,14 +1,16 @@ + + + + {room} + diff --git a/src/app/components/PrimaryNav.svelte b/src/app/components/PrimaryNav.svelte index e5a696ae..0ea7e1fa 100644 --- a/src/app/components/PrimaryNav.svelte +++ b/src/app/components/PrimaryNav.svelte @@ -1,16 +1,17 @@ + + + + diff --git a/src/app/components/SignUp.svelte b/src/app/components/SignUp.svelte index ce221d63..d2833afd 100644 --- a/src/app/components/SignUp.svelte +++ b/src/app/components/SignUp.svelte @@ -10,6 +10,7 @@ import LogIn from "@app/components/LogIn.svelte" import InfoNostr from "@app/components/InfoNostr.svelte" import {pushModal, clearModals} from "@app/modal" + import {setChecked} from "@app/notifications" import {PLATFORM_NAME} from "@app/state" import {pushToast} from "@app/toast" @@ -42,6 +43,7 @@ if (await loginBroker.connect("", nip46Perms)) { addSession({method: "nip46", pubkey, secret, handler: {...handler, pubkey}}) pushToast({message: "Successfully logged in!"}) + setChecked("*") clearModals() } else { pushToast({ diff --git a/src/app/components/ThreadActions.svelte b/src/app/components/ThreadActions.svelte index 5897de9b..bc8d5ab9 100644 --- a/src/app/components/ThreadActions.svelte +++ b/src/app/components/ThreadActions.svelte @@ -13,6 +13,8 @@ import ThunkStatus from "@app/components/ThunkStatus.svelte" import ThreadMenu from "@app/components/ThreadMenu.svelte" import {publishDelete, publishReaction} from "@app/commands" + import {deriveNotification} from "@app/notifications" + import {makeSpacePath} from "@app/routes" import {COMMENT} from "@app/state" export let url @@ -21,7 +23,10 @@ const thunk = $thunks[event.id] const deleted = deriveIsDeleted(repository, event) - const replies = deriveEvents(repository, {filters: [{kinds: [COMMENT], "#E": [event.id]}]}) + const path = makeSpacePath(url, "threads", event.id) + const filters = [{kinds: [COMMENT], "#E": [event.id]}] + const notification = deriveNotification(path, filters, url) + const replies = deriveEvents(repository, {filters}) const showPopover = () => popover.show() @@ -58,7 +63,10 @@ {$replies.length} {$replies.length === 1 ? "reply" : "replies"} -