Skip to content

SCC-5375: MultiSelect performance#2001

Closed
KaseyW31 wants to merge 6 commits into
developmentfrom
SCC-5375/multiselect-performance
Closed

SCC-5375: MultiSelect performance#2001
KaseyW31 wants to merge 6 commits into
developmentfrom
SCC-5375/multiselect-performance

Conversation

@KaseyW31

@KaseyW31 KaseyW31 commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Fixes JIRA ticket SCC-5375

This PR does the following:

  • In the MultiSelect component, memoizes Checkboxes to prevent rerendering of all list items on single input
  • Adds callbacks in useMultiSelect

How has this been tested?

  • Local build of storybook - verify that only checkboxes that are selected/deselected are rerendered

Accessibility concerns or updates

Accessibility Checklist

  • Checked Storybook's "Accessibility" tab for color contrast and other issues.
  • The feature works with keyboard inputs including tabbing back and forward and pressing space, enter, arrow, and esc keys.
  • For hidden text or when aria-live is used, a screenreader was used to verify the text is read.
  • For features that involve UI updates and focusing on DOM refs, focus management was reviewed.
  • The feature works when the page is zoomed in to 200% and 400%.

Open Questions

Checklist:

  • I have updated the Storybook documentation and changelog accordingly.
  • I have added relevant accessibility documentation for this pull request.
  • All new and existing tests passed.

Front End Review:

  • Review the Vercel preview deployment once it is ready.

@vercel

vercel Bot commented Jul 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
nypl-design-system Ready Ready Preview, Comment Jul 7, 2026 6:16pm

Request Review

@7emansell

Copy link
Copy Markdown
Collaborator

heads up @bigfishdesign13 @EdwinGuzman published an rc to test this out

@KaseyW31
KaseyW31 marked this pull request as draft July 6, 2026 16:22
@KaseyW31

Copy link
Copy Markdown
Contributor Author

Closing because these changes seem to slightly hinder performance when the MultiSelect component is repeatedly rerendered (I'm suspecting because of a higher memory overhead upon first render), which may affect oher consuming apps. Trying a new approach with a lazy loading option instead here

@KaseyW31 KaseyW31 closed this Jul 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants