• 
      

    Update the diff file index when diffs are expanded/collapsed.

    Review Request #13235 — Created Aug. 23, 2023 and submitted — Latest diff uploaded

    Information

    Review Board
    release-6.x

    Reviewers

    The diff file index in the Unified Banner only updated extents when new
    diffs were added, when going into docked mode, or on window resize. If a
    diff was expanded or collapsed, the diff file index didn't know about
    this, and could present the wrong entries for the current view.

    We now use a ResizeObserver to track resizes to all the diffs,
    updating the extents whenever a resize is detected.

    To avoid duplicate calls to updateLayout() where this is computed
    (which could occur due to a window resize alone, or a window resize
    along with a ResizeObserver event), we now call a
    queueUpdateLayout() function, which will use requestAnimationFrame()
    to schedule updateLayout(). This, along with storing a request ID,
    prevents us from doing any unnecessary work that could lead to sluggish
    resizes.

    Unit tests pass.

    Tested expanding and collapsing diffs, resizing the window, and manually
    altering the DOM, verifying that layout updates were always called and
    the diff file index always showed the correct result.

    Commits

    Files