diff --git a/src/app/components/ProfileDetail.svelte b/src/app/components/ProfileDetail.svelte
index db03e4c6..80c3f763 100644
--- a/src/app/components/ProfileDetail.svelte
+++ b/src/app/components/ProfileDetail.svelte
@@ -4,21 +4,19 @@
import {displayProfileByPubkey, loadMessagingRelayList} from "@welshman/app"
import AltArrowLeft from "@assets/icons/alt-arrow-left.svg?dataurl"
import UserCircle from "@assets/icons/user-circle.svg?dataurl"
- import MenuDots from "@assets/icons/menu-dots.svg?dataurl"
import MinusCircle from "@assets/icons/minus-circle.svg?dataurl"
import UserMinus from "@assets/icons/user-minus.svg?dataurl"
import Restart from "@assets/icons/restart.svg?dataurl"
- import {fly} from "@lib/transition"
import Icon from "@lib/components/Icon.svelte"
import Confirm from "@lib/components/Confirm.svelte"
import Button from "@lib/components/Button.svelte"
- import Popover from "@lib/components/Popover.svelte"
import Modal from "@lib/components/Modal.svelte"
import ModalBody from "@lib/components/ModalBody.svelte"
import ModalFooter from "@lib/components/ModalFooter.svelte"
import Profile from "@app/components/Profile.svelte"
import ProfileAbout from "@app/components/ProfileAbout.svelte"
import ProfileBadges from "@app/components/ProfileBadges.svelte"
+ import ProfileMenu from "@app/components/ProfileMenu.svelte"
import {
deriveUserIsSpaceAdmin,
deriveSpaceBannedPubkeyItems,
@@ -47,14 +45,6 @@
const viewProfile = () => goto(makeProfilePath(pubkey), {replaceState: true})
- const toggleMenu = () => {
- showMenu = !showMenu
- }
-
- const closeMenu = () => {
- showMenu = false
- }
-
const banMember = () =>
pushModal(Confirm, {
title: "Ban User",
@@ -93,8 +83,6 @@
}
}
- let showMenu = $state(false)
-
onMount(() => {
loadMessagingRelayList(pubkey)
})
@@ -105,42 +93,33 @@
- {#if $userIsAdmin}
-
-
- {#if showMenu}
-
-
-
+
+ {#snippet customActions()}
+ {#if $userIsAdmin}
+ {#if isBanned}
+
+
+
+ {:else}
+
+
+
+
+
+
+ {/if}
{/if}
-
- {/if}
+ {/snippet}
+
diff --git a/src/app/components/ProfileInfo.svelte b/src/app/components/ProfileInfo.svelte
new file mode 100644
index 00000000..4af6cc63
--- /dev/null
+++ b/src/app/components/ProfileInfo.svelte
@@ -0,0 +1,121 @@
+
+
+
+
+
+ Profile Details
+ The full details of this profile are shown below.
+
+
+ {#snippet label()}
+ Created At
+ {/snippet}
+ {#snippet input()}
+ {formatter.format(secondsToDate(event.created_at))}
+ {/snippet}
+
+
+ {#snippet label()}
+ Profile Link
+ {/snippet}
+ {#snippet input()}
+
+ {/snippet}
+
+
+ {#snippet label()}
+ Public Key
+ {/snippet}
+ {#snippet input()}
+
+ {/snippet}
+
+ {#if !url && seenOn.size > 0}
+
+ {#snippet label()}
+ Seen On
+ {/snippet}
+ {#snippet input()}
+
+ {#each seenOn as url, i (url)}
+
+ {displayRelayUrl(url)}
+
+ {/each}
+
+ {/snippet}
+
+ {/if}
+
+
{json}
+
+
+
+
+
+
+
+
+
diff --git a/src/app/components/ProfileMenu.svelte b/src/app/components/ProfileMenu.svelte
new file mode 100644
index 00000000..044293c3
--- /dev/null
+++ b/src/app/components/ProfileMenu.svelte
@@ -0,0 +1,73 @@
+
+
+
+
+ {#if showMenu}
+
+
+
+ {/if}
+
diff --git a/src/app/components/ProfilePage.svelte b/src/app/components/ProfilePage.svelte
index 56a5161e..316d5962 100644
--- a/src/app/components/ProfilePage.svelte
+++ b/src/app/components/ProfilePage.svelte
@@ -18,21 +18,17 @@
import Letter from "@assets/icons/letter-opened.svg?dataurl"
import UserPlus from "@assets/icons/user-plus.svg?dataurl"
import PenNewSquare from "@assets/icons/pen-new-square.svg?dataurl"
- import MenuDots from "@assets/icons/menu-dots.svg?dataurl"
- import ShareCircle from "@assets/icons/share-circle.svg?dataurl"
import GallerySend from "@assets/icons/gallery-send.svg?dataurl"
- import {fly} from "@lib/transition"
import Icon from "@lib/components/Icon.svelte"
import Link from "@lib/components/Link.svelte"
import Button from "@lib/components/Button.svelte"
import Spinner from "@lib/components/Spinner.svelte"
- import Popover from "@lib/components/Popover.svelte"
import ProfileCircle from "@app/components/ProfileCircle.svelte"
import ProfileTrust from "@app/components/ProfileTrust.svelte"
import ProfileSharedSpaces from "@app/components/ProfileSharedSpaces.svelte"
import ProfilePageNotes from "@app/components/ProfilePageNotes.svelte"
- import ProfileQrCode from "@app/components/ProfileQrCode.svelte"
import ProfileEdit from "@app/components/ProfileEdit.svelte"
+ import ProfileMenu from "@app/components/ProfileMenu.svelte"
import WotScore from "@app/components/WotScore.svelte"
import Content from "@app/components/Content.svelte"
import {updateProfile} from "@app/profiles"
@@ -62,27 +58,13 @@
: `https://${$profile?.website || ""}`,
)
- let showMenu = $state(false)
let bannerLoading = $state(false)
let bannerInput: HTMLInputElement | undefined = $state()
const copyNpub = () => clip(nip19.npubEncode(target))
- const showShare = () => {
- closeMenu()
- pushModal(ProfileQrCode, {pubkey: target})
- }
-
const startEdit = () => pushModal(ProfileEdit)
- const toggleMenu = () => {
- showMenu = !showMenu
- }
-
- const closeMenu = () => {
- showMenu = false
- }
-
const openChat = () => goToChat([target])
const toggleFollow = async () => {
@@ -193,26 +175,8 @@
{/if}
-
-
- {#if showMenu}
-
-
-
- {/if}
+
{/if}