-
Notifications
You must be signed in to change notification settings - Fork 45
Add calendar app with responsive month and week layouts #1165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
crates/notedeck_calendar/src/lib.rs
Outdated
|
||
let mut events = Vec::new(); | ||
for result in results { | ||
if let Some(event) = parse_calendar_event(result) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this doesn't need to be rebuilt on an interval. ideally you would fully build it like this when first opened and then insert the items from ndb::poll_for_notes in self.events when they appear
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should be fixed in 7d6d63f
crates/notedeck_calendar/src/lib.rs
Outdated
} | ||
} | ||
|
||
events.sort_by_key(|ev| (ev.start_naive(), ev.created_at)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i believe ndb::query already sorts by creation time
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
does the following response pass your laugh test:
I checked the feedback about removing the events.sort_by_key(|ev| (ev.start_naive(), ev.created_at)). ndb::query returns rows ordered by creation time,
but for the UI we need them ordered by the event’s start date first (all views assume that). The current sort key deliberately uses start_naive() so all-
day events and timed events fall into their correct calendar slot, with created_at only acting as a tie-breaker. If we dropped the sort and relied on the
database ordering, the list would be creation-time–sorted and events could show up on the wrong day order in the grids. So we should keep the explicit sort;
it’s serving a different purpose than ndb’s default.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Critical:
- on android, month view
has incredibly poor (single digit fps) performance. Also, the UI is broken- on desktop it's noticible but definitely not as bad in my experience
- the other views seem fine performance wise
- on first open on android nothing loaded. after force closing the app and reopening it, I saw events
Necessary:
- lib is massive, should be broken up. it's hard to review
- should include the drag ids of the scroll areas in the AppResponse so dragging the nav drawer will work in all scroll areas
Nit picks (in my opinion):
- doesn't use translation macros
- would be cool to use Nav for clicking into events, instead of the buttons at the top
- many UI elements shift position when dragging the nav drawer
- the nav drawer icon looks strange, and it's sized differently than the others


commit addressing part I of @kernelkind feedback - e619ea1 part II - 6f73a78 part III (updated with CI fix) - 8e4e454 |
4b29a65
to
8e4e454
Compare
|
@kernelkind added create public calendar event in 5a7c23f. You can create either time-based, or day-based events. I confirmed these publish to nostr using lumilumi.app. ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
-read public calendar UI
-month view
-week view
-day view
-UI to navigate
-choose your own time zone
-calendar icon in sidebar
not yet done
-rsvp capability
-display, beautify who is attending via PFP
-beautified event view
-creat event