Commit Graph

18 Commits

Author SHA1 Message Date
William Casarin
3d18db8fd2 Fullscreen MediaViewer refactor
- Moved media related logic into notedeck instead of the ui crate,
  since they pertain to Images/ImageCache based systems

- Made RenderableMedia owned to make it less of a nightmware
  to work with and the perf should be negligible

- Added a ImageMetadata cache to Images. This is referenced
  whenever we encounter an image so we don't have to
  redo the work all of the time

- Relpaced our ad-hoc, hand(vibe?)-coded panning and zoom logic
  with the Scene widget, which is explicitly designed for
  this use case

- Extracted and detangle fullscreen media rendering from inside of note
  rendering.  We instead let the application decide what action they
  want to perform when note media is clicked on.

- We add an on_view_media action to MediaAction for the application to
  handle. The Columns app uses this toggle a FullscreenMedia app
  option bits whenever we get a MediaAction::ViewMedis(urls).

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-28 08:57:57 -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
Fernando López Guevara
44da10dc88 fix(profile): split always 2025-07-16 11:01:13 -03:00
Fernando López Guevara
ac85bdc21d feat(profile-view): split nip05 when is_narrow 2025-07-15 14:42:43 -07:00
kernelkind
8c71e154f4 allow body on unknown profile
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-07-14 15:26:07 -04:00
Jakub Gladysz
cc541cd4ff ui: add follow button
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:21 -04:00
Fernando López Guevara
36667bc024 feat(app_images): add module to manage static app image assets 2025-06-25 09:53:31 -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
kernelkind
9387fe4973 stop error log spam
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-26 16:32:21 -04:00
kernelkind
d2158a6482 display name should wrap
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-17 14:30:15 -04:00
kernelkind
b2abe495ca implement blurring
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:57:57 -04:00
kernelkind
7d2112b472 make Widget impl ProfilePic mutably
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:57:54 -04:00
William Casarin
5c8fba220c ui: add ProfilePic::from_profile_or_default
This is yet another helper, I really need to clean this
ui widget up in terms of its possible constructors...
2025-04-22 10:50:58 -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
9c9b4199f5 ui crate and chrome sidebar
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:29:01 -07:00