Commit Graph

71 Commits

Author SHA1 Message Date
William Casarin
db6103d448 router: fix router selection
Many times we get the router selection wrong. This fixes that

Changelog-Fixed: Fix some routing issues when routing from the Chrome
Fixes: https://github.com/damus-io/notedeck/issues/1024
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-24 12:11:19 -07:00
Fernando López Guevara
da6ede5f69 feat(settings): add settings view 2025-07-23 15:33:17 -03:00
William Casarin
3d4db820b4 i18n: make localization context non-global
- Simplify Localization{Context,Manager} to just Localization
- Fixed a bunch of lifetime issueo
- Removed all Arcs and Locks
- Removed globals
  * widgets now need access to &mut Localization for i18n

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-22 09:49:32 -07:00
3f5036bd32 Internationalize user-facing strings and export them for translations
Changelog-Added: Internationalized user-facing strings and exported them for translations
Signed-off-by: Terry Yiu <git@tyiu.xyz>
2025-07-21 12:45:29 -07:00
William Casarin
8a1398face clippy fixes
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-17 13:54:43 -07:00
William Casarin
c0c2120f74 android: fix back button
Fixes: https://github.com/damus-io/notedeck/issues/972
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-17 09:18:34 -07:00
kernelkind
cc92fc2082 make TimelineCache::timelines private
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-16 18:13:07 -04:00
Fernando López Guevara
4bf75c95de feat(note-view): show note client 2025-07-16 17:09:59 -03:00
William Casarin
461665f599 ui: remove show_pointer
This can just be achieved by on_hover_cursor

Didn't realize this.

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-16 09:17:27 -07:00
Fernando López Guevara
ab43bdb65a fix(deck): show column picker when deck has no columns 2025-07-15 14:42:32 -07:00
William Casarin
119456e2b3 columns: switch to bitflag app options
we're adding a ScrollToTop bool for an updating change
to the toolbar, but we have too many flags now. Let's switch
to bitflags

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-15 12:42:20 -07:00
William Casarin
744483fbc0 ui: don't auto-repaint that often
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-15 08:28:33 -07:00
kernelkind
46633d0513 use AccountSubs for timeline contact sub
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-12 16:48:20 -04:00
William Casarin
6596e89e29 anim: animate on compose button hide
before we were just nuking it

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-11 14:23:50 -07:00
William Casarin
ade6f57fd5 anim: animate show/hide of compose button
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-11 14:21:26 -07:00
William Casarin
e8444f10b3 Revert "Unify sub for contacts in accounts & timeline"
Since its causing contact timelines to not load

eg: ./target/release/notedeck --datapath new3 -c contacts

This reverts commit 9940537897.
2025-07-11 13:49:47 -07:00
William Casarin
96cb5e26ce Merge follow/unfollow from kernel
Jakub Gladysz (1):
      ui: add follow button

kernelkind (14):
      bump nostrdb
      move polling responsibility to `AccountData`
      `AccountData`: decouple query from constructor
      add constructor for `AccountData`
      add `Contacts`
      use `Contacts` in `AccountData`
      expose `AccountSubs`
      Unify sub for contacts in accounts & timeline
      move `styled_button_toggleable` to notedeck_ui
      construct NoteBuilder from existing note
      send kind 3 event
      add actions for follow/unfollow
      add UI for (un)follow
      send contact list event on account creation
2025-07-11 13:06:24 -07:00
William Casarin
26d027f03e nav: nav to accounts view for actions that require key
Fixes: https://github.com/damus-io/notedeck/issues/936
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 16:17:08 -07:00
William Casarin
605f6f4711 android: hide new post button when navigating
Fixes: https://github.com/damus-io/notedeck/issues/898
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 15:45:33 -07:00
William Casarin
4bdfbc6400 onboarding: restore demo deck
for some reason it was getting overwritten ?

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 14:54:48 -07:00
William Casarin
b6348b1507 note/options: simplify flag logic
simpler, less macro magic

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 14:29:56 -07:00
William Casarin
e0f2e467d2 args: switch to oot_bitset for arg flags
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 13:34:24 -07: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
Fernando López Guevara
ec25413433 feat(mobile): improve layout and behavior on narrow screens 2025-07-08 16:20:51 -07: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
329385bd90 move AcountData into UserAccount
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 15:45:44 -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
kernelkind
4914c637ce move FALLBACK_PUBKEY
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-02 11:41:03 -04:00
kernelkind
d560e84eab integrate new threads conception
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:03:13 -04:00
William Casarin
e8d240df42 toolbar: process actions
Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-07 10:19:13 -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
5cb0911d7e log: less verbose unknown id logging 2025-06-05 11:59:51 -07:00
William Casarin
771537a4f6 android: hover post button when narrow
Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-03 10:29:38 -07: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
badf3070c8 introduce JobsCache
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:54:26 -04:00
William Casarin
e8a1233174 dave: bubble note actions to chrome
This allows chrome to pass note actions to other apps
2025-04-22 18:42:12 -07: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
William Casarin
9c9b4199f5 ui crate and chrome sidebar
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:29:01 -07:00
William Casarin
54deb2dd88 switch to profiling crates
This switches to the profiling crate for compatible
profiling between rust libraries.

To enable:

$ cargo build --release --features puffin

Feel free to experiment with other profiling backends
as well! Would be great to get tracy working.
2025-03-23 11:30:18 -07:00
William Casarin
7b9e6f180c disable large scale unknown id detection
its slow
2025-03-23 09:40:46 -07:00
kernelkind
ad90a9565a canonize UserAccount
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-03-22 00:06:49 -04:00
William Casarin
26b58683b8 feat: integrate nostrdb relay indexing
- Upgrade `nostrdb` to v0.6.1 with relay metadata support
- Switch to `nostr::RelayUrl` for typed relay URLs
- Use `process_event_with()` to pass relay info during ingestion
- Update `Relay`, `RelayPool`, and unknown ID logic accordingly

This enables richer indexing with relay provenance in events.

Signed-off-by: William Casarin <jb55@jb55.com>
2025-03-21 16:20:37 -07:00
William Casarin
adb3359bd8 debug: fix debug crash when adding columns
Signed-off-by: William Casarin <jb55@jb55.com>
2025-03-17 16:44:51 -07:00
kernelkind
0461a98d5d handle UrlCache io
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-02-25 16:49:00 -05:00
kernelkind
33fdf647e3 migrate to using Images instead of MediaCache directly
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-02-25 16:49:00 -05:00
kernelkind
888a933e56 support multiple media cache files
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-02-25 16:49:00 -05:00
kernelkind
4f4a0feb8c rename ImageCache -> MediaCache
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-02-25 16:49:00 -05:00