William Casarin
724042b700
allow missing profiles in account switcher
...
Fixes: https://github.com/damus-io/notedeck/issues/119
Signed-off-by: William Casarin <jb55@jb55.com >
2024-07-02 10:34:42 -07:00
William Casarin
e9da25266a
enable nip10 replies
...
you can now reply to notes
Signed-off-by: William Casarin <jb55@jb55.com >
2024-07-01 19:22:43 -07:00
William Casarin
b31bd2470b
keys: actually use the keystore
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-07-01 11:13:22 -07:00
William Casarin
4c490e1436
Merge 'impl linux credential storage' #115
...
From PR description:
See the test_basic() test in linux_key_storage.rs. I ran it successfully
on my MacOS machine and a linux VM. The BasicFileStorage impl just
stores each Keypair as a SerializableKeypair json object with the file
name as the public key hex in ~/.notedeck_credentials. The
SerializableKeypair uses the nip49 EncryptedSecretKey, but we just use
an empty string as the password for now.
The BasicFileStorage impl works in MacOS, but it only conditionally
compiles to linux for simplicity.
pub enum KeyStorageResponse<R> {
Waiting,
ReceivedResult(Result<R, KeyStorageError>),
}
This is used as a response so that it's possible for the storage impl to
be async, since secret_service is async. It seems that secret_service
would allow for a more robust linux key storage impl so I went ahead and
made the API compatible with an async impl.
* kernelkind (1):
impl linux credential storage
2024-07-01 10:49:15 -07:00
William Casarin
6f6d5f05af
always have some default timeline
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-07-01 10:35:47 -07:00
William Casarin
69a8438f33
cleanup some dead code
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-07-01 07:31:43 -07:00
William Casarin
3fc73bb601
post: full available width
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-07-01 07:31:29 -07:00
William Casarin
b0881d4282
add my pubkey to the timeline query for testing
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-07-01 07:31:12 -07:00
William Casarin
2d10b20ae2
allow multiple invocations of --sec
...
for multi-account
Signed-off-by: William Casarin <jb55@jb55.com >
2024-07-01 07:02:22 -07:00
William Casarin
b7366351b6
drafts: clear post after posting
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-07-01 06:49:12 -07:00
William Casarin
a04df88ff6
initial note posting
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-07-01 06:49:12 -07:00
William Casarin
8dc829791e
cli: add --sec argument to quickly add an account
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-07-01 06:41:32 -07:00
William Casarin
3ed09dadf0
damus: make relay pool public
...
we will be using this for our post view
Signed-off-by: William Casarin <jb55@jb55.com >
2024-07-01 06:39:39 -07:00
William Casarin
1810515ad2
account_manager: don't add the same pubkey more than once
...
If we are passing keys on the command line, let's make sure
we aren't adding duplicates when we integrate the keystore.
Signed-off-by: William Casarin <jb55@jb55.com >
2024-07-01 06:39:16 -07:00
William Casarin
307b8af8f1
enostr: rename Event to Note
...
we will likely replace Note with nostrdb::Note in the future,
this just helps with that transition
Signed-off-by: William Casarin <jb55@jb55.com >
2024-07-01 06:38:08 -07:00
William Casarin
a16d5b3a05
env: allow private things like secret keys
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-07-01 06:33:22 -07:00
William Casarin
26c4d90be3
initial postbox for testing
...
not sure if we want to put this here yet, but it matches the design
and will be useful for testing
Fixes: https://github.com/damus-io/notedeck/issues/110
Suggested-by: Rob
2024-06-25 14:08:56 -05:00
William Casarin
a6856867a9
Merge remote-tracking branch 'pr/107'
2024-06-25 13:20:56 -05:00
William Casarin
8ef6534981
fixed_window: fix clippy warning
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-24 17:12:24 -07:00
William Casarin
1228f83e50
refactor: move fixed_window to ui
...
This is a ui module
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-24 17:11:01 -07:00
William Casarin
b14a2bf254
popup: simplify borrow
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-24 17:09:07 -07:00
William Casarin
a66b467cb4
hide navigation title on global nav
...
Fixes: https://github.com/damus-io/notedeck/issues/109
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-24 16:47:35 -07:00
William Casarin
f8c8e48c26
postview: add vertical scroll
...
Suggested-by: kernelkind <kernelkind@gmail.com >
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-24 16:19:06 -07:00
William Casarin
a9a07b3805
refactor: use map instead of explicit if let
...
We also use last instead of first, because the last route should be the
active one.
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-24 14:55:43 -07:00
William Casarin
677c217ecd
popup: increase fixed window margin
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-24 14:55:22 -07:00
William Casarin
b7188bac25
fix some clippy warnings
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-21 14:12:07 -07:00
William Casarin
0b3d6f7e37
initial post reply view
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-21 14:01:40 -07:00
William Casarin
ac0821db79
postbox: add focus shadow from figma
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-21 10:14:34 -07:00
William Casarin
86b0583221
use unique id for post/reply view
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-21 09:58:47 -07:00
William Casarin
b0c5d2a2c5
postbox: add focused state
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-21 09:01:14 -07:00
William Casarin
4c1936ff70
change selection color to purple
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-21 08:56:44 -07:00
William Casarin
18d5d95ef9
fix postbox design
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-20 13:44:35 -07:00
William Casarin
bb6c68e05c
clippy postbox cleanups
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-20 13:05:57 -07:00
William Casarin
395ff57edf
add vertical separators between timelines
...
Fixes: https://github.com/damus-io/notedeck/issues/52
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-20 13:02:18 -07:00
William Casarin
1458498131
initial post box view
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-17 16:21:46 -07:00
William Casarin
577aa76ac7
add --light lightmode flag to previews and notedeck
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-14 11:12:16 -07:00
William Casarin
d064987e45
fix lock
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-14 10:18:18 -07:00
William Casarin
fa50b68cb3
darker quote reposts for mobile
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-14 10:18:06 -07:00
William Casarin
7f37f1e9d3
perf: don't clone bytes via a more specialized function
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-13 12:49:22 -07:00
William Casarin
d17b5e0703
Add forward navigation animation
...
Also fix a few nav clipping bugs
From egui-nav:
William Casarin (5):
add forward nav support
fix body overlapping header
fix transition clipping when in a smaller container
fix forward nav clipping in small containers
fix background layer having the wrong UI id
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-13 11:59:08 -07:00
William Casarin
c4e0c710c9
actionbar: remove border on reply button, add expand animation
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-13 09:36:53 -07:00
William Casarin
db1642bc31
remove useless struct
...
we can just use tuples for compound ids
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-13 09:10:31 -07:00
William Casarin
eb294bb4d3
fix light borders for quote reposts
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-12 10:46:09 -07:00
William Casarin
b1a7547580
lighter gray for inline previews in white mode
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-11 18:48:05 -07:00
William Casarin
5100070b24
fix colors again
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-11 18:44:40 -07:00
William Casarin
24d400d5aa
small inline preview pfps
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-11 17:50:15 -07:00
William Casarin
0dd33c90e7
initial navigation
2024-06-11 17:50:09 -07:00
William Casarin
bff0f3f628
fix inline note preview colors
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-11 16:10:18 -07:00
William Casarin
afb375356b
add test queries for elsat
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-10 07:58:39 -07:00
William Casarin
a47f0ba1b2
args: allow filter files and raw filters on cli
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-10 07:52:51 -07:00
William Casarin
c5634dac91
set tooltip delay to 100ms
...
so that we don't accidently pop it up all the time
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-10 06:11:00 -07:00
William Casarin
d576082297
reset virtual list if notes are spliced into timeline
...
Calling egui_virtual_list's `items_inserted_at_start` is incorrect if we
insert notes inbetween other notes in the timeline. To prevent our list
getting confused, let's handle this case explicitly by calling 'reset'
when we splice notes in.
Ideally we would update egui_virtual_list to handle spliced-in items,
but we will leave that to a future update.
2024-06-09 08:53:10 -07:00
William Casarin
0eec8c8c2b
dont since-optimize when we don't have enough notes
...
If our limit says we're ok with many more notes than we have, then don't
since-optimize, otherwise we may be missing notes. This results in a
Changelog-Changed: Don't since-optimize if we don't have enough notes
Signed-off-by: William Casarin <jb55@jb55.com >
2024-05-31 09:25:54 +02:00
William Casarin
2d9f45603c
remote: use default_remote_limit instead of hardcoding
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-05-31 09:24:52 +02:00
William Casarin
ab08e678a9
filter: add default limit
...
This is just an opinionated default limit if we ever need it (we will)
Signed-off-by: William Casarin <jb55@jb55.com >
2024-05-31 09:24:52 +02:00
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
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
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