From cad096b019dc05451e94e041f0c61648b305025a Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Thu, 24 Oct 2024 12:50:49 -0700 Subject: [PATCH] Get rid of profile detail, redirect externally --- src/app/components/ChannelMessage.svelte | 19 +-- src/app/components/Chat.svelte | 8 +- src/app/components/ChatMessage.svelte | 19 +-- src/app/components/ContentMention.svelte | 14 +- src/app/components/Profile.svelte | 17 +-- src/app/components/ProfileDetail.svelte | 123 ------------------ src/app/components/ProfileMultiSelect.svelte | 10 +- src/app/components/ThreadActions.svelte | 4 +- src/app/state.ts | 7 + src/lib/components/Button.svelte | 2 +- src/lib/components/FieldInline.svelte | 2 +- src/lib/editor/EditMention.svelte | 14 +- src/routes/settings/+page.svelte | 4 +- src/routes/settings/about/+page.svelte | 12 +- .../spaces/[relay]/threads/[id]/+page.svelte | 3 +- 15 files changed, 57 insertions(+), 201 deletions(-) delete mode 100644 src/app/components/ProfileDetail.svelte diff --git a/src/app/components/ChannelMessage.svelte b/src/app/components/ChannelMessage.svelte index 1526938..add15b0 100644 --- a/src/app/components/ChannelMessage.svelte +++ b/src/app/components/ChannelMessage.svelte @@ -7,16 +7,15 @@ import {slideAndFade, conditionalTransition} from "@lib/transition" import Delay from "@lib/components/Delay.svelte" import Avatar from "@lib/components/Avatar.svelte" - import Button from "@lib/components/Button.svelte" + import Link from "@lib/components/Link.svelte" import Content from "@app/components/Content.svelte" import ThunkStatus from "@app/components/ThunkStatus.svelte" import ReplySummary from "@app/components/ReplySummary.svelte" import ReactionSummary from "@app/components/ReactionSummary.svelte" - import ProfileDetail from "@app/components/ProfileDetail.svelte" import ChannelThread from "@app/components/ChannelThread.svelte" import ChannelMessageEmojiButton from "@app/components/ChannelMessageEmojiButton.svelte" import ChannelMessageMenuButton from "@app/components/ChannelMessageMenuButton.svelte" - import {colors, tagRoom, deriveEvent} from "@app/state" + import {colors, tagRoom, deriveEvent, pubkeyLink} from "@app/state" import {publishDelete, publishReaction} from "@app/commands" import {pushDrawer} from "@app/modal" @@ -36,8 +35,6 @@ const transition = conditionalTransition(thunk, slideAndFade) - const showProfile = () => pushDrawer(ProfileDetail, {pubkey: event.pubkey}) - const openThread = () => { const root = $rootEvent || event @@ -68,21 +65,25 @@ class="group relative flex w-full flex-col gap-1 p-2 text-left transition-colors hover:bg-base-300">
{#if showPubkey} - + {:else}
{/if}
{#if showPubkey}
- + {formatTimestampAsTime(event.created_at)}
{/if} diff --git a/src/app/components/Chat.svelte b/src/app/components/Chat.svelte index 9dd2424..82aaaef 100644 --- a/src/app/components/Chat.svelte +++ b/src/app/components/Chat.svelte @@ -30,11 +30,10 @@ import ProfileName from "@app/components/ProfileName.svelte" import ProfileCircle from "@app/components/ProfileCircle.svelte" import ProfileCircles from "@app/components/ProfileCircles.svelte" - import ProfileDetail from "@app/components/ProfileDetail.svelte" import ProfileList from "@app/components/ProfileList.svelte" import ChatMessage from "@app/components/ChatMessage.svelte" import ChatCompose from "@app/components/ChannelCompose.svelte" - import {deriveChat, splitChatId, PLATFORM_NAME} from "@app/state" + import {deriveChat, splitChatId, PLATFORM_NAME, pubkeyLink} from "@app/state" import {pushModal} from "@app/modal" import {sendWrapped} from "@app/commands" @@ -109,11 +108,10 @@
{#if others.length === 1} {@const pubkey = others[0]} - {@const showProfile = () => pushModal(ProfileDetail, {pubkey}, {drawer: true})} - + {:else}

diff --git a/src/app/components/ChatMessage.svelte b/src/app/components/ChatMessage.svelte index 5807478..a829e16 100644 --- a/src/app/components/ChatMessage.svelte +++ b/src/app/components/ChatMessage.svelte @@ -5,6 +5,7 @@ import {deriveProfile, deriveProfileDisplay, formatTimestampAsTime, pubkey} from "@welshman/app" import type {MergedThunk} from "@welshman/app" import Icon from "@lib/components/Icon.svelte" + import Link from "@lib/components/Link.svelte" import Tippy from "@lib/components/Tippy.svelte" import Avatar from "@lib/components/Avatar.svelte" import Button from "@lib/components/Button.svelte" @@ -12,10 +13,8 @@ import ReplySummary from "@app/components/ReplySummary.svelte" import ReactionSummary from "@app/components/ReactionSummary.svelte" import ThunkStatus from "@app/components/ThunkStatus.svelte" - import ProfileDetail from "@app/components/ProfileDetail.svelte" import ChatMessageMenu from "@app/components/ChatMessageMenu.svelte" - import {colors} from "@app/state" - import {pushDrawer} from "@app/modal" + import {colors, pubkeyLink} from "@app/state" import {makeDelete, makeReaction, sendWrapped} from "@app/commands" export let event: TrustedEvent @@ -27,8 +26,6 @@ const profileDisplay = deriveProfileDisplay(event.pubkey) const [_, colorValue] = colors[parseInt(hash(event.pubkey)) % colors.length] - const showProfile = () => pushDrawer(ProfileDetail, {pubkey: event.pubkey}) - const onReactionClick = async (content: string, events: TrustedEvent[]) => { const reaction = events.find(e => e.pubkey === $pubkey) const template = reaction ? makeDelete({event}) : makeReaction({event, content}) @@ -78,19 +75,23 @@

{#if showPubkey} - + {/if}
{#if showPubkey}
- + {formatTimestampAsTime(event.created_at)}
{/if} diff --git a/src/app/components/ContentMention.svelte b/src/app/components/ContentMention.svelte index cf27a67..7dfd877 100644 --- a/src/app/components/ContentMention.svelte +++ b/src/app/components/ContentMention.svelte @@ -1,20 +1,14 @@ - + diff --git a/src/app/components/Profile.svelte b/src/app/components/Profile.svelte index 4c15e29..9f6f3e1 100644 --- a/src/app/components/Profile.svelte +++ b/src/app/components/Profile.svelte @@ -1,6 +1,4 @@
- +
- +
diff --git a/src/app/components/ProfileDetail.svelte b/src/app/components/ProfileDetail.svelte deleted file mode 100644 index 3bb208c..0000000 --- a/src/app/components/ProfileDetail.svelte +++ /dev/null @@ -1,123 +0,0 @@ - - -
- {#if $profile} - -
-
- -
-
-
-
- {displayProfile($profile, pubkeyDisplay)} -
-
-
- {$profile?.nip05 ? displayNip05($profile.nip05) : pubkeyDisplay} -
-
-
- {#if !isSelf} - {#if getPubkeyTagValues(getListTags($userFollows)).includes(pubkey)} - - {:else} - - {/if} - {/if} - - -
- {#each sortBy(e => -e.created_at, $events) as event (event.id)} - {#if flatten(Object.values(getAncestorTags(event.tags))).length === 0} - {@const [url] = Array.from(tracker.getRelays(event.id))} -
- -
- {/if} - {:else} -

- -

- {/each} -
- {:else} -

- {#await sleep(3000)} - - {:then} - Unable to find this profile. - {/await} -

- {/if} -
diff --git a/src/app/components/ProfileMultiSelect.svelte b/src/app/components/ProfileMultiSelect.svelte index a8cf359..c662cc4 100644 --- a/src/app/components/ProfileMultiSelect.svelte +++ b/src/app/components/ProfileMultiSelect.svelte @@ -5,12 +5,12 @@ import {profileSearch} from "@welshman/app" import Icon from "@lib/components/Icon.svelte" import Tippy from "@lib/components/Tippy.svelte" + import Link from "@lib/components/Link.svelte" import Button from "@lib/components/Button.svelte" import Suggestions from "@lib/editor/Suggestions.svelte" import SuggestionProfile from "@lib/editor/SuggestionProfile.svelte" import ProfileName from "@app/components/ProfileName.svelte" - import ProfileDetail from "@app/components/ProfileDetail.svelte" - import {pushDrawer} from "@app/modal" + import {pubkeyLink} from "@app/state" export let value: string[] @@ -19,8 +19,6 @@ let popover: Instance let instance: SvelteComponent - const onClick = (pubkey: string) => pushDrawer(ProfileDetail, {pubkey}) - const selectPubkey = (pubkey: string) => { term = "" popover.hide() @@ -53,9 +51,9 @@ - +
{/each}
diff --git a/src/app/components/ThreadActions.svelte b/src/app/components/ThreadActions.svelte index 5c52689..2ae2edc 100644 --- a/src/app/components/ThreadActions.svelte +++ b/src/app/components/ThreadActions.svelte @@ -50,9 +50,7 @@
{#if $deleted} -
- Deleted -
+
Deleted
{/if} {#if showActivity}
diff --git a/src/app/state.ts b/src/app/state.ts index 3450a1b..fe78535 100644 --- a/src/app/state.ts +++ b/src/app/state.ts @@ -1,7 +1,9 @@ import twColors from "tailwindcss/colors" import {get, derived} from "svelte/store" +import {nip19} from "nostr-tools" import type {Maybe} from "@welshman/lib" import { + ctx, setContext, remove, assoc, @@ -132,6 +134,11 @@ export const imgproxy = (url: string, {w = 640, h = 1024} = {}) => { export const entityLink = (entity: string) => `https://coracle.social/${entity}` +export const pubkeyLink = ( + pubkey: string, + relays = ctx.app.router.FromPubkeys([pubkey]).getUrls(), +) => entityLink(nip19.nprofileEncode({pubkey, relays})) + export const tagRoom = (room: string, url: string) => [ROOM, room, url] export const getDefaultPubkeys = () => { diff --git a/src/lib/components/Button.svelte b/src/lib/components/Button.svelte index 077d5a5..abbebea 100644 --- a/src/lib/components/Button.svelte +++ b/src/lib/components/Button.svelte @@ -4,7 +4,7 @@ $: className = `text-left ${$$props.class}` -{#if type === 'submit'} +{#if type === "submit"} diff --git a/src/lib/components/FieldInline.svelte b/src/lib/components/FieldInline.svelte index 7f72b64..c15cffc 100644 --- a/src/lib/components/FieldInline.svelte +++ b/src/lib/components/FieldInline.svelte @@ -6,7 +6,7 @@
{#if $$slots.info} -

+

{/if} diff --git a/src/lib/editor/EditMention.svelte b/src/lib/editor/EditMention.svelte index 18b5697..0dc21a6 100644 --- a/src/lib/editor/EditMention.svelte +++ b/src/lib/editor/EditMention.svelte @@ -4,20 +4,20 @@ import {NodeViewWrapper} from "svelte-tiptap" import {displayProfile} from "@welshman/util" import {deriveProfile} from "@welshman/app" - import Button from "@lib/components/Button.svelte" - import ProfileDetail from "@app/components/ProfileDetail.svelte" - import {pushDrawer} from "@app/modal" + import Link from "@lib/components/Link.svelte" + import {pubkeyLink} from "@app/state" export let node: NodeViewProps["node"] export let selected: NodeViewProps["selected"] - const onClick = () => pushDrawer(ProfileDetail, {pubkey: node.attrs.pubkey}) - $: profile = deriveProfile(node.attrs.pubkey, node.attrs.relays) - + diff --git a/src/routes/settings/+page.svelte b/src/routes/settings/+page.svelte index b66a068..dfff339 100644 --- a/src/routes/settings/+page.svelte +++ b/src/routes/settings/+page.svelte @@ -54,9 +54,7 @@ type="checkbox" class="toggle toggle-primary" bind:checked={settings.show_media} /> -

- Use this to disable link previews and image rendering. -

+

Use this to disable link previews and image rendering.

Muted Accounts

diff --git a/src/routes/settings/about/+page.svelte b/src/routes/settings/about/+page.svelte index 57932bf..73d9dfb 100644 --- a/src/routes/settings/about/+page.svelte +++ b/src/routes/settings/about/+page.svelte @@ -1,15 +1,9 @@
@@ -40,7 +34,7 @@

Built with 💜 by - @ + @hodlbod

diff --git a/src/routes/spaces/[relay]/threads/[id]/+page.svelte b/src/routes/spaces/[relay]/threads/[id]/+page.svelte index 3ad3d17..5655b9f 100644 --- a/src/routes/spaces/[relay]/threads/[id]/+page.svelte +++ b/src/routes/spaces/[relay]/threads/[id]/+page.svelte @@ -1,9 +1,8 @@