diff --git a/src/app/commands.ts b/src/app/commands.ts
index 94cf1676..dd1fe50f 100644
--- a/src/app/commands.ts
+++ b/src/app/commands.ts
@@ -1,7 +1,24 @@
-import {uniqBy, now} from "@welshman/lib"
-import {GROUPS, asDecryptedEvent, readList, editList, makeList, createList} from "@welshman/util"
+import {uniqBy, uniq, now} from "@welshman/lib"
+import {GROUPS, asDecryptedEvent, getGroupTags, getRelayTagValues, readList, editList, makeList, createList} from "@welshman/util"
import {pk, signer, repository, INDEXER_RELAYS} from "@app/base"
-import {getWriteRelayUrls, loadRelaySelections, publish, ensurePlaintext} from "@app/state"
+import {getWriteRelayUrls, loadGroup, loadGroupMembership, loadProfile, loadFollows, loadMutes, loadRelaySelections, publish, ensurePlaintext} from "@app/state"
+
+export const loadUserData = async (pubkey: string, hints: string[] = []) => {
+ const relaySelections = await loadRelaySelections(pubkey, INDEXER_RELAYS)
+ const relays = uniq([...getRelayTagValues(relaySelections?.tags || []), ...INDEXER_RELAYS, ...hints])
+ const membership = await loadGroupMembership(pubkey, relays)
+ const promises = [
+ loadProfile(pubkey, relays),
+ loadFollows(pubkey, relays),
+ loadMutes(pubkey, relays),
+ ]
+
+ for (const [_, nom, url] of getGroupTags(membership?.event.tags || [])) {
+ promises.push(loadGroup(nom, [url]))
+ }
+
+ await Promise.all(promises)
+}
export type ModifyTags = (tags: string[][]) => string[][]
diff --git a/src/app/components/InfoNip29.svelte b/src/app/components/InfoNip29.svelte
index 65de2d59..c466c7ea 100644
--- a/src/app/components/InfoNip29.svelte
+++ b/src/app/components/InfoNip29.svelte
@@ -21,8 +21,11 @@
>. If you do decide to join someone else's, make sure to follow their directions for registering
as a user.
-
- groups.fiatjaf.com
+
+
+
+ groups.fiatjaf.com
+
diff --git a/src/app/components/LogIn.svelte b/src/app/components/LogIn.svelte
index 14babd58..178278e2 100644
--- a/src/app/components/LogIn.svelte
+++ b/src/app/components/LogIn.svelte
@@ -9,6 +9,7 @@
import {pushToast} from "@app/toast"
import {addSession} from "@app/base"
import {loadHandle} from "@app/state"
+ import {loadUserData} from "@app/commands"
const back = () => history.back()
@@ -23,9 +24,11 @@
})
}
- const {pubkey} = handle
+ const {pubkey, relays = []} = handle
const broker = Nip46Broker.get(pubkey, secret, handler)
+ loadUserData(pubkey, relays)
+
if (await broker.connect()) {
addSession({method: "nip46", pubkey, secret, handler})
pushToast({message: "Successfully logged in!"})
diff --git a/src/app/components/PrimaryNav.svelte b/src/app/components/PrimaryNav.svelte
index 28c242db..2bcf821a 100644
--- a/src/app/components/PrimaryNav.svelte
+++ b/src/app/components/PrimaryNav.svelte
@@ -13,7 +13,7 @@
import Avatar from "@lib/components/Avatar.svelte"
import PrimaryNavItem from "@lib/components/PrimaryNavItem.svelte"
import SpaceAdd from "@app/components/SpaceAdd.svelte"
- import {userProfile, userGroupsByNom} from "@app/state"
+ import {userProfile, displayGroup, userGroupsByNom} from "@app/state"
import {pushModal} from "@app/modal"
import {getPrimaryNavItemIndex} from "@app/routes"
@@ -51,9 +51,9 @@
{#each $userGroupsByNom.entries() as [nom, qualifiedGroups] (nom)}
{@const qualifiedGroup = qualifiedGroups[0]}
-
+
-

+
{/each}
diff --git a/src/app/components/SpaceAdd.svelte b/src/app/components/SpaceAdd.svelte
index e78fbb36..044a63cb 100644
--- a/src/app/components/SpaceAdd.svelte
+++ b/src/app/components/SpaceAdd.svelte
@@ -2,12 +2,12 @@
import Button from "@lib/components/Button.svelte"
import CardButton from "@lib/components/CardButton.svelte"
import SpaceCreate from "@app/components/SpaceCreate.svelte"
- import SpaceJoin from "@app/components/SpaceJoin.svelte"
+ import SpaceInviteAccept from "@app/components/SpaceInviteAccept.svelte"
import {pushModal} from "@app/modal"
const startCreate = () => pushModal(SpaceCreate)
- const startJoin = () => pushModal(SpaceJoin)
+ const startJoin = () => pushModal(SpaceInviteAccept)
diff --git a/src/app/components/SpaceInviteAccept.svelte b/src/app/components/SpaceInviteAccept.svelte
new file mode 100644
index 00000000..e13b19ae
--- /dev/null
+++ b/src/app/components/SpaceInviteAccept.svelte
@@ -0,0 +1,92 @@
+
+
+
diff --git a/src/app/components/SpaceJoin.svelte b/src/app/components/SpaceJoin.svelte
index e13b19ae..abe49982 100644
--- a/src/app/components/SpaceJoin.svelte
+++ b/src/app/components/SpaceJoin.svelte
@@ -1,90 +1,70 @@