Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adopt ComboBox selectedItem prop #3749

Merged
merged 1 commit into from
Nov 8, 2024

Conversation

AlanGreene
Copy link
Member

@AlanGreene AlanGreene commented Nov 7, 2024

Changes

Follow-up to #3667 now that we've updated to @carbon/[email protected]

Remove previous workaround and adopt the selectedItem prop to make the ComboBox component fully controlled.

To avoid the previous issue where the ComboBox would get into a loop or cause the tests to crash due to OOM, we memoise the value passed to selectedItem to ensure the same reference is kept if the value is unchanged, e.g. in case of a selected namespace: { id: namespace, text: namespace }
we memoise on the id field so the same object is returned unless the namespace changes. This avoid the ComboBox unnecessarily re-rendering, and also handles the case of translated text for the 'All namespaces' option.

/kind misc

Submitter Checklist

As the author of this PR, please check off the items in this checklist:

  • Docs included if any changes are user facing
  • Tests included if any functionality added or changed
  • Follows the commit message standard
  • Meets the Tekton contributor standards (including
    functionality, content, code)
  • Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
  • Release notes block below has been updated with any user facing changes (new features, significant UI changes, API changes, bug fixes, changes requiring upgrade notices or deprecation warnings)
  • Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes

NONE

Remove previous workaround and adopt the `selectedItem` prop to
make the `ComboBox` component fully controlled.

To avoid the previous issue where the ComboBox would get into a loop
or cause the tests to crash due to OOM, we memoise the value passed
to `selectedItem` to ensure the same reference is kept if the value
is unchanged, e.g. in case of a selected namespace:
`{ id: namespace, text: namespace }`
we memoise on the `id` field so the same object is returned unless
the namespace changes. This avoid the ComboBox unnecessarily
re-rendering, and also handles the case of translated text for the
'All namespaces' option.
@tekton-robot tekton-robot added kind/misc Categorizes issue or PR as a miscellaneuous one. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Nov 7, 2024
@AlanGreene AlanGreene requested review from LyndseyBu and removed request for skaegi November 7, 2024 20:23
Copy link
Contributor

@briangleeson briangleeson left a comment

Choose a reason for hiding this comment

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

/lgtm

@tekton-robot tekton-robot added the lgtm Indicates that a PR is ready to be merged. label Nov 8, 2024
@tekton-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: briangleeson

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@tekton-robot tekton-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Nov 8, 2024
@tekton-robot tekton-robot merged commit 5d90112 into tektoncd:main Nov 8, 2024
8 checks passed
@AlanGreene AlanGreene deleted the react_combo_memo branch November 8, 2024 16:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. kind/misc Categorizes issue or PR as a miscellaneuous one. lgtm Indicates that a PR is ready to be merged. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants