From f5b5e851f79c005a9db59255b0f1f8b4913c1372 Mon Sep 17 00:00:00 2001 From: Jonathan Staab Date: Thu, 1 Dec 2022 10:39:53 -0800 Subject: [PATCH] Add search page --- README.md | 5 +- src/App.svelte | 7 ++ src/main.js | 3 + src/partials/Note.svelte | 4 +- src/partials/NoteDetail.svelte | 4 +- src/routes/Notes.svelte | 1 - src/routes/Search.svelte | 118 +++++++++++++++++++++++++++++++++ src/state/app.js | 1 + src/state/nostr.js | 2 +- 9 files changed, 137 insertions(+), 8 deletions(-) create mode 100644 src/routes/Search.svelte diff --git a/README.md b/README.md index 38fc70ee..17434c62 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ Bugs +- [ ] Scale rather than fly reply box +- [ ] Listener on notes view not adding notes - [ ] Pin joined relays at the top - [ ] Load/publish user preferred relays - [ ] Optimistically load events the user publishes (e.g. to reduce reflow for reactions/replies). Essentially, we can pretend to be our own in-memory relay. @@ -9,7 +11,8 @@ Features - [x] Chat - [x] Threads/social - [ ] Search -- [ ] Followers +- [ ] Followers, blocking +- [ ] Notifications - [ ] Server discovery - [ ] Favorite chat rooms diff --git a/src/App.svelte b/src/App.svelte index b350f5c8..909dd9ee 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -15,6 +15,7 @@ import Anchor from 'src/partials/Anchor.svelte' import NoteDetail from "src/partials/NoteDetail.svelte" import NotFound from "src/routes/NotFound.svelte" + import Search from "src/routes/Search.svelte" import Notes from "src/routes/Notes.svelte" import Login from "src/routes/Login.svelte" import Profile from "src/routes/Profile.svelte" @@ -75,6 +76,7 @@
+ @@ -112,6 +114,11 @@ {/if} +
  • + + Search + +
  • Notes diff --git a/src/main.js b/src/main.js index 5c1f795f..e1652201 100644 --- a/src/main.js +++ b/src/main.js @@ -1,6 +1,9 @@ import './app.css' import App from './App.svelte' +// Annoying global always fails silently. Figure out an eslint rule instead +window.find = null + const app = new App({ target: document.getElementById('app') }) diff --git a/src/partials/Note.svelte b/src/partials/Note.svelte index c9aebb0c..b9d5e2b6 100644 --- a/src/partials/Note.svelte +++ b/src/partials/Note.svelte @@ -7,8 +7,8 @@ import {hasParent, toHtml} from 'src/util/html' import Anchor from 'src/partials/Anchor.svelte' import {dispatch} from "src/state/dispatch" - import {channels, findReplyTo} from "src/state/nostr" - import {accounts, modal, annotateNotes} from "src/state/app" + import {findReplyTo} from "src/state/nostr" + import {accounts, modal} from "src/state/app" import {user} from "src/state/user" import {formatTimestamp} from 'src/util/misc' import UserBadge from "src/partials/UserBadge.svelte" diff --git a/src/partials/NoteDetail.svelte b/src/partials/NoteDetail.svelte index 0675d731..10e704bb 100644 --- a/src/partials/NoteDetail.svelte +++ b/src/partials/NoteDetail.svelte @@ -1,10 +1,8 @@ + + + +
      +
    • type.set('people')}> + People +
    • +
    • type.set('notes')}> + Notes +
    • +
    + +
    + + + +
    + +
    + + + + +{#if $relays.length === 0} +
    +
    + You aren't yet connected to any relays. Please click here to get started. +
    +
    +{/if} + diff --git a/src/state/app.js b/src/state/app.js index c83dabbd..93f5ec48 100644 --- a/src/state/app.js +++ b/src/state/app.js @@ -50,6 +50,7 @@ export const ensureAccounts = async (pubkeys, {force = false} = {}) => { ...$accounts[e.pubkey], ...JSON.parse(e.content), refreshed: now(), + isAccount: true, } }) diff --git a/src/state/nostr.js b/src/state/nostr.js index d19b12e7..add9abec 100644 --- a/src/state/nostr.js +++ b/src/state/nostr.js @@ -1,6 +1,6 @@ import {writable, get} from 'svelte/store' import {relayPool, getPublicKey} from 'nostr-tools' -import {last, intersection, uniqBy, prop} from 'ramda' +import {last, find, intersection, uniqBy, prop} from 'ramda' import {first, noop, ensurePlural} from 'hurdak/lib/hurdak' import {getLocalJson, setLocalJson, now, timedelta} from "src/util/misc"