Skip to content

NXT-19990: Fixed long press scroll between multiple VirtualLists - #432

Merged
bongsok merged 3 commits into
release/1.11.x.developfrom
feature/NXT-19990-1.11.x
Sep 15, 2026
Merged

bongsok merged 3 commits into
release/1.11.x.developfrom
feature/NXT-19990-1.11.x

Conversation

@vJIYEv

@vJIYEv vJIYEv commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Checklist

  • I have read and understand the contribution guide
  • A CHANGELOG entry is included
  • At least one test case is included for this feature or bug fix
  • I have run automated testing and it is passed
  • Documentation was added or is not needed
  • This is an API breaking change

Issue Resolved / Feature Added

When holding down a down key (long press) to move between multiple horizontally-arranged VirtualLists,
focus stopped and did not continue to the last one.

Resolution

In #361, isFirstEntryRepeat was defined to block the scroll when entered a VirtualList from outside with long press.

const isFirstEntryRepeat = repeat && !hasProcessedKeyDownRef.current;
if (isFirstEntryRepeat) {
    ev.preventDefault();
    ev.stopPropagation();
    resetAccelerator();
    return; 
}

Here, keyDown event handler is blocked if isFirstEntryRepeat is true, which means key was pressed before entering the VirtualList and there wasn't a new key press. this makes scroll can newly start in the VirtualList after new key press.

But in case of focus move between VirtualLists, not between Items in a VirtualList, keyDown handler is needed to keep focus moving between the VirtualLists.
The condition of isFirstEntryRepeat should be detect the focus is moving within the VirtualList or not.
So I added isMovingWithinList condition.

Additionally, I added isMovingWithinList contidion in isOutdatedIndex to prevent a possible issue.

Additional Considerations

Links

NXT-19990

Comments

Enact-DCO-1.0-Signed-off-by: Jiye Kim (jiye.kim@lge.com)

Enact-DCO-1.0-Signed-off-by: Jiye Kim (jiye.kim@lge.com)
@codecov

codecov Bot commented Sep 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (release/1.11.x.develop@b1623d1). Learn more about missing BASE report.

Additional details and impacted files
@@                    Coverage Diff                    @@
##             release/1.11.x.develop     #432   +/-   ##
=========================================================
  Coverage                          ?   82.67%           
=========================================================
  Files                             ?      153           
  Lines                             ?     7619           
  Branches                          ?     2316           
=========================================================
  Hits                              ?     6299           
  Misses                            ?     1026           
  Partials                          ?      294           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@bongsok bongsok left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@bongsok
bongsok merged commit c85dc56 into release/1.11.x.develop Sep 15, 2026
6 checks passed
@bongsok
bongsok deleted the feature/NXT-19990-1.11.x branch September 15, 2026 23:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants