Commit Graph
100 Commits
Author SHA1 Message Date
kernelkind 142aa879c3 make Contacts::is_following use bytes instead of Pubkey
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-14 21:34:08 -04:00
kernelkind a7f5319fde remove MuteFun prop
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-14 21:34:05 -04:00
kernelkind 397bfce817 add Accounts to NoteContext
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-14 21:34:02 -04:00
kernelkind 8c71e154f4 allow body on unknown profile
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-14 15:26:07 -04:00
kernelkind b5d56f7831 remove unnecessary FilterState::NeedsRemote filter
all NeedsRemote states are contact lists currently, which is
managed by `Accounts`

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-12 16:52:01 -04:00
kernelkind 46633d0513 use AccountSubs for timeline contact sub
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-12 16:48:20 -04:00
kernelkind dca9d3eeab send contact list event on account creation
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-10 13:47:32 -04:00
7b9db55a05 add UI for (un)follow
Signed-off-by: kernelkind <kernelkind@gmail.com>
Co-authored-by: Jakub Gladysz <jakub.gladysz@protonmail.com>
Co-authored-by: William Casarin <jb55@jb55.com>
2025-07-10 13:47:30 -04:00
a883ac8c34 add actions for follow/unfollow
Signed-off-by: kernelkind <kernelkind@gmail.com>
Co-authored-by: Jakub Gladysz <jakub.gladysz@protonmail.com>
Co-authored-by: William Casarin <jb55@jb55.com>
2025-07-10 13:47:28 -04:00
00d6651533 send kind 3 event
Signed-off-by: kernelkind <kernelkind@gmail.com>
Co-authored-by: Jakub Gladysz <jakub.gladysz@protonmail.com>
Co-authored-by: William Casarin <jb55@jb55.com>
2025-07-10 13:47:25 -04:00
kernelkind 6741ea8a01 construct NoteBuilder from existing note
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-10 13:47:23 -04:00
kernelkind 8a77ba5f8f move styled_button_toggleable to notedeck_ui
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-10 13:47:19 -04:00
kernelkind 9940537897 Unify sub for contacts in accounts & timeline
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-10 13:47:07 -04:00
kernelkind 497c102af1 expose AccountSubs
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-10 13:45:42 -04:00
kernelkind 1100e28233 use Contacts in AccountData
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-10 13:45:39 -04:00
kernelkind 9b7033e208 add Contacts
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-10 13:45:27 -04:00
kernelkind 4014d122c9 add constructor for AccountData
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-10 13:45:23 -04:00
kernelkind c99b99ed52 AccountData: decouple query from constructor
the ndb query must be as close to the subscription as possible to
avoid events falling through the cracks

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-10 13:45:20 -04:00
kernelkind 6c951d1a29 move polling responsibility to AccountData
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-10 13:45:13 -04:00
kernelkind e4beb954db bump nostrdb
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-10 13:45:03 -04:00
kernelkind b41f4c3359 decouple RelayView UI from state mutation
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 15:46:09 -04:00
kernelkind 10c4ac80a1 Revert "tmp: temporary AccountCache"
This reverts commit 726da7dabf5bf089a463309c41be3f6e11d0c43d.
2025-07-02 15:46:05 -04:00
kernelkind a73596df48 Clarify & enforce selected-only behavior in Accounts subscription
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 15:46:01 -04:00
kernelkind f0158f71b2 don't expose mutable access to UserAccount
it's not preferable that the full mutable access is available to
`ZapWallet`, but this PR is becoming too big already

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 15:45:57 -04:00
kernelkind 61e47323ab move modify_advertised_relays into accounts/relay.rs
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 15:45:54 -04:00
kernelkind 03c7d11351 move update_relay_configuration to account/relay.rs
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 15:45:51 -04:00
kernelkind 11edde45f4 split AccountStorage into reader & writer
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 15:45:47 -04:00
kernelkind 329385bd90 move AcountData into UserAccount
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 15:45:44 -04:00
kernelkind a962d67536 tmp: temporary AccountCache
will be removed before PR ends

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 15:45:37 -04:00
kernelkind f357935cca move (de)serialization of wallets & accounts to own structs
for easy cloning

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 15:45:31 -04:00
kernelkind 10d6d740b8 migrate accounts to be referenced through pks instead of indices
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:41:33 -04:00
kernelkind d092f5c23e move switching related actions from notedeck -> columns
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:41:29 -04:00
kernelkind b9cfe87974 wallet: remove unnecessary mut
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:41:26 -04:00
kernelkind 84026824b2 enostr: add equivalence between Pubkey & bytes
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:41:20 -04:00
kernelkind 8e92a97a57 make selected accounts non optional
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:41:17 -04:00
kernelkind 9cacb6bb69 add AccountCache
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:41:13 -04:00
kernelkind f318bbb19a remove unnecessary method
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:41:10 -04:00
kernelkind 2fb2940d56 accounts: make fallback pk non optional
Note: this commit alone is *incorrect* and will cause crashes.
It is part of a greater plan to upgrade accounts. It was done this
way to break commits to smaller, more digestable chunks

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:41:06 -04:00
kernelkind 4914c637ce move FALLBACK_PUBKEY
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:41:03 -04:00
kernelkind 320dedc8bd add RelayDefaults
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:41:00 -04:00
kernelkind 41e141d9a9 move aux code to bottom
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:40:56 -04:00
kernelkind e8d833bf89 accounts: move mute stuff to own module
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:40:52 -04:00
kernelkind 10ed593b6d accounts: move relay stuff to own file
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:40:44 -04:00
kernelkind e91684a7d5 accounts: move accounts to own module
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:40:39 -04:00
kernelkind e29ea35ee5 remove duplicate UnknownIds initialization
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:40:33 -04:00
kernelkind 86d68e786a threads: fix other replies not rendering in presence of one muted
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-23 16:32:34 -04:00
kernelkind 589a8a904c fix log messages
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-23 16:32:28 -04:00
kernelkind b7d6e3b2f1 only deserialize first route in each column
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:03:13 -04:00
kernelkind d560e84eab integrate new threads conception
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:03:13 -04:00
kernelkind f6753bae97 add NotesOpenResult
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:03:13 -04:00
kernelkind 87b4b5fc70 add preview flag to NoteAction
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:03:09 -04:00
kernelkind b3569e90d6 thread UI
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:01:20 -04:00
kernelkind 51476772c4 add unread note indicator option to NoteView
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:00:42 -04:00
kernelkind ea91f582ed add pfp bounding box to NoteResponse
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:00:40 -04:00
kernelkind b7bab1d29f note: refactor to use action composition & reduce nesting
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:00:37 -04:00
kernelkind c3b8823f72 ui: add hline_with_width
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:00:35 -04:00
kernelkind 41c2c048a8 add overlay to RouterAction
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:00:33 -04:00
kernelkind e0dd09dd5f add overlay conception to Router
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:00:29 -04:00
kernelkind cdcca0ba35 add threads impl
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:00:26 -04:00
kernelkind 3c31e1a651 add ThreadSubs for managing local & remote subscriptions
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:00:23 -04:00
kernelkind faa40bb616 tmp: upgrade egui-nav to use ReturnType
remove when damus-io/egui-nav merges

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:00:18 -04:00
kernelkind a77fe6ca00 unknowns: use unowned noteid instead of owned
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-18 14:39:05 -04:00
kernelkind 6da10c4faf add NoteId hashbrown Equivalent impl
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-18 14:38:26 -04:00
kernelkind 91c9cfc34f bugfix: txn failed
`ERROR notedeck_columns::timeline: setup_new_timeline:
database error: Transaction failed`

