From 5535b6c384ec8745d045136f06b7eb76d040cdd4 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Sat, 2 Nov 2024 07:48:40 -0700 Subject: [PATCH 1/2] Redirect to flotilla/groups client --- src/app/App.svelte | 72 ----------------- src/app/MenuDesktop.svelte | 13 +-- src/app/MenuMobile.svelte | 42 +--------- src/app/views/GroupList.svelte | 107 ++++-------------------- src/app/views/ListingDelete.svelte | 29 ------- src/app/views/ListingEdit.svelte | 125 ----------------------------- src/app/views/Market.svelte | 37 --------- 7 files changed, 21 insertions(+), 404 deletions(-) delete mode 100644 src/app/views/ListingDelete.svelte delete mode 100644 src/app/views/ListingEdit.svelte delete mode 100644 src/app/views/Market.svelte diff --git a/src/app/App.svelte b/src/app/App.svelte index de6937b23..dfe54038d 100644 --- a/src/app/App.svelte +++ b/src/app/App.svelte @@ -34,13 +34,7 @@ import FeedCreate from "src/app/views/FeedCreate.svelte" import FeedEdit from "src/app/views/FeedEdit.svelte" import FeedList from "src/app/views/FeedList.svelte" - import GroupCreate from "src/app/views/GroupCreate.svelte" - import GroupDelete from "src/app/views/GroupDelete.svelte" - import GroupDetail from "src/app/views/GroupDetail.svelte" - import GroupEdit from "src/app/views/GroupEdit.svelte" - import GroupInfo from "src/app/views/GroupInfo.svelte" import GroupList from "src/app/views/GroupList.svelte" - import GroupRotate from "src/app/views/GroupRotate.svelte" import Help from "src/app/views/Help.svelte" import Home from "src/app/views/Home.svelte" import InviteAccept from "src/app/views/InviteAccept.svelte" @@ -51,13 +45,10 @@ import ListEdit from "src/app/views/ListEdit.svelte" import ListList from "src/app/views/ListList.svelte" import ListSelect from "src/app/views/ListSelect.svelte" - import ListingDelete from "src/app/views/ListingDelete.svelte" - import ListingEdit from "src/app/views/ListingEdit.svelte" import Login from "src/app/views/Login.svelte" import LoginBunker from "src/app/views/LoginBunker.svelte" import LoginConnect from "src/app/views/LoginConnect.svelte" import Logout from "src/app/views/Logout.svelte" - import Market from "src/app/views/Market.svelte" import MediaDetail from "src/app/views/MediaDetail.svelte" import NoteCreate from "src/app/views/NoteCreate.svelte" import NoteDelete from "src/app/views/NoteDelete.svelte" @@ -141,55 +132,6 @@ }) router.register("/groups", GroupList) - router.register("/groups/new", GroupCreate, { - requireSigner: true, - }) - router.register("/groups/:address/edit", GroupEdit, { - requireSigner: true, - serializers: { - address: asNaddr("address"), - }, - }) - router.register("/groups/:address/delete", GroupDelete, { - requireSigner: true, - serializers: { - address: asNaddr("address"), - }, - }) - router.register("/groups/:address/info", GroupInfo, { - serializers: { - address: asNaddr("address"), - }, - }) - router.register( - "/groups/:address/invite-admin", - import("src/app/views/GroupInviteAdmin.svelte"), - { - serializers: { - address: asNaddr("address"), - }, - }, - ) - router.register("/groups/:address/rotate", GroupRotate, { - requireSigner: true, - serializers: { - address: asNaddr("address"), - addMembers: asCsv("addMembers"), - removeMembers: asCsv("removeMembers"), - }, - }) - router.register("/groups/:address/:activeTab", GroupDetail, { - serializers: { - address: asNaddr("address"), - claim: asString("claim"), - }, - }) - router.register("/groups/:address", GroupDetail, { - serializers: { - address: asNaddr("address"), - claim: asString("claim"), - }, - }) router.register("/help/:topic", Help) @@ -241,20 +183,6 @@ }) router.register("/logout", Logout) - router.register("/listings", Market) - router.register("/listings/:address/edit", ListingEdit, { - requireSigner: true, - serializers: { - address: asNaddr("address"), - }, - }) - router.register("/listings/:address/delete", ListingDelete, { - requireSigner: true, - serializers: { - address: asNaddr("address"), - }, - }) - router.register("/media/:url", MediaDetail, { serializers: { url: asUrlComponent("url"), diff --git a/src/app/MenuDesktop.svelte b/src/app/MenuDesktop.svelte index 233be83bb..7f38fd05e 100644 --- a/src/app/MenuDesktop.svelte +++ b/src/app/MenuDesktop.svelte @@ -109,16 +109,9 @@ {/if} - Calendar - {#if env.ENABLE_MARKET} - Market - {/if} - {#if !env.FORCE_GROUP} - Groups - {/if} + + Groups + { - setSubMenu("community") - } - const openSettings = e => { setSubMenu("settings") } @@ -94,20 +90,9 @@ {/if} - {#if env.FORCE_GROUP} - - Calendar - - {#if env.ENABLE_MARKET} - - Market - - {/if} - {:else} - - Community - - {/if} + + Groups +
@@ -130,27 +115,6 @@ {/if} -{#if subMenu === "community"} - -

Community

-
- - Calendar - - {#if env.ENABLE_MARKET} - - Market - - {/if} - {#if !env.FORCE_GROUP} - - Groups - - {/if} -
-
-{/if} - {#if subMenu === "settings"}

Settings

diff --git a/src/app/views/GroupList.svelte b/src/app/views/GroupList.svelte index 2c9e29464..09987745d 100644 --- a/src/app/views/GroupList.svelte +++ b/src/app/views/GroupList.svelte @@ -1,95 +1,18 @@ - - -
-
- -

Your groups

-
- - Create - -
- {#each $userGroupMeta as meta (meta.event.id)} - - {:else} -

You haven't yet joined any groups.

- {/each} -
- - - - {#each otherGroupMeta as meta (meta.event.id)} - - {/each} - +
+

Groups are going away!

+
+

+ You can still access your groups at groups.coracle.social, + or you can try our new relay-based groups client at flotilla.social. +

+
+ Continue to Groups + Try Flotilla +
diff --git a/src/app/views/ListingDelete.svelte b/src/app/views/ListingDelete.svelte deleted file mode 100644 index 1ac79cf34..000000000 --- a/src/app/views/ListingDelete.svelte +++ /dev/null @@ -1,29 +0,0 @@ - - - -

- Are you sure you want to delete this listing? -

-

- This will send a request to the network to delete this listing. Be aware that relays may not - honor this request. -

-
- Cancel - Confirm -
-
diff --git a/src/app/views/ListingEdit.svelte b/src/app/views/ListingEdit.svelte deleted file mode 100644 index ac58a1640..000000000 --- a/src/app/views/ListingEdit.svelte +++ /dev/null @@ -1,125 +0,0 @@ - - -{#if loading} - -{:else} -
onSubmit()}> - - - - - - - - -
-
- - - - - -
-
- -
-
-
- - - - -
- -
-
- - - - -
- Save - images?.addImage(e.detail)} /> -
-
-
-{/if} diff --git a/src/app/views/Market.svelte b/src/app/views/Market.svelte deleted file mode 100644 index b459558fa..000000000 --- a/src/app/views/Market.svelte +++ /dev/null @@ -1,37 +0,0 @@ - - -{#if $signer} - - Have something you'd like to sell on nostr? - Create a listing - -{/if} - - From da007d7eec48d5b33d591e0476c0225d6eb39988 Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Sat, 2 Nov 2024 08:27:03 -0700 Subject: [PATCH 2/2] Remove groups tab from notifications --- .../views/NotificationSectionGroups.svelte | 61 ------------------- src/app/views/Notifications.svelte | 17 +----- src/engine/state.ts | 58 ------------------ 3 files changed, 2 insertions(+), 134 deletions(-) delete mode 100644 src/app/views/NotificationSectionGroups.svelte diff --git a/src/app/views/NotificationSectionGroups.svelte b/src/app/views/NotificationSectionGroups.svelte deleted file mode 100644 index 6bfec1874..000000000 --- a/src/app/views/NotificationSectionGroups.svelte +++ /dev/null @@ -1,61 +0,0 @@ - - -{#each $groupNotifications.slice(0, limit) as notification, i (notification.id)} -
- {#if isGroupAlert(notification)} - - {:else if isGroupRequest(notification)} - - {:else} - - {/if} -
-{:else} -

No notifications found - check back later!

-{/each} diff --git a/src/app/views/Notifications.svelte b/src/app/views/Notifications.svelte index 5e8383c73..a6fecc20a 100644 --- a/src/app/views/Notifications.svelte +++ b/src/app/views/Notifications.svelte @@ -5,7 +5,6 @@ import OnboardingTasks from "src/app/shared/OnboardingTasks.svelte" import NotificationSectionMain from "src/app/views/NotificationSectionMain.svelte" import NotificationSectionReactions from "src/app/views/NotificationSectionReactions.svelte" - import NotificationSectionGroups from "src/app/views/NotificationSectionGroups.svelte" import {router} from "src/app/util/router" import { sessionWithMeta, @@ -14,10 +13,9 @@ loadCircleMessages, unreadMainNotifications, unreadReactionNotifications, - unreadGroupNotifications, } from "src/engine" - const allTabs = ["Mentions & Replies", "Reactions", "Groups"] + const allTabs = ["Mentions & Replies", "Reactions"] const setActiveTab = tab => router.at("notifications").at(tab).push() @@ -31,11 +29,6 @@ let innerWidth = 0 let element = null - $: displayTabs = - innerWidth <= 640 || !$userSettings.note_actions.includes("reactions") - ? [allTabs[0], allTabs[2]] - : allTabs - document.title = "Notifications" onMount(() => { @@ -52,7 +45,7 @@ - +
{tab}
{#if activeTab !== tab} @@ -64,10 +57,6 @@
{$unreadReactionNotifications.length}
- {:else if tab === allTabs[2] && $unreadGroupNotifications.length > 0} -
- {$unreadGroupNotifications.length} -
{/if} {/if}
@@ -82,7 +71,5 @@ {:else if activeTab === allTabs[1]} - {:else if activeTab === allTabs[2]} - {/if}
diff --git a/src/engine/state.ts b/src/engine/state.ts index cccfa33a8..eb47272ff 100644 --- a/src/engine/state.ts +++ b/src/engine/state.ts @@ -693,64 +693,6 @@ export const unreadReactionNotifications = derived( ([$isSeen, events]) => events.filter(e => !$isSeen("reactions", e) && !$isSeen("zaps", e)), ) -// -- Group Notifications - -export const groupNotifications = derived( - [ - sessionWithMeta, - isEventMuted, - groupRequests, - groupAlerts, - groupAdminKeys, - throttled(3000, repositoryStore), - ], - ([$session, $isMuted, $requests, $alerts, $adminKeys, $repository]) => { - const admins = new Set($adminKeys.map(k => k.pubkey)) - const addresses = getUserCircles($session) - const kinds = [...noteKinds, ...repostKinds] - const events = $repository.query([{"#a": addresses, kinds}]) - - return sortBy( - e => -e.created_at, - [ - ...$requests.filter(r => !r.resolved && !$repository.deletes.has(r.group)), - ...$alerts.filter(a => !admins.has(a.pubkey) && !$repository.deletes.has(a.group)), - ...events - .map(e => { - // Unwrap reposts, add community tags so we know where stuff was posted to - if (repostKinds.includes(e.kind)) { - const contextTags = getAddressTags(e.tags) - - e = unwrapRepost(e) - - for (const tag of contextTags) { - if (isContextAddress(tag[1])) { - e?.tags.push(tag) - } - } - } - - return e - }) - .filter( - e => - e && - e.pubkey !== $session.pubkey && - // Skip mentions since they're covered in normal notifications - !e.tags.some(t => t[0] === "p" && t[1] === $session.pubkey) && - !$isMuted(e), - ), - ], - ) as (TrustedEvent | GroupRequest | GroupAlert)[] - }, -) - -export const unreadGroupNotifications = derived( - [isSeen, groupNotifications], - ([$isSeen, $groupNotifications]) => - $groupNotifications.filter(e => !getContextTagValues(e.tags).every(a => $isSeen(a, e))), -) - // Channels export const getChannelId = (pubkeys: string[]) => sort(uniq(pubkeys)).join(",")