[op-19850] very long loading times for project timeline widget - #24616
Open
bsatarnejad wants to merge 1 commit into
Open
[op-19850] very long loading times for project timeline widget#24616bsatarnejad wants to merge 1 commit into
bsatarnejad wants to merge 1 commit into
Conversation
…InitialDrawComplete callback
Contributor
There was a problem hiding this comment.
Pull request overview
This PR addresses long loading times in the project timeline widget by removing the previous RxJS-based “wait for no changed events for 1s” strategy (which could be perpetually reset by vis-timeline resize checks) and instead revealing the widget right after vis-timeline’s initial draw completes.
Changes:
- Switches the loading reveal trigger to
onInitialDrawComplete, callingrevealTimeline()after the first render. - Keeps
showCurrentTimeand clustering disabled during the initial draw, enabling them only after reveal. - Removes obsolete RxJS subjects/operators and teardown related to the previous debounce-based readiness detection, and adds a unit test for
revealTimeline.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| frontend/src/app/shared/components/project-timeline-graph/project-timeline-graph.component.ts | Replaces debounce-based “ready” detection with onInitialDrawComplete, and simplifies teardown. |
| frontend/src/app/shared/components/project-timeline-graph/project-timeline-graph.component.spec.ts | Adds unit coverage ensuring revealTimeline() enables options and marks the component as ready. |
|
Warning Flaky specs
🤖 Ask Copilot to investigateCopy the prompt below into a new comment on this PR to delegate the investigation to GitHub Copilot. It will look into the flakiness and open a separate pull request with you as reviewer. |
bsatarnejad
marked this pull request as ready for review
August 5, 2026 14:25
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ticket
https://community.openproject.org/wp/OP-19850
What are you trying to accomplish?
The widget previously waited until no
changedevent had been emitted for one second. Since vis-timeline performs periodic resize checks, the debounce could restart repeatedly and leave the loading skeleton visible after the timeline had already finished rendering.What approach did you choose and why?
onInitialDrawCompleteto reveal the timeline after its initial render.