This slightly improves the style of reposts. Icon color and size still
needs an update[2]
We also update nostrdb[1] to support instant kind6 ingestion, making
reposts render immediately
William Casarin (3):
repost: update style
nostrdb: update to support fast kind6 repost ingest
[1] cd9ba0ea7d
[2] https://github.com/user-attachments/assets/23feba47-9d63-443f-9968-eba93053fc24
Merge kernel's changes for displaying kind6 reposts. We still need to
update the timeline code to fetch and include these in the queries.
kernelkind (2):
kind 6 repost impl
add suggested changes
also make nav go backward when clicking the account switch button if we
already are navigating to accounts
Signed-off-by: William Casarin <jb55@jb55.com>
Another massive refactor to change the way routing works. Now any
column can route anywhere.
Also things are generally just much better and more modular via the
new struct split borrowing technique.
I didn't even try to split this into smaller commits for my sanity.
Signed-off-by: William Casarin <jb55@jb55.com>
is_mobile doesn't really make sense for android tablets. We were
overloading this variable to mean "is_narrow". What we really want is
is_oled for mobile devices and is_narrow for if its phone-like.
Signed-off-by: William Casarin <jb55@jb55.com>
This adds blank space, but it will be nice if we can improve this
by either fading in or having some shimmer effect.
Signed-off-by: William Casarin <jb55@jb55.com>
This is a huge improvement over what it was before. Now all unknown id
lookups are debounced and happen through a central coordinator. This
ensures there is no duplication between timelines.
Fixes: https://github.com/damus-io/notedeck/issues/279
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>