Roadmaps: Speed up render time
Even though we're utilising VirtualList to render epic items in roadmap it still gets slow on large number of epics and the biggest culprit is the epic items' timeframe.
When we seek timeframes by scrolling horizontally, we add non-trivial complexity to our render cycle.
If we have N epic items and load up timeframes for upto 3 years, 12 * 3 timeframes are loaded if block size is months. Now, we'd on each scroll have to render 36 * N items. As this number increases, the more choppy the page becomes.
Proposed solution
Use two VirtualLists in tandem. One for vertical and another for horizontal.
Marginal gains
- Memoize functions like
timelineBarStyles(epic),timeframeString(epic), etc. - For tooltips, prefer
this.getTargetover:target="() => $refs.childEpicsCount"(also,() => $refs.expandCollapseInfo).
cc: @donaldcook
Edited by Rajat Jain