kernelkind
b04f50a9f6
insert space after mention selection
...
closes: https://github.com/damus-io/notedeck/issues/985
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-30 18:11:27 -04:00
kernelkind
233be47659
TMP: update egui for better TextInputState handling
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-30 17:45:12 -04:00
kernelkind
173972f920
mentions: don't lose focus after select mention
...
Closes: https://github.com/damus-io/notedeck/issues/728
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-30 17:45:09 -04:00
kernelkind
31ec21ea02
mention-picker: re-add spacing from inner_margin
...
shouldn't do this in Frame, for some reason that captures the drag
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-30 17:45:05 -04:00
kernelkind
d3d8d7be4b
fix scroll regression
...
Closes: https://github.com/damus-io/notedeck/issues/986
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-30 17:45:02 -04:00
kernelkind
09dc101c1b
rename SearchResultsView => MentionPickerView
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-30 17:44:51 -04:00
kernelkind
2bd139ef9e
use DragSwitch to allow dragging anywhere in navigation
...
instead of just the top header when there is a vertical scroll
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-24 17:54:36 -04:00
kernelkind
cda0a68854
add route_uses_frame
...
need to know this to get the correct drag id
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-24 17:54:32 -04:00
kernelkind
a555707f67
get scroll id for Route
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-24 17:54:11 -04:00
kernelkind
1601914b8b
use DragSwitch in Column
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-24 17:53:43 -04:00
kernelkind
aac0f54991
add DragSwitch
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-24 17:53:40 -04:00
kernelkind
8960b3f052
add scroll_id for all views with vertical scroll
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-24 17:53:35 -04:00
kernelkind
6db6cf7b7a
enforce scroll_id for ThreadView
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-24 17:53:28 -04:00
kernelkind
0bc32272d2
refactor scrolling for post, reply & quote views
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-24 17:53:25 -04:00
kernelkind
b05d39cc81
TMP: update egui-nav
...
need this to make drag switching work
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-24 17:53:12 -04:00
kernelkind
0b27282985
bugfix: unsubscribe all decks when log out account
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-17 21:39:58 -04:00
kernelkind
1c547bbcaa
bugfix: unsubscribe from timelines on deck deletion
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-17 21:25:09 -04:00
kernelkind
d4082eb818
bugfix: properly sub to new selected acc after removal of selected
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-17 20:31:36 -04:00
kernelkind
0b8a4fdf55
move select account logic to own method
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-17 20:22:48 -04:00
kernelkind
8263e56f41
expose AccountCache::falback
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-17 19:33:56 -04:00
kernelkind
8daa1d2adf
allow removal of Damoose account
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-17 19:24:33 -04:00
kernelkind
b9cae65b72
make UserAccount cloneable
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-17 19:24:01 -04:00
kernelkind
049bb3e8bb
use NwcError instead of nwc::Error
...
need to clone
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-17 19:01:51 -04:00
kernelkind
d22dd9ed31
appease clippy
...
```
error: large size difference between variants
--> crates/notedeck_columns/src/column.rs:249:1
|
249 | / pub enum IntermediaryRoute {
250 | | Timeline(Timeline),
| | ------------------ the largest variant contains at least 280 bytes
251 | | Route(Route),
| | ------------ the second-largest variant contains at least 72 bytes
252 | | }
| |_^ the entire enum is at least 280 bytes
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant
= note: `-D clippy::large-enum-variant` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(clippy::large_enum_variant)]`
help: consider boxing the large fields to reduce the total size of the enum
|
250 - Timeline(Timeline),
250 + Timeline(Box<Timeline>),
|
error: could not compile `notedeck_columns` (lib) due to 1 previous error
```
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-17 19:01:46 -04:00
kernelkind
fdef74c353
fix: sometimes most recent contacts list wasn't used
...
`ndb::poll_for_notes` appears to give notes as they arrive. We
need to make sure we only use the most recent for contacts
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-17 18:17:56 -04:00
kernelkind
030e4226f8
appease clippy
...
```
error: large size difference between variants
--> crates/notedeck_columns/src/column.rs:249:1
|
249 | / pub enum IntermediaryRoute {
250 | | Timeline(Timeline),
| | ------------------ the largest variant contains at least 280 bytes
251 | | Route(Route),
| | ------------ the second-largest variant contains at least 72 bytes
252 | | }
| |_^ the entire enum is at least 280 bytes
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant
= note: `-D clippy::large-enum-variant` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(clippy::large_enum_variant)]`
help: consider boxing the large fields to reduce the total size of the enum
|
250 - Timeline(Timeline),
250 + Timeline(Box<Timeline>),
|
error: could not compile `notedeck_columns` (lib) due to 1 previous error
```
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-17 18:17:53 -04:00
kernelkind
34afa755b8
add ChromePanelAction::Profile & use for pfp
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-17 15:23:41 -04:00
kernelkind
45490c918d
add new Accounts button to chrome sidebar
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-17 15:23:32 -04:00
kernelkind
a31fdd3ed2
use saturating sub
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-17 15:23:15 -04:00
kernelkind
5168d50257
add info statements
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-16 18:13:09 -04:00
kernelkind
cc92fc2082
make TimelineCache::timelines private
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-16 18:13:07 -04:00
kernelkind
dc4e3d7510
increment sub count when necessary
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-16 18:13:04 -04:00
kernelkind
95e9e4326a
add TimelineCache helper methods
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-16 18:13:00 -04:00
kernelkind
4db6f37017
track all timeline related subscriptions in TimelineSub
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-16 18:12:58 -04:00
kernelkind
6544d43d02
replace MultiSubscriber with TimelineSub
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-16 18:12:46 -04:00
kernelkind
efae62024e
migrate to check following through Contacts::is_following
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-14 21:34:33 -04:00
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