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
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
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
William Casarin
bc5ff4858f
direnv: make args explicit so its easy to change
...
for direnv enjoyers
Signed-off-by: William Casarin <jb55@jb55.com >
2024-05-15 09:41:19 -07:00
William Casarin
c7a1ca534d
Merge commit 'refs/pull/github/53'
...
35adae86f9 ("nix: keep lazy for use_android=false")
2024-05-15 09:40:12 -07:00
William Casarin
e1f61076f7
switch to rustls-tls-native-roots
...
This fixes our android build which doesn't like openssl
Fixes: https://github.com/damus-io/notedeck/issues/54
Signed-off-by: William Casarin <jb55@jb55.com >
2024-05-15 09:16:20 -07:00
William Casarin
3e1acfa9cf
update version in comment because I still use this on my laptop
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-05-04 10:26:26 -07:00
William Casarin
30e9aa5357
nix: make android emulator optional
...
Tony was having issues on aarch64-linux
Changelog-Fixed: Fix nix build on aarch64-linux
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
William Casarin
029bbf0e77
nix: add openssl dep for reqwest
2024-05-02 19:31:20 +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
f4d496012b
log relay subscriptions
...
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
ca58b831b6
queries: set reasonable initial query sizes
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-29 11:01:28 -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
afb0e5fe65
github: remove pages workflow
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-27 01:53:08 -07:00
William Casarin
d0cfeee79f
readme: make it clear that nix is optional for non-android dev
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-26 11:11:06 -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
William Casarin
7ec31d0eae
fun large profile grid preview
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-24 12:49:06 -07:00
William Casarin
e8168b0004
ui: add profile picture hover animation
...
I wanted to practice doing animation in egui, so here is a simple
profile picture hover affect. When you mouse over a profile picture, it
get slightly bigger.
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-24 12:49:06 -07:00
William Casarin
61deeb03e1
note: support nprofile mentions
...
realized we were missing this bit
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-24 12:49:06 -07:00
William Casarin
32923abfc2
perf: profiling note content rendering
...
Made some small speed improvements
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-22 08:58:30 -07:00
William Casarin
c944cac810
style: realtime hover interactions
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-21 17:57:32 -07:00
William Casarin
1d44b08f13
ui: make pixel sizes correct, use more of the figma
...
I noticed the pixel sizes were off which made it harder to match the
pixel dimensions of rob's figma designs. This restores the pixel size
and adjust the font sizes so that things look somewhat ok with the
default pixel settings.
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-21 17:45:09 -07:00
William Casarin
24633b84bb
ui: introduce profile picture widget
...
We are starting to use profile pics in different places, let's make it a
widget. We'll also probably need to have adjustable sizes and such soon.
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-21 16:49:49 -07:00
William Casarin
863ccd866b
render_pfp: only depend on imgcache
...
This will allow us to build previews a bit nicer
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-21 16:36:14 -07:00
William Casarin
ee94f27987
profile: add about and username to profile previews
...
Also adjust colors to match design
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-21 16:28:12 -07:00
William Casarin
893fd582dc
profiles: introduce DisplayNames
...
This is exactly the same as the DisplayName enum in Damus iOS. Due to
the various inconsistencies in `name` and `display_name` between
clients, we have to generalize DisplayName into two variants: one name
or two names.
If we have two names, we treat it in the standard way of display_name is
the real name, and `name` is the username.
If only one is set, then it is considered both the username and "real name".
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-21 15:55:47 -07:00
William Casarin
2edba9942c
ui: add banners to profile previews
...
profile previews still need lots of work, but this was a challenge to
get an aspectRatio: fill mechanism for images which the banner takes
advantage of.
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-21 15:03:05 -07:00
William Casarin
2f6f92e62c
style: set 0 duration tooltip delay
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-21 15:03:05 -07:00
William Casarin
7f61d9aeb7
images: add aspect_fill
...
This is similar to SwiftUI's .aspectRatio(contentMode: .fill) so that
we can get a filling banner image
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-21 15:03:05 -07:00
William Casarin
55111b8b25
test: update test profile with a banner
...
I need this to test profile preview banners
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-21 15:03:05 -07:00
William Casarin
a408c96d91
ui: remove some old note ui comments
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-21 15:03:05 -07:00
William Casarin
54bf2a0767
previews: remove central panel frame
...
This was adding padding we don't want
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-21 13:42:49 -07:00
William Casarin
bf7775467d
readme: document previews
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-19 22:16:54 -07:00
William Casarin
05fe164a49
ui: add initial Profile hover previews
...
The idea with these is that on notedeck you can just hover your cursor
over a profile link to see the profile. I just have a stub for now, but
full design coming soon after.
Also simplify the preview system even further with a macro. In the
future I imagine we can grep every preview in the codebase, and then
include this as a string inside this macro. This is some kind of
template metaprogramming insanity but in theory it could work.
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-19 22:00:19 -07:00
William Casarin
2d566cc637
ui: move RelayView into ui module
...
Trying to keep all UI stuff in there
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-19 21:53:47 -07:00
William Casarin
51c25b88cc
timeline: use strips instead of panels
...
panels grow when their childs a larger than its container. strips do not
do this, which is better for timelines
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-19 19:55:02 -07:00
William Casarin
9642b9243d
a quick note about the View trait
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-19 17:38:47 -07:00
William Casarin
22e4b72729
check: remove duplicate and disable wasm checks
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-19 17:37:41 -07:00
William Casarin
73f54d1c4f
ci: disable wasm builds for now
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-19 14:32:51 -07:00
William Casarin
99ac578ebd
fix clippy warnings
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-19 14:30:08 -07:00
William Casarin
a71e8206fb
introduce View and Previews traits
...
In this commit we refactor the preview mechanism, and switch to
responsive views by default.
To create a preview, your view now has to implement the Preview trait.
This is very similar to SwiftUI's preview mechanism.
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-19 14:13:11 -07:00
William Casarin
ff5e5ed74a
make notedeck front and center
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-17 14:37:11 -07:00
William Casarin
6e939a414f
readme: show notedeck preview
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-17 14:33:19 -07:00
William Casarin
d247382219
ui: add frame around note previews
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-14 18:23:33 -07:00
William Casarin
a8185d9a75
note: don't allow nested note previews
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-14 17:36:05 -07:00
William Casarin
6f2aa56b9e
ids: find more unknown ids from inline notes
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-14 16:30:12 -07:00
William Casarin
402a1337f2
ui: switch to flags for note options
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-14 16:23:59 -07:00
William Casarin
e348950e7a
crates: add bitflags
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-14 16:23:36 -07:00
William Casarin
72b9b0dab9
ui: only inline preview kind1 notes for now
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-14 16:23:01 -07:00
William Casarin
dcd53beea8
remove minimum window size
...
This is preventing me from doing a single column layout on desktop
Cc: kernelkind
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-14 12:11:30 -07:00
William Casarin
3b9cd3f3c4
mobile: black panel bg color
...
for battery life
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-12 21:14:56 -07:00
William Casarin
0a9e7698c1
theme: update to correct colors based on figma design
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-12 21:00:48 -07:00
William Casarin
483e8e85d6
fix until filters
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-12 20:30:28 -07:00
William Casarin
2b20f73974
initial inline note previews
...
still needs a border and options to remove actionbar
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-12 18:58:36 -07:00
William Casarin
d4ccf7435f
get all missing ids from all timelines
...
before we were only fetching missing profiles from the first timeline,
update the logic to pull both missing authors and ids from all timelines
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-12 18:52:32 -07:00
William Casarin
5e45e4a2e5
ui: simplify note widget
...
pass just a note pointer to the note ui widget. We currently don't
support non-db notes but we can add support for that later.
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-12 16:49:18 -07:00
William Casarin
4e7d168d22
refactor: rename widgets to ui
...
consolidate ui related things like widgets into our ui module
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-12 16:16:19 -07:00
William Casarin
9b7c63c800
refactor: move note into its own widget
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-12 16:03:16 -07:00
William Casarin
91c5d453c4
profiling: update puffin version
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-12 16:03:00 -07:00
William Casarin
99b163da7e
textmode: fix coloring of abbreviated names
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-12 15:09:07 -07:00
William Casarin
3f26ba1af7
readme: add usage
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-11 15:03:30 -07:00
William Casarin
bfdd066654
fix warnings
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-11 15:00:58 -07:00
William Casarin
ef57ddd9ca
readme: make it clear that its for desktop
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-11 14:47:41 -07:00
William Casarin
8cfb021dab
add rustup just in case
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-11 14:35:02 -07:00
William Casarin
116ba27f3f
ircmode: tighten username
...
will probably have to change the design of this for mobile
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-11 13:36:29 -07:00
William Casarin
d0efb2ef55
we should just called this damus
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-04-11 11:41:28 -07:00
William Casarin
9e7111f8a7
Merge remote-tracking branch 'android/master'
2024-04-11 11:38:04 -07:00