Commit Graph

647 Commits

Author SHA1 Message Date
William Casarin e6efad025f timeline: don't hide on resize
It doesn't seem to flicker so why not

Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-31 09:24:52 +02:00
William Casarin 6e69407224 cleanups 2024-05-31 01:08:45 -05:00
William Casarin 2305f1e50a mobile: make mobile flag runtime-configurable
we need to pass a few more things around but it's not that bad. This
will allow you to launch damus with --mobile for mobile testing without
recompilation.
2024-05-31 01:05:53 -05:00
William Casarin 83eab71148 Merge remote-tracking branch 'pr/80' 2024-05-31 01:01:05 -05:00
William Casarin 92ce718e8b side_panel: return more detailed side panel responses
We should be treating all ui widgets as pure functions that do not
mutate anything. This will make testing easier, as well as avoiding
shared mutable references.

Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-28 15:09:19 -07:00
William Casarin 31b2b5c950 initial refactor in preparation for routing
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-28 15:09:01 -07:00
William Casarin 2af44641db cap size of remote filter limits
I noticed the responses are a bit slow without this. Local query limits
are not capped.

Fixes: https://github.com/damus-io/notedeck/issues/98
Changelog-Changed: Restrict remote filter sizes to 250 (for now)
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-27 11:50:45 -07:00
William Casarin c1cf7ea324 bump timeline filter limit
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-27 11:50:09 -07:00
kernelkind df0377cb89 Pfp integration to side panel
Signed-off-by: kernelkind <kernelkind@gmail.com>
2024-05-27 10:48:28 -07:00
kernelkind 7ebd694f11 refactor account switcher & management previews
Signed-off-by: kernelkind <kernelkind@gmail.com>
2024-05-27 10:48:28 -07:00
kernelkind 22264e70f5 Integrate account switcher to side panel
Signed-off-by: kernelkind <kernelkind@gmail.com>
2024-05-27 10:48:28 -07:00
kernelkind c0b1a01b5d Account switcher
Signed-off-by: kernelkind <kernelkind@gmail.com>
2024-05-27 10:48:28 -07:00
kernelkind f489ed3b9e Migrate to new AccountManagementView conception
Signed-off-by: kernelkind <kernelkind@gmail.com>
2024-05-27 10:48:28 -07:00
kernelkind 2ca47edf4d AccountManager: add ability to make a selection
Signed-off-by: kernelkind <kernelkind@gmail.com>
2024-05-27 10:48:28 -07:00
kernelkind bdf6156fff Move preview controller out of account_manager.rs
Signed-off-by: kernelkind <kernelkind@gmail.com>
2024-05-27 10:48:28 -07:00
kernelkind 11b3effa51 Add AccountManager to app
Signed-off-by: kernelkind <kernelkind@gmail.com>
2024-05-27 10:48:28 -07:00
kernelkind 748d9d2358 Integrate global popup into app
Signed-off-by: kernelkind <kernelkind@gmail.com>
2024-05-27 10:48:28 -07:00
kernelkind f071d59dae Rename PersistState -> StateInMemory
also use IdTypeMap::insert_temp instead of insert_persisted.
The whole conception of using egui memory to share state is probably
going to be changed to a more robust solution in the future.

Signed-off-by: kernelkind <kernelkind@gmail.com>
2024-05-27 10:48:28 -07:00
William Casarin 194f41d39c integrate sidebar into main view
buttons don't do anything yet

Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-27 10:48:28 -07:00
William Casarin 66ce42a302 remove context from DesktopSidePanel
we can just get this from the egui::Ui when rendering

Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-27 10:48:28 -07:00
kernelkind fd943e5f9f account_management: refactor
Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-27 10:48:28 -07:00
kernelkind 88a3a2d088 move test account creation & apply to global popup
Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-27 10:48:28 -07:00
kernelkind 17d0c97c78 Create side panel & global popup
Create a side panel UI element for desktop with three buttons for:
adding a column, settings, and account management. The account
management button is temporary pending a better design. It is the only
one that is interactable at the moment. When the user clicks it, the
global popup window will be shown and the AccountManagementView will be
presented on the window. The user can click on the X on the top right of
the window to close it.

Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-27 10:48:28 -07:00
kernelkind 1dc832baea app: add accounts to Damus & mock
Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-27 10:48:28 -07:00
William Casarin 5630f93b71 debug: add some debug logs for keyboard note selection
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-24 13:43:31 -07:00
William Casarin 9e5048d4f2 input: fix deadlock on resize
weird egui Context quirk

