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

LG-3959 Combobox value change #2182

Merged
merged 28 commits into from
Jan 29, 2024
Merged

Conversation

TheSonOfThomp
Copy link
Collaborator

@TheSonOfThomp TheSonOfThomp commented Jan 24, 2024

✍️ Proposed changes

🎟 Jira ticket: https://jira.mongodb.org/browse/LG-3959
RFC: https://docs.google.com/document/d/1LFAw9sqVyOqPKYkQ2NKDPqQLUBMJDsG-6VhIj-mw2kU/edit?usp=sharing

Combobox onChange callback now receives an optional 2nd argument. Use this argument to determine what value was inserted or deleted from a multiselect value.

Example:

<Combobox 
  multiselect
  value={['apple', 'banana']}
  onChange={(val, diff) => {
    console.log(value) // ['apple']
    console.log(diff); // { diffType: 'delete', value: 'banana' }
  }} 
/>
interface DiffObject {
  diffType: 'insert' | 'delete';
  value: string | Array<string>;
}

✅ Checklist

For bug fixes, new features & breaking changes

  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if appropriate)
  • I have run yarn changeset and documented my changes

…mbobox/src/types/Combobox.types.ts to /Users/adam.thompson/Documents/GitHub/leafygreen-ui/packages/combobox/src/types/ComboboxOptionProps.types.ts
…mbobox/src/types/Combobox.types.ts to /Users/adam.thompson/Documents/GitHub/leafygreen-ui/packages/combobox/src/types/ComboboxProps.types.ts
…mbobox/src/types/Combobox.types.ts to /Users/adam.thompson/Documents/GitHub/leafygreen-ui/packages/combobox/src/types/ComboboxGroupProps.types.ts
…mbobox/src/types/Combobox.types.ts to /Users/adam.thompson/Documents/GitHub/leafygreen-ui/packages/combobox/src/types/ComboboxChipProps.types.ts
was in wrong pr
Copy link

changeset-bot bot commented Jan 24, 2024

🦋 Changeset detected

Latest commit: 95ff2a4

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@leafygreen-ui/combobox Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@TheSonOfThomp
Copy link
Collaborator Author

We considered adding a second callback (i.e. onValueRemoved), however this has a few drawbacks, namely:

  1. Adds the need to handle 2 callbacks
  2. Doesn't handle additions
  3. Awkward prop name

Copy link
Contributor

github-actions bot commented Jan 24, 2024

Size Change: +94 B (0%)

Total Size: 1.23 MB

