Just take an egui::Context instead of an eframe::CreationContext.
This should make it easier to test the app via egui::Context::default();
Signed-off-by: William Casarin <jb55@jb55.com>
Before we were hardcoding the basepath with dirs, which isn't that
useful for testing, previews, or for android. Let's fix that.
This also moves the db and cache directories into our root DataPaths.
This is a breaking change, we don't have a migration step. sorry.
Signed-off-by: William Casarin <jb55@jb55.com>
Pick a few fixes from #380
Link: https://github.com/damus-io/notedeck/pull/380
Ken Sedgwick (5):
build: Cargo.lock updates to mitigate num_enum_derive problem
add .rustfmt.toml to specify edition
Fix parsing of subscription id for RelayMessage::Event
Skip adding relays that are already in the pool
canonicalize relay urls to avoid false duplicates
Noticing a small delay when clicking on macos with large nostrdb, still
need to investigate
kernelkind (14):
init profile routing
add profile preview and implement scrolling
profile unsub
click on thread pfp
consolidate timelineTab ui to TimelineTabView
generify Threads
profile struct
integrate profile view caching
proper timelineTabs
revert timeline no_scroll stuff
fix unnecessary copy every frame
reword comments and logs thread -> NotesHolder
rename TimelineResponse -> ColumnNoteResponse
NoteActionResponse for note preview pfp clicking
William Casarin (2):
update to use upstream egui-nav branch
kernelkind (13):
basic add column impl
remote sub new timeline
add more add column options
animate add column options
push column picker immediately to new column
move get first router to Columns
tmp use kernelkind egui-nav
title bar
unsubscribe timeline on deletion
fix deck author bug & rename titles
tmp: kernelkind/egui-nav
updated back arrow
tmp: kernelkind/egui-nav
A few merge conflicts resolved, and changes the image to svg
kernelkind (7):
initial compose note view
change side panel width to 64.0
Add AnimationHelper
update sidebar to match new design
remove app from sidebar
remove profile_preview_controller
add logo to side panel
Closes: https://github.com/damus-io/notedeck/pull/327
Ken Sedgwick (6):
debug: implemented fmt::Debug for Pubkey
debug: implemented fmt::Debug for NoteId
hitbox: more naming cleanup
hitbox: extend the hitbox to the full width of the container
hitbox: handle hits on quoted notes correctly
hitbox: cache note size instead of rect
Closes: https://github.com/damus-io/notedeck/pull/319
This merges kernel's note context menu with a bunch of refactorings on
top, closing #328 and #318
William Casarin (7):
refactor: remove processs_note_selection
refactor: make options_button a NoteOptions
note: switch to muted menu_options_button color
context: move note context button to its own file
context: fix hitbox, float on far right
context: set cursor icon on hover
kernelkind (3):
Add 'more options' to each note
can left click note more options button
process 'more options' for previews
This updates the context menu to "float" instead of using the layout
engine. This is so that we don't take up an unnecessary amount of space
when we increase the hitbox height.
Signed-off-by: William Casarin <jb55@jb55.com>
This adds a note hitbox for opening threads. It doesn't seem to work on
note previews so we'll need to work on that next.
Ken Sedgwick (1):
add note underbutton to detect clicks and open thread
William Casarin (3):
notes: rename "underbutt" to "hitbox"
remove thread button
Changelog-Added: Added note hitboxes for opening threads
Changelog-Removed: Remove temporary thread open button
Merge kernel's changes for displaying kind6 reposts. We still need to
update the timeline code to fetch and include these in the queries.
kernelkind (2):
kind 6 repost impl
add suggested changes
Now that we've refactored everything, column routing is trivial. This
adds account management and relay nav to the sidebar.
https://cdn.jb55.com/s/notedeck-router.mp4
William Casarin (5):
accounts: use column nav for account management
cleanup: remove account switcher widget
nav: fix accounts nav animations
ui: hook up relay management view
also make nav go backward when clicking the account switch button if we
already are navigating to accounts
Signed-off-by: William Casarin <jb55@jb55.com>
Another massive refactor to change the way routing works. Now any
column can route anywhere.
Also things are generally just much better and more modular via the
new struct split borrowing technique.
I didn't even try to split this into smaller commits for my sanity.
Signed-off-by: William Casarin <jb55@jb55.com>
is_mobile doesn't really make sense for android tablets. We were
overloading this variable to mean "is_narrow". What we really want is
is_oled for mobile devices and is_narrow for if its phone-like.
Signed-off-by: William Casarin <jb55@jb55.com>
This adds blank space, but it will be nice if we can improve this
by either fading in or having some shimmer effect.
Signed-off-by: William Casarin <jb55@jb55.com>
Thanks to Ken Sedgwick for getting this over the line by generalizing
our images cache!
Ken Sedgwick (2):
build: updated num_enum to get around build problem
Extend ImageCache to handle content images
William Casarin (4):
update image to 0.25
initial image support
use slightly better carousel id
Fixes: https://github.com/damus-io/notedeck/issues/249
Fixes: https://github.com/damus-io/notedeck/issues/148
William Casarin (15):
cli: add --pub support for watchonly accounts
column: extract into_timeline logic into ColumnKind
contacts: fix hashtags in filter_from_tags
docs: fix comment in the wrong spot
fetch contact lists
filter: create filter from contact list
nostrdb: bump version
perf: coordinate unknown id lookups
refactor: move args to its own file
tidy: move ColumnKind to its own file
tidy: move parse_args to Args::parse
tidy: organize bools
tidy: remove some crate:: namespaces
timeline: initial contact queries
Fixes: https://github.com/damus-io/notedeck/issues/236
Fixes: https://github.com/damus-io/notedeck/issues/6
This is a huge improvement over what it was before. Now all unknown id
lookups are debounced and happen through a central coordinator. This
ensures there is no duplication between timelines.
Fixes: https://github.com/damus-io/notedeck/issues/279
Signed-off-by: William Casarin <jb55@jb55.com>
split hashtag follows into a separate Filter, combining authors and
hashtags doesn't work, because this is considered an AND filter, where
we want an OR.
We may want an option to split hashtags follows into a separate column.
Signed-off-by: William Casarin <jb55@jb55.com>
This implements initial local contact queries. For testing you can
create contact list columns via:
Examples
--------
Make a contacts column from a specific npub:
$ notedeck --column contacts:npub...
Use the current user's contacts:
$ notedeck --column contacts --pub npub...
We also introduce a new ColumnKind enum which is used to describe the
column type.
Signed-off-by: William Casarin <jb55@jb55.com>
This adds a method for creating filters from contact lists. We will be
using this for creating follow timelines.
Signed-off-by: William Casarin <jb55@jb55.com>
Add a selectable text option to various note views. We don't want
selection events to interfere with back drag, so this is the first step
toward ensure back drag works.
Vertical scrollviews also interfere with back drag, so we'll still need
a way to compose gestures. It's not clear if this is currently possibly
with egui (union of responses somehow maybe?)
Signed-off-by: William Casarin <jb55@jb55.com>