Fixes: https://github.com/damus-io/notedeck/issues/97
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-24 13:42:57 -07:00
William Casarin 2bef02106a mobile: use my timeline for testing again
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-24 13:21:37 -07:00
William Casarin c5cc2f923c mobile: a tad more padding at the top
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-24 13:21:22 -07:00
William Casarin 56e1e2fa09 update slow timeline query
relays have trouble with large limits?

Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-24 13:21:02 -07:00
William Casarin 739e9f87f2 nip10: fetch unknown replied-to notes
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-24 13:20:33 -07:00
William Casarin 135a5c99ae Revert "deps: using tracing instead of log"
This reverts commit af92e326f6.
2024-05-23 16:10:07 -07:00
William Casarin c421a49912 Merge MacOS key storage
kernelkind (3):
      Add MacOS key storage
      Conditionally compile MacOS key storage code
      macos_key_storage: runner ignore tests
2024-05-23 16:00:18 -07:00
William Casarin 83100d7f50 tabs: select notes & replies by default
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-23 15:50:06 -07:00
William Casarin 6fc5eb27fc working notes + notes&replies
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-23 15:31:24 -07:00
William Casarin 232ba0e3aa list: switch from arc mutext to rc refcell
we don't have any multithreaded stuff yet

Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-23 15:27:37 -07:00
William Casarin a8693a2bd3 timeline: refactor tabs into TimelineView
TimelineView is a filtered view of a timeline. We will use this for
future tab rendering. We also introduce a new "selection" concept for
selecting notes on different timeline views. This is in preparation for
vim keybindings.
2024-05-23 15:27:37 -07:00
William Casarin 8663851e7e input: handle raw events 2024-05-23 15:27:37 -07:00
kernelkind adc1d25948 macos_key_storage: runner ignore tests
Signed-off-by: kernelkind <kernelkind@gmail.com>
2024-05-23 16:07:58 -04:00
kernelkind 0c88c63460 Conditionally compile MacOS key storage code
Signed-off-by: kernelkind <kernelkind@gmail.com>
2024-05-23 16:07:38 -04:00
William Casarin cf2a832a5e input: switch to scanning over raw input events
Calling key_pressed invokes a filter over the entire event list every
time, this is much more efficient, which is important when we are
handling many key events.
2024-05-23 11:16:50 -07:00
William Casarin 3a891a982c input: process input once
Instead of calling ctx.input multiple times, let's do it once. We are
going to do a lot more stuff in here, such as vim key bindings
2024-05-23 11:16:50 -07:00
William Casarin 93b7af1a4e perf: fix continuous repaint
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-23 11:16:50 -07:00
William Casarin c30fc44df0 cleanup: remove old viewport code 2024-05-23 11:16:50 -07:00
William Casarin af92e326f6 deps: using tracing instead of log
also update some other deps

Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-23 11:16:43 -07:00
kernelkind 9fad35485a Add MacOS key storage
Signed-off-by: kernelkind <kernelkind@gmail.com>
2024-05-21 19:50:05 -04:00
William Casarin 7e02c7f745 fonts: always use base fonts for all families
We should always fallback if we can't find a glyph in a particular font

Fixes: https://github.com/damus-io/notedeck/issues/78
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-20 12:19:48 -07:00
William Casarin 4fc6e225ca don't bump timeline when adding notes
This is quite different than Damus iOS. The timeline will continually
add new items without bumping scroll position, thanks to
egui-virtual-list's `items_inserted_at_start` function.

Closes: https://github.com/damus-io/notedeck/issues/38
Fixes: https://github.com/damus-io/notedeck/issues/59
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-16 10:26:36 -07:00
William Casarin 0e0e5d0eaa fix clippy issues
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-15 20:53:17 -07:00
William Casarin 0d240c16a5 simplify tab underline calculation
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-15 18:01:48 -07:00
William Casarin 95c526f453 mobile: add lots of top padding on mobile
and remove top panel

Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-15 18:01:28 -07:00