Filename Size Change
packages/combobox/dist/esm/index.js 12.1 kB +46 B (0%)
packages/combobox/dist/index.js 12.4 kB +48 B (0%)
ℹ️ View Unchanged
Filename Size
packages/a11y/dist/esm/index.js 1.78 kB
packages/a11y/dist/index.js 1.91 kB
packages/badge/dist/esm/index.js 1.51 kB
packages/badge/dist/index.js 1.7 kB
packages/banner/dist/esm/index.js 3.27 kB
packages/banner/dist/index.js 3.57 kB
packages/box/dist/esm/index.js 539 B
packages/box/dist/index.js 696 B
packages/button/dist/esm/index.js 5.07 kB
packages/button/dist/index.js 5.3 kB
packages/callout/dist/esm/index.js 2.72 kB
packages/callout/dist/index.js 2.99 kB
packages/card/dist/esm/index.js 1.53 kB
packages/card/dist/index.js 1.74 kB
packages/checkbox/dist/esm/index.js 4.08 kB
packages/checkbox/dist/index.js 4.26 kB
packages/chip/dist/esm/index.js 3.22 kB
packages/chip/dist/index.js 3.44 kB
packages/code/dist/esm/index.js 9.32 kB
packages/code/dist/index.js 9.94 kB
packages/confirmation-modal/dist/esm/index.js 2.4 kB
packages/confirmation-modal/dist/index.js 2.65 kB
packages/copyable/dist/esm/index.js 2.93 kB
packages/copyable/dist/index.js 3.13 kB
packages/date-picker/dist/esm/index.js 13.9 kB
packages/date-picker/dist/index.js 14.3 kB
packages/date-utils/dist/esm/index.js 3.44 kB
packages/date-utils/dist/index.js 3.53 kB
packages/emotion/dist/esm/index.js 338 B
packages/emotion/dist/index.js 554 B
packages/empty-state/dist/esm/index.js 1.82 kB
packages/empty-state/dist/index.js 2.01 kB
packages/expandable-card/dist/esm/index.js 2.84 kB
packages/expandable-card/dist/index.js 3.03 kB
packages/form-field/dist/esm/index.js 3.89 kB
packages/form-field/dist/index.js 4.07 kB
packages/form-footer/dist/esm/index.js 1.58 kB
packages/form-footer/dist/index.js 1.77 kB
packages/guide-cue/dist/esm/index.js 4.36 kB
packages/guide-cue/dist/index.js 4.6 kB
packages/hooks/dist/esm/index.js 3.29 kB
packages/hooks/dist/index.js 3.42 kB
packages/icon-button/dist/esm/index.js 2.42 kB
packages/icon-button/dist/index.js 2.64 kB
packages/icon/dist/ActivityFeed.js 2.04 kB
packages/icon/dist/AddFile.js 1.82 kB
packages/icon/dist/AllProducts.js 1.89 kB
packages/icon/dist/Apps.js 1.5 kB
packages/icon/dist/Array.js 1.61 kB
packages/icon/dist/ArrowDown.js 1.74 kB
packages/icon/dist/ArrowLeft.js 1.74 kB
packages/icon/dist/ArrowRight.js 1.74 kB
packages/icon/dist/ArrowUp.js 1.73 kB
packages/icon/dist/Beaker.js 2.16 kB
packages/icon/dist/Bell.js 1.71 kB
packages/icon/dist/Biometric.js 2.26 kB
packages/icon/dist/Boolean.js 1.54 kB
packages/icon/dist/Building.js 1.69 kB
packages/icon/dist/Bulb.js 1.73 kB
packages/icon/dist/Calendar.js 1.69 kB
packages/icon/dist/Camera.js 1.78 kB
packages/icon/dist/Cap.js 1.9 kB
packages/icon/dist/CaretDown.js 1.56 kB
packages/icon/dist/CaretLeft.js 1.57 kB
packages/icon/dist/CaretRight.js 1.56 kB
packages/icon/dist/CaretUp.js 1.56 kB
packages/icon/dist/ChartFilled.js 1.66 kB
packages/icon/dist/Charts.js 1.64 kB
packages/icon/dist/Checkmark.js 1.7 kB
packages/icon/dist/CheckmarkWithCircle.js 1.76 kB
packages/icon/dist/ChevronDown.js 1.67 kB
packages/icon/dist/ChevronLeft.js 1.67 kB
packages/icon/dist/ChevronRight.js 1.68 kB
packages/icon/dist/ChevronUp.js 1.67 kB
packages/icon/dist/Clock.js 1.72 kB
packages/icon/dist/ClockWithArrow.js 1.99 kB
packages/icon/dist/Clone.js 1.6 kB
packages/icon/dist/Cloud.js 1.77 kB
packages/icon/dist/Code.js 1.97 kB
packages/icon/dist/CodeBlock.js 1.91 kB
packages/icon/dist/Colon.js 1.55 kB
packages/icon/dist/Connect.js 2.02 kB
packages/icon/dist/Copy.js 1.96 kB
packages/icon/dist/CreditCard.js 1.53 kB
packages/icon/dist/CurlyBraces.js 2.12 kB
packages/icon/dist/Cursor.js 1.65 kB
packages/icon/dist/Dashboard.js 1.59 kB
packages/icon/dist/Database.js 2.11 kB
packages/icon/dist/Diagram.js 1.74 kB
packages/icon/dist/Diagram2.js 1.74 kB
packages/icon/dist/Diagram3.js 1.72 kB
packages/icon/dist/Disconnect.js 1.95 kB
packages/icon/dist/Download.js 1.75 kB
packages/icon/dist/Drag.js 1.7 kB
packages/icon/dist/Edit.js 1.61 kB
packages/icon/dist/Ellipsis.js 1.59 kB
packages/icon/dist/Email.js 1.79 kB
packages/icon/dist/esm/ActivityFeed.js 1.82 kB
packages/icon/dist/esm/AddFile.js 1.59 kB
packages/icon/dist/esm/AllProducts.js 1.68 kB
packages/icon/dist/esm/Apps.js 1.28 kB
packages/icon/dist/esm/Array.js 1.39 kB
packages/icon/dist/esm/ArrowDown.js 1.51 kB
packages/icon/dist/esm/ArrowLeft.js 1.52 kB
packages/icon/dist/esm/ArrowRight.js 1.51 kB
packages/icon/dist/esm/ArrowUp.js 1.51 kB
packages/icon/dist/esm/Beaker.js 1.94 kB
packages/icon/dist/esm/Bell.js 1.48 kB
packages/icon/dist/esm/Biometric.js 2.03 kB
packages/icon/dist/esm/Boolean.js 1.32 kB
packages/icon/dist/esm/Building.js 1.47 kB
packages/icon/dist/esm/Bulb.js 1.5 kB
packages/icon/dist/esm/Calendar.js 1.47 kB
packages/icon/dist/esm/Camera.js 1.55 kB
packages/icon/dist/esm/Cap.js 1.67 kB
packages/icon/dist/esm/CaretDown.js 1.34 kB
packages/icon/dist/esm/CaretLeft.js 1.34 kB
packages/icon/dist/esm/CaretRight.js 1.34 kB
packages/icon/dist/esm/CaretUp.js 1.34 kB
packages/icon/dist/esm/ChartFilled.js 1.44 kB
packages/icon/dist/esm/Charts.js 1.42 kB
packages/icon/dist/esm/Checkmark.js 1.48 kB
packages/icon/dist/esm/CheckmarkWithCircle.js 1.54 kB
packages/icon/dist/esm/ChevronDown.js 1.45 kB
packages/icon/dist/esm/ChevronLeft.js 1.44 kB
packages/icon/dist/esm/ChevronRight.js 1.45 kB
packages/icon/dist/esm/ChevronUp.js 1.44 kB
packages/icon/dist/esm/Clock.js 1.5 kB
packages/icon/dist/esm/ClockWithArrow.js 1.77 kB
packages/icon/dist/esm/Clone.js 1.37 kB
packages/icon/dist/esm/Cloud.js 1.55 kB
packages/icon/dist/esm/Code.js 1.74 kB
packages/icon/dist/esm/CodeBlock.js 1.68 kB
packages/icon/dist/esm/Colon.js 1.33 kB
packages/icon/dist/esm/Connect.js 1.79 kB
packages/icon/dist/esm/Copy.js 1.73 kB
packages/icon/dist/esm/CreditCard.js 1.3 kB
packages/icon/dist/esm/CurlyBraces.js 1.89 kB
packages/icon/dist/esm/Cursor.js 1.43 kB
packages/icon/dist/esm/Dashboard.js 1.37 kB
packages/icon/dist/esm/Database.js 1.88 kB
packages/icon/dist/esm/Diagram.js 1.51 kB
packages/icon/dist/esm/Diagram2.js 1.52 kB
packages/icon/dist/esm/Diagram3.js 1.5 kB
packages/icon/dist/esm/Disconnect.js 1.73 kB
packages/icon/dist/esm/Download.js 1.53 kB
packages/icon/dist/esm/Drag.js 1.48 kB
packages/icon/dist/esm/Edit.js 1.39 kB
packages/icon/dist/esm/Ellipsis.js 1.37 kB
packages/icon/dist/esm/Email.js 1.57 kB
packages/icon/dist/esm/Export.js 1.64 kB
packages/icon/dist/esm/Favorite.js 1.6 kB
packages/icon/dist/esm/Federation.js 1.54 kB
packages/icon/dist/esm/File.js 1.41 kB
packages/icon/dist/esm/Filter.js 1.39 kB
packages/icon/dist/esm/Folder.js 1.31 kB
packages/icon/dist/esm/FullScreenEnter.js 1.56 kB
packages/icon/dist/esm/FullScreenExit.js 1.57 kB
packages/icon/dist/esm/Gauge.js 1.59 kB
packages/icon/dist/esm/GlobeAmericas.js 1.51 kB
packages/icon/dist/esm/GovernmentBuilding.js 1.55 kB
packages/icon/dist/esm/Hash.js 1.7 kB
packages/icon/dist/esm/Highlight.js 1.74 kB
packages/icon/dist/esm/Home.js 1.66 kB
packages/icon/dist/esm/Import.js 1.64 kB
packages/icon/dist/esm/ImportantWithCircle.js 1.41 kB
packages/icon/dist/esm/index.js 25.5 kB
packages/icon/dist/esm/InfoWithCircle.js 1.44 kB
packages/icon/dist/esm/InviteUser.js 1.74 kB
packages/icon/dist/esm/Key.js 1.55 kB
packages/icon/dist/esm/Laptop.js 1.52 kB
packages/icon/dist/esm/LightningBolt.js 1.41 kB
packages/icon/dist/esm/Link.js 1.9 kB
packages/icon/dist/esm/List.js 1.56 kB
packages/icon/dist/esm/Lock.js 1.5 kB
packages/icon/dist/esm/LogIn.js 1.57 kB
packages/icon/dist/esm/LogOut.js 1.63 kB
packages/icon/dist/esm/MagnifyingGlass.js 1.48 kB
packages/icon/dist/esm/Megaphone.js 1.45 kB
packages/icon/dist/esm/Menu.js 1.37 kB
packages/icon/dist/esm/Minus.js 1.32 kB
packages/icon/dist/esm/Mobile.js 1.31 kB
packages/icon/dist/esm/MultiDirectionArrow.js 1.53 kB
packages/icon/dist/esm/MultiLayers.js 2.47 kB
packages/icon/dist/esm/NavCollapse.js 1.54 kB
packages/icon/dist/esm/NavExpand.js 1.55 kB
packages/icon/dist/esm/NoFilter.js 1.53 kB
packages/icon/dist/esm/NotAllowed.js 1.43 kB
packages/icon/dist/esm/Note.js 1.46 kB
packages/icon/dist/esm/OpenNewTab.js 1.72 kB
packages/icon/dist/esm/Pause.js 1.35 kB
packages/icon/dist/esm/Person.js 1.52 kB
packages/icon/dist/esm/PersonGroup.js 1.73 kB
packages/icon/dist/esm/PersonWithLock.js 1.73 kB
packages/icon/dist/esm/Pin.js 1.47 kB
packages/icon/dist/esm/Play.js 1.36 kB
packages/icon/dist/esm/Plus.js 1.37 kB
packages/icon/dist/esm/PlusWithCircle.js 1.4 kB
packages/icon/dist/esm/QuestionMarkWithCircle.js 1.76 kB
packages/icon/dist/esm/Read.js 2.07 kB
packages/icon/dist/esm/Redo.js 1.7 kB
packages/icon/dist/esm/Refresh.js 1.77 kB
packages/icon/dist/esm/Relationship.js 1.46 kB
packages/icon/dist/esm/ReplicaSet.js 1.62 kB
packages/icon/dist/esm/Resize.js 1.44 kB
packages/icon/dist/esm/Return.js 1.53 kB
packages/icon/dist/esm/Save.js 1.96 kB
packages/icon/dist/esm/Serverless.js 1.6 kB
packages/icon/dist/esm/Settings.js 2.04 kB
packages/icon/dist/esm/ShardedCluster.js 1.98 kB
packages/icon/dist/esm/Shell.js 1.52 kB
packages/icon/dist/esm/SMS.js 1.48 kB
packages/icon/dist/esm/SortAscending.js 1.57 kB
packages/icon/dist/esm/SortDescending.js 1.56 kB
packages/icon/dist/esm/Sparkle.js 1.88 kB
packages/icon/dist/esm/SplitHorizontal.js 1.33 kB
packages/icon/dist/esm/SplitVertical.js 1.33 kB
packages/icon/dist/esm/Stitch.js 1.37 kB
packages/icon/dist/esm/String.js 1.47 kB
packages/icon/dist/esm/Support.js 1.56 kB
packages/icon/dist/esm/Sweep.js 1.58 kB
packages/icon/dist/esm/Table.js 1.36 kB
packages/icon/dist/esm/Tag.js 1.4 kB
packages/icon/dist/esm/ThumbsDown.js 1.68 kB
packages/icon/dist/esm/ThumbsUp.js 1.67 kB
packages/icon/dist/esm/TimeSeries.js 1.71 kB
packages/icon/dist/esm/TimeSeriesCollection.js 1.86 kB
packages/icon/dist/esm/Trash.js 1.39 kB
packages/icon/dist/esm/Undo.js 1.69 kB
packages/icon/dist/esm/University.js 1.88 kB
packages/icon/dist/esm/Unlock.js 1.57 kB
packages/icon/dist/esm/Unsorted.js 1.61 kB
packages/icon/dist/esm/UpDownCarets.js 1.46 kB
packages/icon/dist/esm/Upload.js 1.66 kB
packages/icon/dist/esm/VerticalEllipsis.js 1.39 kB
packages/icon/dist/esm/Visibility.js 1.69 kB
packages/icon/dist/esm/VisibilityOff.js 2.08 kB
packages/icon/dist/esm/Warning.js 1.46 kB
packages/icon/dist/esm/Wizard.js 1.78 kB
packages/icon/dist/esm/Wrench.js 1.78 kB
packages/icon/dist/esm/Write.js 2.07 kB
packages/icon/dist/esm/X.js 1.5 kB
packages/icon/dist/esm/XWithCircle.js 1.44 kB
packages/icon/dist/Export.js 1.87 kB
packages/icon/dist/Favorite.js 1.83 kB
packages/icon/dist/Federation.js 1.77 kB
packages/icon/dist/File.js 1.64 kB
packages/icon/dist/Filter.js 1.61 kB
packages/icon/dist/Folder.js 1.54 kB
packages/icon/dist/FullScreenEnter.js 1.78 kB
packages/icon/dist/FullScreenExit.js 1.79 kB
packages/icon/dist/Gauge.js 1.81 kB
packages/icon/dist/GlobeAmericas.js 1.73 kB
packages/icon/dist/GovernmentBuilding.js 1.77 kB
packages/icon/dist/Hash.js 1.92 kB
packages/icon/dist/Highlight.js 1.96 kB
packages/icon/dist/Home.js 1.89 kB
packages/icon/dist/Import.js 1.86 kB
packages/icon/dist/ImportantWithCircle.js 1.63 kB
packages/icon/dist/index.js 25.8 kB
packages/icon/dist/InfoWithCircle.js 1.67 kB
packages/icon/dist/InviteUser.js 1.96 kB
packages/icon/dist/Key.js 1.78 kB
packages/icon/dist/Laptop.js 1.75 kB
packages/icon/dist/LightningBolt.js 1.64 kB
packages/icon/dist/Link.js 2.13 kB
packages/icon/dist/List.js 1.78 kB
packages/icon/dist/Lock.js 1.73 kB
packages/icon/dist/LogIn.js 1.79 kB
packages/icon/dist/LogOut.js 1.86 kB
packages/icon/dist/MagnifyingGlass.js 1.71 kB
packages/icon/dist/Megaphone.js 1.68 kB
packages/icon/dist/Menu.js 1.59 kB
packages/icon/dist/Minus.js 1.54 kB
packages/icon/dist/Mobile.js 1.54 kB
packages/icon/dist/MultiDirectionArrow.js 1.75 kB
packages/icon/dist/MultiLayers.js 2.69 kB
packages/icon/dist/NavCollapse.js 1.76 kB
packages/icon/dist/NavExpand.js 1.77 kB
packages/icon/dist/NoFilter.js 1.76 kB
packages/icon/dist/NotAllowed.js 1.65 kB
packages/icon/dist/Note.js 1.68 kB
packages/icon/dist/OpenNewTab.js 1.95 kB
packages/icon/dist/Pause.js 1.57 kB
packages/icon/dist/Person.js 1.74 kB
packages/icon/dist/PersonGroup.js 1.95 kB
packages/icon/dist/PersonWithLock.js 1.95 kB
packages/icon/dist/Pin.js 1.69 kB
packages/icon/dist/Play.js 1.58 kB
packages/icon/dist/Plus.js 1.59 kB
packages/icon/dist/PlusWithCircle.js 1.62 kB
packages/icon/dist/QuestionMarkWithCircle.js 1.98 kB
packages/icon/dist/Read.js 2.29 kB
packages/icon/dist/Redo.js 1.92 kB
packages/icon/dist/Refresh.js 1.99 kB
packages/icon/dist/Relationship.js 1.69 kB
packages/icon/dist/ReplicaSet.js 1.84 kB
packages/icon/dist/Resize.js 1.67 kB
packages/icon/dist/Return.js 1.75 kB
packages/icon/dist/Save.js 2.18 kB
packages/icon/dist/Serverless.js 1.83 kB
packages/icon/dist/Settings.js 2.26 kB
packages/icon/dist/ShardedCluster.js 2.2 kB
packages/icon/dist/Shell.js 1.75 kB
packages/icon/dist/SMS.js 1.7 kB
packages/icon/dist/SortAscending.js 1.79 kB
packages/icon/dist/SortDescending.js 1.78 kB
packages/icon/dist/Sparkle.js 2.1 kB
packages/icon/dist/SplitHorizontal.js 1.56 kB
packages/icon/dist/SplitVertical.js 1.55 kB
packages/icon/dist/Stitch.js 1.6 kB
packages/icon/dist/String.js 1.7 kB
packages/icon/dist/Support.js 1.79 kB
packages/icon/dist/Sweep.js 1.81 kB
packages/icon/dist/Table.js 1.58 kB
packages/icon/dist/Tag.js 1.62 kB
packages/icon/dist/ThumbsDown.js 1.9 kB
packages/icon/dist/ThumbsUp.js 1.9 kB
packages/icon/dist/TimeSeries.js 1.94 kB
packages/icon/dist/TimeSeriesCollection.js 2.08 kB
packages/icon/dist/Trash.js 1.61 kB
packages/icon/dist/Undo.js 1.92 kB
packages/icon/dist/University.js 2.11 kB
packages/icon/dist/Unlock.js 1.8 kB
packages/icon/dist/Unsorted.js 1.83 kB
packages/icon/dist/UpDownCarets.js 1.69 kB
packages/icon/dist/Upload.js 1.88 kB
packages/icon/dist/VerticalEllipsis.js 1.61 kB
packages/icon/dist/Visibility.js 1.91 kB
packages/icon/dist/VisibilityOff.js 2.31 kB
packages/icon/dist/Warning.js 1.68 kB
packages/icon/dist/Wizard.js 2.01 kB
packages/icon/dist/Wrench.js 2.01 kB
packages/icon/dist/Write.js 2.29 kB
packages/icon/dist/X.js 1.72 kB
packages/icon/dist/XWithCircle.js 1.67 kB
packages/info-sprinkle/dist/esm/index.js 1.41 kB
packages/info-sprinkle/dist/index.js 1.62 kB
packages/inline-definition/dist/esm/index.js 1.23 kB
packages/inline-definition/dist/index.js 1.4 kB
packages/input-option/dist/esm/index.js 2.26 kB
packages/input-option/dist/index.js 2.42 kB
packages/leafygreen-provider/dist/esm/index.js 1.62 kB
packages/leafygreen-provider/dist/index.js 1.81 kB
packages/lib/dist/esm/index.js 3.25 kB
packages/lib/dist/index.js 3.4 kB
packages/loading-indicator/dist/esm/index.js 3.38 kB
packages/loading-indicator/dist/index.js 3.58 kB
packages/logo/dist/esm/index.js 40.1 kB
packages/logo/dist/index.js 40.3 kB
packages/marketing-modal/dist/esm/index.js 3.61 kB
packages/marketing-modal/dist/index.js 3.83 kB
packages/menu/dist/esm/index.js 8.08 kB
packages/menu/dist/index.js 8.27 kB
packages/modal/dist/esm/index.js 3.27 kB
packages/modal/dist/index.js 3.5 kB
packages/number-input/dist/esm/index.js 6.49 kB
packages/number-input/dist/index.js 6.7 kB
packages/pagination/dist/esm/index.js 1.75 kB
packages/pagination/dist/index.js 1.96 kB
packages/palette/dist/esm/index.js 392 B
packages/palette/dist/index.js 546 B
packages/password-input/dist/esm/index.js 5.03 kB
packages/password-input/dist/index.js 5.28 kB
packages/pipeline/dist/esm/index.js 7.92 kB
packages/pipeline/dist/index.js 8.19 kB
packages/polymorphic/dist/esm/index.js 701 B
packages/polymorphic/dist/index.js 841 B
packages/popover/dist/esm/index.js 5.29 kB
packages/popover/dist/index.js 5.44 kB
packages/portal/dist/esm/index.js 981 B
packages/portal/dist/index.js 1.16 kB
packages/radio-box-group/dist/esm/index.js 3.02 kB
packages/radio-box-group/dist/index.js 3.17 kB
packages/radio-group/dist/esm/index.js 3.46 kB
packages/radio-group/dist/index.js 3.6 kB
packages/ripple/dist/esm/index.js 962 B
packages/ripple/dist/index.js 1.06 kB
packages/search-input/dist/esm/index.js 6.33 kB
packages/search-input/dist/index.js 6.56 kB
packages/segmented-control/dist/esm/index.js 5.56 kB
packages/segmented-control/dist/index.js 5.72 kB
packages/select/dist/esm/index.js 9.46 kB
packages/select/dist/index.js 9.67 kB
packages/side-nav/dist/esm/index.js 7.72 kB
packages/side-nav/dist/index.js 7.99 kB
packages/skeleton-loader/dist/esm/index.js 2.65 kB
packages/skeleton-loader/dist/index.js 2.81 kB
packages/split-button/dist/esm/index.js 3.64 kB
packages/split-button/dist/index.js 3.81 kB
packages/stepper/dist/esm/index.js 3.2 kB
packages/stepper/dist/index.js 3.42 kB
packages/table/dist/esm/index.js 13.7 kB
packages/table/dist/index.js 14.1 kB
packages/tabs/dist/esm/index.js 4.37 kB
packages/tabs/dist/index.js 4.55 kB
packages/testing-lib/dist/esm/index.js 4.24 kB
packages/testing-lib/dist/index.js 4.46 kB
packages/text-area/dist/esm/index.js 2.74 kB
packages/text-area/dist/index.js 2.91 kB
packages/text-input/dist/esm/index.js 2.41 kB
packages/text-input/dist/index.js 2.61 kB
packages/toast/dist/esm/index.js 8.36 kB
packages/toast/dist/index.js 8.61 kB
packages/toggle/dist/esm/index.js 3.04 kB
packages/toggle/dist/index.js 3.23 kB
packages/tokens/dist/esm/index.js 982 B
packages/tokens/dist/index.js 1.07 kB
packages/tooltip/dist/esm/index.js 4.48 kB
packages/tooltip/dist/index.js 4.77 kB
packages/typography/dist/esm/index.js 5.5 kB
packages/typography/dist/index.js 5.68 kB
tools/build/dist/esm/index.js 6.46 kB
tools/build/dist/index.js 6.6 kB
tools/cli/dist/esm/index.js 1.63 kB
tools/cli/dist/index.js 1.78 kB
tools/create/dist/esm/index.js 3.6 kB
tools/create/dist/index.js 3.75 kB
tools/install/dist/esm/index.js 907 B
tools/install/dist/index.js 1.05 kB
tools/link/dist/esm/index.js 5.53 kB
tools/link/dist/index.js 5.65 kB
tools/lint/dist/esm/index.js 1.78 kB
tools/lint/dist/index.js 1.94 kB
tools/meta/dist/esm/index.js 2.2 kB
tools/meta/dist/index.js 2.32 kB
tools/slackbot/dist/esm/index.js 6.16 kB
tools/slackbot/dist/index.js 6.29 kB
tools/storybook-decorators/dist/esm/index.js 3.32 kB
tools/storybook-decorators/dist/index.js 3.46 kB
tools/storybook/dist/esm/index.js 5.71 kB
tools/storybook/dist/esm/main.js 5.67 kB
tools/storybook/dist/esm/manager.js 410 B
tools/storybook/dist/esm/preview.js 1.2 kB
tools/storybook/dist/index.js 5.8 kB
tools/storybook/dist/main.js 5.75 kB
tools/storybook/dist/manager.js 551 B
tools/storybook/dist/preview.js 1.27 kB
tools/test/dist/esm/index.js 2.33 kB
tools/test/dist/index.js 2.46 kB
tools/update/dist/esm/index.js 1.5 kB
tools/update/dist/index.js 1.66 kB
tools/validate/dist/esm/index.js 8.35 kB
tools/validate/dist/index.js 8.51 kB