Reproduce by creating column, deleting it, then trying to create
it again. Before this fix, it was blank. Now it displays correctly

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-01 17:56:22 -04:00
kernelkind 2d55c8fb06 add search improvements
- '@' symbol brings up mention picker
- search for npub1, note1, and hashtags work

closes: https://github.com/damus-io/notedeck/issues/83
closes: https://github.com/damus-io/notedeck/issues/85

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-26 16:52:19 -04:00
kernelkind 9387fe4973 stop error log spam
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-26 16:32:21 -04:00
kernelkind 58b15d99d7 add SearchType
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-26 16:32:18 -04:00
kernelkind 64d3a0842e add NoteId::from_bech method
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-25 18:26:44 -04:00
kernelkind a1ac0cd2c8 appease clippy
not sure why this warning is only now showing up

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-25 18:25:34 -04:00
kernelkind db5e10656d set variable for scroll offset
necessary to maintain scroll positions across popup & Nav

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-22 20:33:20 -04:00
kernelkind 3cb2dd88b6 use popup sheet for CustomZapView
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-22 20:33:18 -04:00
kernelkind c36a22828d use router action
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-22 20:33:15 -04:00
kernelkind a44667ef1a nav: move process nav response to own method
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-22 20:33:12 -04:00
kernelkind f452a9010b nav: move action processing to own method
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-22 20:33:10 -04:00
kernelkind 08a720b860 add SingletonRouter
used for popup

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-22 20:33:06 -04:00
kernelkind 99aa50c120 TMP: use new egui-nav with popup
replace with damus-io/egui-nav when merged

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-22 20:32:33 -04:00
kernelkind 5598cc8ba0 use CustomZapView
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-17 14:41:48 -04:00
kernelkind a9a819f742 add CustomZapView
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-17 14:41:26 -04:00
kernelkind 68b5c32e7f method to get current default zap amount
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-17 14:30:21 -04:00
kernelkind 16e2c9d5b0 make styled button toggleable
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-17 14:30:19 -04:00
kernelkind d2158a6482 display name should wrap
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-17 14:30:15 -04:00
kernelkind 54c0fdb563 don't show zap button if no wallet
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-17 14:29:43 -04:00
kernelkind 98cb082fb4 hotfix: can login again
adds fallback pubkey as account and selects it when there are
no accounts

