diff --git a/README.md b/README.md index 2e23aac7..3c2a2cb9 100644 --- a/README.md +++ b/README.md @@ -74,6 +74,7 @@ If you like Coracle and want to support its development, you can donate sats via - [ ] Load feeds from network rather than user relays? This could make global feed more useful: global for _my_ relays - [ ] Release to android with https://svelte-native.technology/docs - [ ] Compress is taking too long and messing up the ui, maybe use dexie for people? +- [ ] Move people to nprofile via bech32 entity (or redirect from there) ## 0.2.6 diff --git a/src/App.svelte b/src/App.svelte index 234e218b..08012be3 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -15,7 +15,8 @@ import {modal, toast, settings, alerts} from "src/app" import {routes} from "src/app/ui" import Anchor from 'src/partials/Anchor.svelte' - import NoteDetail from "src/views/NoteDetail.svelte" + import Modal from 'src/partials/Modal.svelte' + import NoteDetailModal from "src/views/NoteDetail.svelte" import PersonSettings from "src/views/PersonSettings.svelte" import NotFound from "src/routes/NotFound.svelte" import Search from "src/routes/Search.svelte" @@ -30,6 +31,7 @@ import AddRelay from "src/routes/AddRelay.svelte" import Person from "src/routes/Person.svelte" import NoteCreate from "src/routes/NoteCreate.svelte" + import Bech32Entity from "src/routes/Bech32Entity.svelte" export let url = "" @@ -39,6 +41,11 @@ const searchIsOpen = writable(false) const toggleSearch = () => searchIsOpen.update(x => !x) + const closeModal = () => { + modal.set(null) + menuIsOpen.set(false) + } + let menuIcon let scrollY let suspendedSubs = [] @@ -78,14 +85,6 @@ }) - { - if (e.key === 'Escape') { - modal.set(null) - menuIsOpen.set(false) - } - }} /> -
@@ -104,6 +103,11 @@ + + {#key params.entity} + + {/key} +
@@ -197,25 +201,17 @@ {/if} {#if $modal} -
-
modal.set(null)} /> - -
+ + {#if $modal.note} + {#key $modal.note.id} + + {/key} + {:else if $modal.form === 'relay'} + + {:else if $modal.form === 'person/settings'} + + {/if} + {/if} {#if $toast} diff --git a/src/agent/index.js b/src/agent/index.js index 7d4acd5f..f3dcbe4a 100644 --- a/src/agent/index.js +++ b/src/agent/index.js @@ -46,6 +46,10 @@ export const getRelays = pubkey => { } export const getEventRelays = event => { + if (event.seen_on) { + return [event.seen_on] + } + return uniq(getRelays(event.pubkey).concat(Tags.from(event).relays())) } diff --git a/src/app/index.js b/src/app/index.js index 02b3182e..bb327ac9 100644 --- a/src/app/index.js +++ b/src/app/index.js @@ -1,11 +1,12 @@ import {without} from 'ramda' import {updateIn, mergeRight} from 'hurdak/lib/hurdak' import {get} from 'svelte/store' -import {getPerson, getRelays, people, keys, db} from 'src/agent' +import {getPerson, getRelays, people, load, keys, db} from 'src/agent' import {toast, modal, settings} from 'src/app/ui' import cmd from 'src/app/cmd' import alerts from 'src/app/alerts' import loaders from 'src/app/loaders' +import query from 'src/app/query' export {toast, modal, settings, alerts} @@ -49,3 +50,19 @@ export const removeRelay = async url => { await cmd.setRelays(without([url], relays)) } + +export const loadNote = async (relays, id) => { + const [found] = await load(relays, {ids: [id]}) + + if (!found) { + return null + } + + const context = await loaders.loadContext(relays, found) + const note = query.annotate(found, context, {showEntire: true, depth: 3}) + + // Log this for debugging purposes + console.log('loadNote', note) + + return note +} diff --git a/src/partials/Modal.svelte b/src/partials/Modal.svelte new file mode 100644 index 00000000..990b2e8a --- /dev/null +++ b/src/partials/Modal.svelte @@ -0,0 +1,24 @@ + + + { + if (e.key === 'Escape') { + onEscape() + } + }} /> + +
+
+ +
diff --git a/src/partials/Note.svelte b/src/partials/Note.svelte index 9852323e..9089d0df 100644 --- a/src/partials/Note.svelte +++ b/src/partials/Note.svelte @@ -1,6 +1,7 @@ + +
+ {#if type === "nevent"} + + {/if} +
+ diff --git a/src/routes/NoteDetail.svelte b/src/routes/NoteDetail.svelte new file mode 100644 index 00000000..0bbbde47 --- /dev/null +++ b/src/routes/NoteDetail.svelte @@ -0,0 +1,29 @@ + + +{#if !note} +
+ Sorry, we weren't able to find this note. +
+{:else if note.pubkey} +
+ +
+{:else} + +{/if} diff --git a/src/views/NoteDetail.svelte b/src/views/NoteDetail.svelte index c2b34cbf..0a8a0c73 100644 --- a/src/views/NoteDetail.svelte +++ b/src/views/NoteDetail.svelte @@ -1,9 +1,6 @@