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
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
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
kernelkind
6afb618089
reintroduce account management
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2024-06-23 20:04:00 -04: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
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
18d5d95ef9
fix postbox design
...
Signed-off-by: William Casarin <jb55@jb55.com >
2024-06-20 13:44:35 -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
kernelkind
98a61c0aa7
reintroduce account switcher
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2024-06-18 19:16:11 -04: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
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
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
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
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
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
kernelkind
df0377cb89
Pfp integration to side panel
...
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
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
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
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
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
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
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
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
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
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