Commit Graph

61 Commits

Author SHA1 Message Date
kernelkind
b41f4c3359 decouple RelayView UI from state mutation
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 15:46:09 -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
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
8e92a97a57 make selected accounts non optional
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:41:17 -04:00
Fernando López Guevara
c6dbb0e856 fix(content): handle case where notes are not loaded 2025-06-24 09:15:52 -07:00
kernelkind
589a8a904c fix log messages
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-23 16:32:28 -04:00
kernelkind
d560e84eab integrate new threads conception
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:03:13 -04:00
kernelkind
41c2c048a8 add overlay to RouterAction
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:00:33 -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
William Casarin
9033383a29 add input context menu helper
We are going to want this in more places

Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-16 16:11:15 -07:00
William Casarin
e87b6f1905 chrome: collapsible side panel
This implements the initial logic that makes the side panel collapsible.

Since we don't have a proper hamburger control, we do the same thing we
do on iOS for now.
2025-06-05 12:01:55 -07:00
William Casarin
1c3b172e21 clippy: fix large enum.
Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-31 16:33:18 -07: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
5598cc8ba0 use CustomZapView
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-17 14:41:48 -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
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
a29277d263 propagate JobsCache
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:55:53 -04:00
kernelkind
9013a2e067 propagate DefaultZapState to wallet ui
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-04-23 13:53:32 -04:00
kernelkind
f16e63cf3b use ZapWallet
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-04-23 13:53:32 -04:00
kernelkind
015e7790d0 move WalletState to UI
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-04-23 13:53:32 -04:00
William Casarin
8af80d7d10 ui: move note and profile rendering to notedeck_ui
We want to render notes in other apps like dave, so lets move
our note rendering to notedeck_ui. We rework NoteAction so it doesn't
have anything specific to notedeck_columns

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-17 12:34:43 -07:00
William Casarin
50dec5b5d5 context: implement note broadcasting
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 16:02:43 -07:00
kernelkind
cfbd601196 note zap button
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-04-08 22:50:00 -04:00
kernelkind
5917bc16fd propagate current account
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-04-08 22:50:00 -04:00
kernelkind
18ea05db0a use Zaps
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-04-08 22:50:00 -04:00
kernelkind
ebec367809 wallet route
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-04-08 22:50:00 -04:00
kernelkind
ad90a9565a canonize UserAccount
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-03-22 00:06:49 -04:00
jglad
318f96e37e #507 add right click paste in search
Signed-off-by: Jakub Gladysz <jakub.gladysz@protonmail.com>
2025-03-21 21:49:45 +01:00
kernelkind
a9f473e3c9 introduce NoteContext
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-03-08 14:57:32 -05:00
William Casarin
d85c6043b7 search: auto-focus search field on navigate
I'm going to add a search changelog on this commit since I forgot
to do so previously.

Fixes: https://linear.app/damus/issue/DECK-538/auto-focus-search-field-on-search-view
Changelog-Added: Added fulltext search ui
Signed-off-by: William Casarin <jb55@jb55.com>
2025-03-07 16:02:35 -08:00
kernelkind
e2be2ddd58 fix context selection responses
closes: https://github.com/damus-io/notedeck/issues/574

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-03-07 18:04:12 -05:00
William Casarin
1953496019 search: hook up nav actions
Fixes: https://linear.app/damus/issue/DECK-537/hook-up-search-query-view-responses
Signed-off-by: William Casarin <jb55@jb55.com>
2025-03-07 13:24:52 -08:00
William Casarin
c2545d17e7 route: add Search route and hook up SearchView
Signed-off-by: William Casarin <jb55@jb55.com>
2025-03-07 13:24:52 -08:00
William Casarin
873b0e0dcc nav: ocd updates
Signed-off-by: William Casarin <jb55@jb55.com>
2025-03-07 12:58:42 -08:00
William Casarin
4365839242 Revert driller
This reverts commit cec49c83bd.

Revert "update NoteContentsDriller to NoteContext"

This reverts commit 65bd6a65f9.

Revert "introduce the driller"

This reverts commit 95d618e7fe.
2025-03-07 12:53:34 -08:00
William Casarin
cec49c83bd fix formatting
Signed-off-by: William Casarin <jb55@jb55.com>
2025-03-07 12:36:26 -08:00
William Casarin
65bd6a65f9 update NoteContentsDriller to NoteContext
Signed-off-by: William Casarin <jb55@jb55.com>
2025-03-07 12:30:53 -08:00
kernelkind
95d618e7fe introduce the driller
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-03-07 12:07:24 -05:00
William Casarin
660b7cc8b7 feat: add --no-media flag to disable media display
- Introduced a new "no_media" boolean in ColumnsArgs to capture the
  --no-media flag.

- Updated NoteOptions to include a setting for hiding media, configured
  from parsed arguments.

- Refactored Damus to consolidate note options (textmode, scramble, and
  no-media) into a single NoteOptions field.

- Modified navigation UI rendering to pass the unified note_options.

This change allows users to disable media display via the --no-media flag.

Signed-off-by: William Casarin <jb55@jb55.com>
2025-02-22 14:39:33 -08:00
William Casarin
bd352f76d4 feat: add scramble flag for development text scrambling
This commit introduces a new scramble option to help reduce distractions
during development by scrambling text using rot13. When enabled via the
new `--scramble` flag, text displayed in various views is transformed,
making it easier to focus on layout and behavior without reading the
actual content.

App & Args Updates

  - Added a `scramble: bool` field to the main application state (in `app.rs`).

  - Extended argument parsing (in `args.rs`) to recognize the `--scramble` flag.

NoteOptions Enhancement

  - Introduced a new bit flag `scramble_text` in `NoteOptions` with
    corresponding setter/getter methods.

UI Adjustments

  - Propagated the scramble flag through note rendering functions across
    navigation, timeline, and note view modules.

  - Updated several UI components (e.g., in `nav.rs`, `route.rs`, and
    `contents.rs`) to accept and apply the new note options.

Rot13 Implementation

  - Implemented a helper function (`rot13`) to scramble text
    conditionally when the scramble option is enabled.

This feature is intended for development builds only, offering a way to
obscure text content during UI tweaks and testing.

Signed-off-by: William Casarin <jb55@jb55.com>
2025-02-22 14:30:38 -08:00
kernelkind
c1c4c1cc7a supply inner_rect for PostView
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-02-07 15:58:57 -05:00
William Casarin
0cc1d8a600 Switch to unified timeline cache via TimelineKinds
This is a fairly large rewrite which unifies our threads, timelines and
profiles. Now all timelines have a MultiSubscriber, and can be added
and removed to columns just like Threads and Profiles.

Signed-off-by: William Casarin <jb55@jb55.com>
2025-02-05 18:30:45 -08:00
Ken Sedgwick
fe3e2dad14 add Accounts::add_advertised_relay 2025-01-21 16:03:44 -08:00
Ken Sedgwick
e436be400e add add relay GUI 2025-01-21 12:21:13 -08:00