split hashtag follows into a separate Filter, combining authors and
hashtags doesn't work, because this is considered an AND filter, where
we want an OR.
We may want an option to split hashtags follows into a separate column.
Signed-off-by: William Casarin <jb55@jb55.com>
This implements initial local contact queries. For testing you can
create contact list columns via:
Examples
--------
Make a contacts column from a specific npub:
$ notedeck --column contacts:npub...
Use the current user's contacts:
$ notedeck --column contacts --pub npub...
We also introduce a new ColumnKind enum which is used to describe the
column type.
Signed-off-by: William Casarin <jb55@jb55.com>
This adds a method for creating filters from contact lists. We will be
using this for creating follow timelines.
Signed-off-by: William Casarin <jb55@jb55.com>
Add a selectable text option to various note views. We don't want
selection events to interfere with back drag, so this is the first step
toward ensure back drag works.
Vertical scrollviews also interfere with back drag, so we'll still need
a way to compose gestures. It's not clear if this is currently possibly
with egui (union of responses somehow maybe?)
Signed-off-by: William Casarin <jb55@jb55.com>
We have a NoteRef cache for threads in memory, which is just a list of
NoteKeys and timestamps.
When reopening a thread, query the local DB to see if there are any new
notes that we might have missed because we weren't actively subscribed
to them.
Signed-off-by: William Casarin <jb55@jb55.com>
This adds local nostrdb thread subscriptions. When navigating to a
thread, we first check to see if we have any active nostrdb
subscriptions for that thread. If not, we create a new subscription. If
we do, we re-use that subscription.
This works by storing thread state in the Threads struct in the Damus
application state.
When we pop a route, we check to see if its a thread route. If it is,
then we try to unsubscribe, but only if that is the last remaining
subscriber for that thread, as there could be more than one.
Signed-off-by: William Casarin <jb55@jb55.com>
This is a really dumb and broken version of threads, but it will be our
foundation for future changes.
All it currently does is load whatever notes we have locally for a
thread in chronological order. It currently does not open any
subscriptions. It is not clear what is replying to what, but hey, its a
start.
Signed-off-by: William Casarin <jb55@jb55.com>
This allows you to use specific relays instead of some random
bootstrap ones we are currently using
Fixes: https://github.com/damus-io/notedeck/issues/154
Changelog-Added: Add -r/--relay cli option for customized relay pool
Signed-off-by: William Casarin <jb55@jb55.com>
This adds a 'wide' note design for note previews. This is a mode
where the note contents does not have padding at the start. This makes
notes previews a bit nicer.
Screenshot: https://cdn.jb55.com/s/84271f386d564c34.png
Signed-off-by: William Casarin <jb55@jb55.com>