diff --git a/ROADMAP.md b/ROADMAP.md index 39f36445..18142e8d 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -3,10 +3,7 @@ - [ ] Fix memory usage - [x] Add table of user events, derive profile from this using `watch`. - [x] Make zapper info more compact - - [ ] Migrate - - [ ] Test - - [ ] Test that relays/follows made as anon don't stomp user settings on login - - [ ] Test anonymous usage, public key only usage + - [ ] Person search doesn't find people on first load - [ ] Fix re-connects - [ ] Show loading/success on zap invoice screen - [ ] Fix iOS/safari/firefox diff --git a/src/agent/user.ts b/src/agent/user.ts index f658e19f..3a09c088 100644 --- a/src/agent/user.ts +++ b/src/agent/user.ts @@ -75,7 +75,7 @@ export default { profile.update(assoc("petnames", $petnames)) - if (profileCopy) { + if (keys.canSign()) { return cmd.setPetnames($petnames).publish(profileCopy.relays) } }, @@ -102,7 +102,7 @@ export default { profile.update(assoc("relays", $relays)) - if (profileCopy) { + if (keys.canSign()) { return cmd.setRelays($relays).publish($relays) } }, @@ -132,7 +132,7 @@ export default { profile.update(assoc("mutes", $mutes)) - if (profileCopy) { + if (keys.canSign()) { return cmd.setMutes($mutes.map(slice(0, 2))).publish(profileCopy.relays) } }, diff --git a/src/partials/Channel.svelte b/src/partials/Channel.svelte index 48614864..4bf5e280 100644 --- a/src/partials/Channel.svelte +++ b/src/partials/Channel.svelte @@ -20,8 +20,6 @@ let showNewMessages = false let cursor = new Cursor() - const {profile} = user - $: { // Group messages so we're only showing the person once per chunk annotatedMessages = reverse( @@ -54,7 +52,7 @@ } onMount(() => { - if (!$profile) { + if (!user.getPubkey()) { return navigate("/login") } diff --git a/src/views/SideNav.svelte b/src/views/SideNav.svelte index dce80040..8af5f2fe 100644 --- a/src/views/SideNav.svelte +++ b/src/views/SideNav.svelte @@ -59,32 +59,30 @@ Scan - {#if $profile} -
  • - - Messages - {#if $newDirectMessages} -
  • -
  • - - Chat - {#if $newChatMessages} -
  • - {/if} +
  • + + Messages + {#if $newDirectMessages} +
  • +
  • + + Chat + {#if $newChatMessages} +
  • @@ -94,7 +92,7 @@ {/if}
  • - {#if $profile} + {#if $profile.pubkey}
  • Keys diff --git a/src/views/onboarding/Onboarding.svelte b/src/views/onboarding/Onboarding.svelte index a5c00091..d5915847 100644 --- a/src/views/onboarding/Onboarding.svelte +++ b/src/views/onboarding/Onboarding.svelte @@ -22,19 +22,27 @@ export let stage - let relays = [ - {url: "wss://nostr-pub.wellorder.net", write: true}, - {url: "wss://nostr.zebedee.cloud", write: true}, - {url: "wss://nos.lol", write: true}, - {url: "wss://brb.io", write: true}, - ] + const {relays: userRelays, petnamePubkeys} = user - let follows = [ - "97c70a44366a6535c145b333f973ea86dfdc2d7a99da618c40c64705ad98e322", // hodlbod - "3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d", // fiatjaf - "82341f882b6eabcd2ba7f1ef90aad961cf074af15b9ef44a09f9d2a8fbfbe6a2", // jack - "6e468422dfb74a5738702a8823b9b28168abab8655faacb6853cd0ee15deee93", // Gigi - ] + let relays = + $userRelays.length > 0 + ? $userRelays + : [ + {url: "wss://nostr-pub.wellorder.net", write: true}, + {url: "wss://nostr.zebedee.cloud", write: true}, + {url: "wss://nos.lol", write: true}, + {url: "wss://brb.io", write: true}, + ] + + let follows = + $petnamePubkeys.length > 0 + ? $petnamePubkeys + : [ + "97c70a44366a6535c145b333f973ea86dfdc2d7a99da618c40c64705ad98e322", // hodlbod + "3bf0c63fcb93463407af97a5e5ee64fa883d107ef9e558472c4eb9aaaefa459d", // fiatjaf + "82341f882b6eabcd2ba7f1ef90aad961cf074af15b9ef44a09f9d2a8fbfbe6a2", // jack + "6e468422dfb74a5738702a8823b9b28168abab8655faacb6853cd0ee15deee93", // Gigi + ] const privkey = generatePrivateKey() diff --git a/src/views/relays/RelayCard.svelte b/src/views/relays/RelayCard.svelte index 5dacc1de..32f23122 100644 --- a/src/views/relays/RelayCard.svelte +++ b/src/views/relays/RelayCard.svelte @@ -6,6 +6,7 @@ import RelayCard from "src/partials/RelayCard.svelte" import pool from "src/agent/pool" import user from "src/agent/user" + import keys from "src/agent/keys" import {loadAppData} from "src/app" export let relay @@ -17,6 +18,8 @@ let joined = false const {relays, canPublish} = user + const {method} = keys + const isPubkeyLogin = $method === "pubkey" $: joined = find(propEq("url", relay.url), $relays) @@ -47,8 +50,8 @@ 1 && canPublish ? removeRelay : null}> + addRelay={!joined && !isPubkeyLogin ? addRelay : null} + removeRelay={joined && $relays.length > 1 && !isPubkeyLogin ? removeRelay : null}>
    {#if showControls && $canPublish} Publish to this relay?