compressed-size-action

@TheSonOfThomp TheSonOfThomp force-pushed the adam/lg-3959-combobox-value-change branch from b12b26f to eb524c6 Compare January 24, 2024 18:22

if (select === 'multiple') {
expect(onChange).toHaveBeenCalledWith(
expect.arrayContaining(['carrot']),
Copy link
Collaborator

Choose a reason for hiding this comment

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

is this correct - an array containing an array with the string 'carrot'?
I'd expect arrayContaining('carrot')

Copy link
Collaborator Author

@TheSonOfThomp TheSonOfThomp Jan 24, 2024

Choose a reason for hiding this comment

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

yeah it's confusing. Its essentially "array containing these elements: [...]"
(There's a case where I call expect.arrayContaining(['apple', 'banana']) )

https://jestjs.io/docs/expect#expectarraycontainingarray

const multiselectOnChange = onChange as onChangeType<true>;
const diff: DiffObject = {
diffType: 'delete',
value: value ?? selection,
Copy link
Collaborator

Choose a reason for hiding this comment

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

should this be newSelection

Copy link
Collaborator Author

@TheSonOfThomp TheSonOfThomp Jan 24, 2024

Choose a reason for hiding this comment

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

No, since in the case that value is null it means we're deleting all elements. So newSelection is []

So the call would be something like:

  onChange={(val, diff) => {
    console.log(val) // [] (i.e. newSelection)
    console.log(diff); // { diffType: 'delete', value: ['apple', 'banana'] }
  }} 

Base automatically changed from adam/combobox-types-cleanup to main January 24, 2024 19:22
@TheSonOfThomp TheSonOfThomp merged commit 0eba26c into main Jan 29, 2024
9 checks passed
@TheSonOfThomp TheSonOfThomp deleted the adam/lg-3959-combobox-value-change branch January 29, 2024 18:44
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