kernelkind
1658600604
expose indexmap to notedeck
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 21:11:28 -04:00
kernelkind
9ef72ec7de
fix contact list bug
...
not a great solution but we're going to get a new sub manager
soon so it'll probably get replaced anyway
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-17 15:07:24 -04:00
kernelkind
1566cd5cf4
integrate onboarding
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-17 15:07:21 -04:00
kernelkind
bdcd31cda0
add onboarding related state to app
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-17 15:07:19 -04:00
kernelkind
a782d01ec2
add onboarding view
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-17 15:07:16 -04:00
kernelkind
8d4c0cfdbe
TMP: temporary author for trusted pks list
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-17 15:07:14 -04:00
kernelkind
f8f720c193
add onboarding 'manager'
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-17 15:07:09 -04:00
kernelkind
2a439b1f30
nip 51 set widget
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-17 15:07:04 -04:00
kernelkind
8399c951fa
add nip51 set caching structs
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-17 15:07:00 -04:00
kernelkind
ac1bbeac1b
add impl for ScaledTextureFlags::RESPECT_MAX_DIMS
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-17 15:06:57 -04:00
kernelkind
dc91b6ffae
extract a pub render_media from image_carousel
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-17 15:06:55 -04:00
kernelkind
28bd13d110
add flags to ScaledTexture
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-17 15:06:48 -04:00
kernelkind
0b12b08c59
clippy: allow collapsible match
...
clippy being annoying
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-17 15:06:42 -04:00
kernelkind
b750c0a927
use toolbar in columns rather than chrome
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-13 19:20:38 -04:00
kernelkind
49ef85aef6
copy toolbar rendering to notedeck_ui
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-13 19:18:28 -04:00
kernelkind
29f59459d2
add toolbar defaults
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-13 19:18:28 -04:00
kernelkind
cd0bd53b3d
add toolbar related logic
...
copied from chrome
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-13 19:18:28 -04:00
kernelkind
5c0546deab
add select_by_route
...
selects the column containing the desired route. Add it if it
doesn't exist and it's easy to do
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-13 19:18:28 -04:00
kernelkind
1469f9a074
add toolbar icons to notedeck_ui
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-13 19:07:42 -04:00
kernelkind
3d8018bb9a
make compose button animate horiz rather than vert
...
it animating over the toolbar made the bar dissapear for
some reason
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-13 19:06:18 -04:00
kernelkind
361d0e3708
make search icon more customizable
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-13 19:04:16 -04:00
kernelkind
d12f66e5cd
appease clippy
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-04 16:13:53 -04:00
kernelkind
e8be471608
set scroll offset when routing to thread
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-04 16:12:45 -04:00
kernelkind
97d15e41e7
add ThreadNote::set_scroll_offset
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-04 16:12:42 -04:00
kernelkind
ea5c876da6
add scroll_offset to NoteAction::Note
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-04 16:12:38 -04:00
kernelkind
75eefcbf72
TMP: use new egui-nav to fix scroll offset issues
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-04 16:12:27 -04:00
kernelkind
41aa2db3c7
use unseen notification indicator
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-31 19:08:08 -04:00
kernelkind
10225158e5
paint unseen indicator
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-31 19:07:36 -04:00
kernelkind
557608db9b
chrome: method to find whether there are unseen notifications
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-31 19:07:35 -04:00
kernelkind
8697a5cb0a
set fresh from TimelineCache
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-31 19:07:28 -04:00
kernelkind
7aca39aae8
add NotesFreshness to TimelineTab
...
necessary for notifications indicator
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-31 19:07:24 -04:00
kernelkind
aa467b9be0
extract notifications filter to own method
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-31 19:07:13 -04:00
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