Commit Graph

226 Commits

Author SHA1 Message Date
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
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
William Casarin
dbc56ac098 mobile: simplify is_mobile
we don't need context anymore

Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-15 18:01:04 -07:00
William Casarin
12a6c64778 move add_space to its correct location
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-15 17:39:42 -07:00
William Casarin
9e8f7a2e5c ui: integrate egui-tabs for notes & replies selector
demo: https://cdn.jb55.com/s/notedeck-tabs.mp4

Fixes: https://github.com/damus-io/notedeck/issues/47
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-15 17:28:01 -07:00
William Casarin
029896627c ui: add feathering-resistant hline separator fn
"pixel-aligned" Separators get feathered into a blurry mess. This seems
to help.

Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-15 15:26:19 -07:00
kernelkind
95f8623c41 migrate AccountManagementView to enostr Keypair
Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-14 14:39:05 -07:00
kernelkind
bb25fd4ae1 AccountSelectionWidget
Will be useful for selecting an account for the 'Add Column' view

Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-13 10:50:42 -07:00
kernelkind
e9c3596067 AccountManagementView
View used to add and remove accounts from the app

Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-13 10:50:42 -07:00
kernelkind
93800e0d04 Add SimpleProfilePreview
Preview that only contains the pfp, display name, and username

Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-13 10:50:42 -07:00
kernelkind
59818edd83 remove nostr-sdk
Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-08 14:14:37 -07:00
kernelkind
aacc41e4c2 Add flag to emulate mobile during preview
Since the is_mobile check was moved to compile-time instead of runtime
in 0a6a441041, we need a way to override
the check when previewing using the 'mobile' flag.

Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-04 11:32:34 -05:00
William Casarin
f9d6161500 move account_login_view to ui submodule
trying to keep all views and widgets in here
2024-05-04 11:32:34 -05:00
William Casarin
5b7b47aaf5 style: less bubbly 2024-05-04 11:32:34 -05:00
kernelkind
baaa7cc05d move login logic from promise to async fns
Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-02 18:51:28 +02:00
kernelkind
486a8c84e0 login: Add key loading & error to mobile
Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-02 18:51:28 +02:00
kernelkind
b8229fb9a9 Move login business logic to LoginManager
Signed-off-by: kernelkind <kernelkind@gmail.com>
Signed-off-by: William Casarin <jb55@jb55.com>
2024-05-02 18:51:28 +02:00
William Casarin
5396085d96 textmode: adjust name sizing so it doesn't bump the column 2024-05-02 18:51:05 +02:00
William Casarin
f3f8d4ecb4 textmode: no previews in textmore for now
Ideally these would just be angle bracket quotes or something. would be
cool.
2024-05-02 18:50:25 +02:00
William Casarin
d9f1582ee7 since filter optimization
This is an optimization that allows us to modify our network filter to
include since-information based off of our local relay. The idea is to
look at the latest note in a given view, and add that to the since
filter for the remote query.

Fixes: https://github.com/damus-io/notedeck/issues/36
Signed-off-by: William Casarin <jb55@jb55.com>
2024-04-29 14:06:20 -07:00
William Casarin
632e5b89d1 mobile: don't add hover on mobile
Signed-off-by: William Casarin <jb55@jb55.com>
2024-04-29 12:48:26 -07:00
William Casarin
a173e38141 slightly larger pfpfs
Signed-off-by: William Casarin <jb55@jb55.com>
2024-04-29 12:47:29 -07:00
William Casarin
0a6a441041 simplify is_mobile check
Just base it on the current compile target

Signed-off-by: William Casarin <jb55@jb55.com>
2024-04-29 11:00:56 -07:00
William Casarin
28e2e7edd5 Merge remote-tracking branch 'github/virtual-list' 2024-04-28 17:55:29 -07:00
William Casarin
26128c3456 use egui_virtual_list for rendering
absolutely insane performance increase

Fixes: https://github.com/damus-io/notedeck/issues/32
Suggested-by: @lucasmerlin
Signed-off-by: William Casarin <jb55@jb55.com>
2024-04-28 11:03:47 -07:00
William Casarin
69054d71ca nip10: show initial reply information on notes
Using the newly merged nip10 code, we can show replies on notes!

This is not final, and it's actually different than how we do it in
Damus iOS. Not sure if I like it yet. We will likely have to put pubkey
information back in somewhere soon.

Signed-off-by: William Casarin <jb55@jb55.com>
2024-04-27 01:58:35 -07:00
William Casarin
f12ccc69a4 add hover to profile map demo
Signed-off-by: William Casarin <jb55@jb55.com>
2024-04-24 12:49:06 -07:00