kernelkind
f4b8d235eb
rename get_users_zap_endpoint -> get_users_zap_address
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-09-01 17:01:05 -04:00
kernelkind
cf48b29fd8
make endpoint error into struct
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-09-01 17:01:01 -04:00
kernelkind
2a7c5eb983
rename LNUrlPayRequest -> LNUrlPayResponseRaw
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-09-01 13:33:33 -04:00
kernelkind
72d696beb2
actionbar: reintroduce error messages
...
there was a regression that caused error messages to not be displayed
any more when zapping.
Now when you click the zap button and the zap fails for some reason, the
zap button will be replaced with an X and hovering over the X displays
the error message
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-31 19:34:51 -04:00
kernelkind
dea695fa8e
actionbar: don't early return
...
it's not good practice to early return while rendering,
super easy to introduce flickering
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-31 19:29:11 -04:00
kernelkind
8b5464641d
render follow pack by index from virtual list
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 21:16:05 -04:00
kernelkind
c06d18f76b
prop Onboarding as mut
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 21:14:52 -04:00
kernelkind
84e60e0642
add virtual list to Onboarding
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 21:14:02 -04:00
kernelkind
23f35c60bb
add Nip51SetCache helper methods
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 21:13:17 -04:00
kernelkind
30c2ebdcc2
use indexmap
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 21:12:41 -04:00
kernelkind
1658600604
expose indexmap to notedeck
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 21:11:28 -04:00
kernelkind
529377a706
ui: reactions closer approximation of iOS design
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 20:15:40 -04:00
kernelkind
30af03cfcc
fix reaction target bug
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 20:02:34 -04:00
kernelkind
bb878d3772
fix duplicate ReactionUnit for multiple kth indices
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 20:02:34 -04:00
kernelkind
5c9eb492b6
introduce failing test for reaction duplication bug
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 20:02:34 -04:00
kernelkind
0b584a773f
ui: remove unnecessary reverse
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:57:00 -04:00
kernelkind
78504a6673
use TimelineUnits instead of Vec<NoteRef>
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:56:56 -04:00
kernelkind
ae204cbd5c
upgrade TimelineOpenResult to hold new pubkeys too
...
for handling unknown profiles
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:56:53 -04:00
kernelkind
7d4e9799e5
ui: add rendering for NoteUnits
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:56:48 -04:00
kernelkind
55d7cd3379
prop UnknownIds for initial timeline
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:32:10 -04:00
kernelkind
697040d862
make since optimize accept Option<&NoteRef> instead of notes
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:32:07 -04:00
kernelkind
49866418a6
note: account for mutes in the notifications dot
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:32:03 -04:00
kernelkind
9b784dfdf7
add TimelineUnits
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:31:59 -04:00
kernelkind
c1d6c0f535
add reactions kind to notifications filter
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:31:54 -04:00
kernelkind
1a93663b1a
replace HybridSet with NoteUnits
...
This will unify the collections that hold the notes to timelines
and threads and allow the notifications timeline to have grouped
notifications, among other things
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:31:50 -04:00
kernelkind
4992e25b3a
unknownids: use pk bytes
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:31:47 -04:00
kernelkind
7b1ace328f
add muted helper
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:31:43 -04:00
kernelkind
2973a0c6c5
appease clippy
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:31:42 -04:00
kernelkind
4f63629715
ui: add like icon
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:31:37 -04:00
kernelkind
686dea9831
move HybridSet to own file
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:31:34 -04:00
kernelkind
01171ff9d7
remove commented out code...
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:31:27 -04:00
kernelkind
b421e7e45f
make TimelineCache::notes private
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-25 10:31:20 -04:00
kernelkind
86641c6121
use the onboarding follow pack curator pubkey
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-08-19 15:05: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