closes: https://github.com/damus-io/notedeck/issues/855

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-16 15:50:31 -04:00
kernelkind b2abe495ca implement blurring
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:57:57 -04:00
kernelkind 7d2112b472 make Widget impl ProfilePic mutably
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:57:54 -04:00
kernelkind 640bf742c0 add one shot error message
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:57:51 -04:00
kernelkind 929099c15f propagate Images to actionbar
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:57:48 -04:00
kernelkind e7c3755a08 pass NoteAction by value instead of reference
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:57:45 -04:00
kernelkind 953496fc74 note media: unnest full screen media
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:57:43 -04:00
kernelkind 01636786be note media: only show full screen when loaded
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:56:48 -04:00
kernelkind 379d6c0307 notedeck_ui: move carousel to note/media.rs
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:56:45 -04:00
kernelkind 258ac3de29 post: unnest
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:56:42 -04:00
kernelkind def9de0dc0 images: make promise payload optional to take easily
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:56:38 -04:00
kernelkind d204db4b29 images: make MediaCache hold MediaCacheType
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:56:34 -04:00
kernelkind 7f01f3623d add TexturesCache
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:56:29 -04:00
kernelkind faec75e1b6 images: move fetch to fn
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:56:26 -04:00
kernelkind a4ec0982d2 ImagePulseTint -> PulseAlpha
make it more generic to pulse alpha values, not necessarily image
tints

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:56:22 -04:00
kernelkind a29277d263 propagate JobsCache
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:55:53 -04:00
kernelkind e6212e5d17 note: remove unnecessary derive macros from NoteAction
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:54:38 -04:00
kernelkind b9e2daf47a introduce blur
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:54:34 -04:00