-
Notifications
You must be signed in to change notification settings - Fork 51
Fix AgendaSkeleton displaying on every event reload #1390
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
Fix AgendaSkeleton displaying on every event reload #1390
Conversation
Co-authored-by: victor-enogwe <[email protected]>
Co-authored-by: victor-enogwe <[email protected]>
Co-authored-by: victor-enogwe <[email protected]>
|
@copilot the LoadingProgressLine should appear within and at the top of the mainGrid not at the top of the document |
Co-authored-by: victor-enogwe <[email protected]>
|
@copilot update the LoadingProgressLine component to show at the top of "ID_GRID_EVENT_TIMED" - "timedEvents" div |
…div) Co-authored-by: victor-enogwe <[email protected]>
Updated in commit 15474ac. The LoadingProgressLine now appears at the top of the ID_GRID_EVENTS_TIMED div (timedEvents section) instead of inside the mainGrid. The loading state logic has been moved to the Agenda component. |
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.
Pull request overview
This PR addresses an issue where the AgendaSkeleton was displayed on every event reload, obstructing the user's view of the agenda. The solution introduces a hasLoadedOnce tracking mechanism and a new LoadingProgressLine component to provide non-obstructive loading feedback after the initial load.
Key Changes:
- Introduced LoadingProgressLine component as a visual indicator for subsequent reloads
- Added
hasLoadedOnceref tracking in both Agenda and TimedAgendaEvents components to distinguish first load from subsequent reloads - Modified skeleton display logic to only show AgendaSkeleton on first load when
!hasLoadedOnce.current
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
| LoadingProgressLine/LoadingProgressLine.tsx | New component for showing non-obstructive loading indicator on subsequent reloads |
| LoadingProgressLine/LoadingProgressLine.test.tsx | Basic tests for the new LoadingProgressLine component |
| TimedAgendaEvents.tsx | Added hasLoadedOnce ref to control when AgendaSkeleton is displayed |
| Agenda.tsx | Added hasLoadedOnce ref, integrated LoadingProgressLine rendering, and imported selectIsDayEventsProcessing selector |
| Agenda.test.tsx | Added test attempting to verify progress line behavior on subsequent loads |
| index.css | Added CSS animation keyframes for the progress line sliding effect |
packages/web/src/views/Day/components/Agenda/LoadingProgressLine/LoadingProgressLine.tsx
Show resolved
Hide resolved
packages/web/src/views/Day/components/Agenda/LoadingProgressLine/LoadingProgressLine.tsx
Show resolved
Hide resolved
packages/web/src/views/Day/components/Agenda/LoadingProgressLine/LoadingProgressLine.tsx
Show resolved
Hide resolved
packages/web/src/views/Day/components/Agenda/LoadingProgressLine/LoadingProgressLine.test.tsx
Show resolved
Hide resolved
packages/web/src/views/Day/components/Agenda/LoadingProgressLine/LoadingProgressLine.tsx
Show resolved
Hide resolved
packages/web/src/views/Day/components/Agenda/Events/TimedAgendaEvent/TimedAgendaEvents.tsx
Outdated
Show resolved
Hide resolved
refactor(agenda): integrate useHasLoadedOnce in Agenda and TimedAgendaEvents components
AgendaSkeleton was rendering on every event change/reload, obstructing the user's view. It should only appear on initial page load.
Changes
New LoadingProgressLine component
Agenda component
hasLoadedOnceref to track first load completionhasLoadedOnce.current && isLoadingTimedAgendaEvents component
hasLoadedOnceref for AgendaSkeleton display logic!hasLoadedOnce.currentUsers now see their events during reloads instead of a blocking skeleton overlay. The progress line appears at the top of the timedEvents section (ID_GRID_EVENTS_TIMED) and remains visible even when scrolling within the section.
Original prompt
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.