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

Update types for former defaultProps to be optional #3044

Merged
merged 4 commits into from
Jan 17, 2025

Conversation

ByronDWall
Copy link
Contributor

In preparation for upgrading ui kit to react 19, it was necessary to remove all defaultProps in favor of passing a default param to the prop.

This PR updates the types of any prop that has a default param to be optional so that it is not mandatory to pass the prop in consuming applications. This reduces the amount of refactoring that consumers will have to do to satisfy typechecking.

… the type interface so that it is not mandatory to pass them
@ByronDWall ByronDWall self-assigned this Jan 17, 2025
@ByronDWall ByronDWall requested a review from a team as a code owner January 17, 2025 15:33
@ByronDWall ByronDWall requested review from stephsprinkle, jaikamat, ddouglasz, tylermorrisford and misama-ct and removed request for a team January 17, 2025 15:33
Copy link

changeset-bot bot commented Jan 17, 2025

🦋 Changeset detected

Latest commit: fe9253d

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

This PR includes changesets to release 99 packages
Name Type
@commercetools-uikit/date-time-input Minor
@commercetools-uikit/data-table-manager Minor
@commercetools-uikit/loading-spinner Minor
@commercetools-uikit/data-table Minor
@commercetools-uikit/pagination Minor
@commercetools-local/generator-readme Minor
@commercetools-uikit/design-system Minor
@commercetools-uikit/date-time-field Minor
@commercetools-uikit/inputs Minor
@commercetools-frontend/ui-kit Minor
@commercetools-uikit/async-creatable-select-input Minor
@commercetools-uikit/async-select-input Minor
@commercetools-uikit/calendar-utils Minor
@commercetools-uikit/avatar Minor
@commercetools-uikit/card Minor
@commercetools-uikit/collapsible-panel Minor
@commercetools-uikit/constraints Minor
@commercetools-uikit/field-label Minor
@commercetools-uikit/filters Minor
@commercetools-uikit/icons Minor
@commercetools-uikit/label Minor
@commercetools-uikit/link Minor
@commercetools-uikit/notifications Minor
@commercetools-uikit/primary-action-dropdown Minor
@commercetools-uikit/progress-bar Minor
@commercetools-uikit/quick-filters Minor
@commercetools-uikit/stamp Minor
@commercetools-uikit/tag Minor
@commercetools-uikit/text Minor
@commercetools-uikit/tooltip Minor
@commercetools-uikit/view-switcher Minor
@commercetools-uikit/accessible-button Minor
@commercetools-uikit/flat-button Minor
@commercetools-uikit/icon-button Minor
@commercetools-uikit/link-button Minor
@commercetools-uikit/primary-button Minor
@commercetools-uikit/secondary-button Minor
@commercetools-uikit/secondary-icon-button Minor
@commercetools-uikit/dropdown-menu Minor
@commercetools-uikit/async-creatable-select-field Minor
@commercetools-uikit/async-select-field Minor
@commercetools-uikit/creatable-select-field Minor
@commercetools-uikit/date-field Minor
@commercetools-uikit/date-range-field Minor
@commercetools-uikit/localized-multiline-text-field Minor
@commercetools-uikit/localized-text-field Minor
@commercetools-uikit/money-field Minor
@commercetools-uikit/multiline-text-field Minor
@commercetools-uikit/number-field Minor
@commercetools-uikit/password-field Minor
@commercetools-uikit/radio-field Minor
@commercetools-uikit/search-select-field Minor
@commercetools-uikit/select-field Minor
@commercetools-uikit/text-field Minor
@commercetools-uikit/time-field Minor
@commercetools-uikit/checkbox-input Minor
@commercetools-uikit/creatable-select-input Minor
@commercetools-uikit/date-input Minor
@commercetools-uikit/date-range-input Minor
@commercetools-uikit/input-utils Minor
@commercetools-uikit/localized-money-input Minor
@commercetools-uikit/localized-multiline-text-input Minor
@commercetools-uikit/localized-rich-text-input Minor
@commercetools-uikit/localized-text-input Minor
@commercetools-uikit/money-input Minor
@commercetools-uikit/multiline-text-input Minor
@commercetools-uikit/number-input Minor
@commercetools-uikit/password-input Minor
@commercetools-uikit/radio-input Minor
@commercetools-uikit/rich-text-input Minor
@commercetools-uikit/rich-text-utils Minor
@commercetools-uikit/search-select-input Minor
@commercetools-uikit/search-text-input Minor
@commercetools-uikit/select-input Minor
@commercetools-uikit/select-utils Minor
@commercetools-uikit/selectable-search-input Minor
@commercetools-uikit/text-input Minor
@commercetools-uikit/time-input Minor
@commercetools-uikit/toggle-input Minor
@commercetools-uikit/spacings-inline Minor
@commercetools-uikit/spacings-inset-squish Minor
@commercetools-uikit/spacings-inset Minor
@commercetools-uikit/spacings-stack Minor
@commercetools-uikit/buttons Minor
visual-testing-app Patch
@commercetools-uikit/fields Minor
@commercetools-uikit/messages Minor
@commercetools-uikit/spacings Minor
@commercetools-uikit/field-errors Minor
@commercetools-uikit/field-warnings Minor
@commercetools-uikit/calendar-time-utils Minor
@commercetools-uikit/hooks Minor
@commercetools-uikit/i18n Minor
@commercetools-uikit/localized-utils Minor
@commercetools-uikit/utils Minor
@commercetools-uikit/accessible-hidden Minor
@commercetools-uikit/collapsible-motion Minor
@commercetools-uikit/collapsible Minor
@commercetools-uikit/grid 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

Copy link

vercel bot commented Jan 17, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
ui-kit ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jan 17, 2025 6:57pm

@ByronDWall ByronDWall requested a review from a team January 17, 2025 15:54
@ByronDWall ByronDWall added the fe-chapter-rotation Tasks coming from frontend chapter work label Jan 17, 2025
Copy link
Contributor

@tylermorrisford tylermorrisford left a comment

Choose a reason for hiding this comment

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

lgtm

Copy link
Contributor

@tdeekens tdeekens left a comment

Choose a reason for hiding this comment

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

Just one question which I assume to lack context on.

@@ -112,7 +112,7 @@ describe('generate README (for TS file)', () => {

## Description

Render an Justice League
Render a Justice League
Copy link
Contributor

Choose a reason for hiding this comment

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

This makes the PR worthwhile.

@@ -101,7 +101,7 @@ export const handleColumnsUpdate = (
: selectedColumns;

const columns = isSwap ? selectedColumns : availableColumns;
const draggedColumn = columns.find(
const draggedColumn = columns!.find(
Copy link
Contributor

Choose a reason for hiding this comment

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

Sorry, but if this is optionally don't we conditionally chain here?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

we know that availableColumns will always be [] because of the default param on line 134 - optional chaining is probably the better choice though

@ByronDWall ByronDWall merged commit 22c290f into main Jan 17, 2025
7 checks passed
@ByronDWall ByronDWall deleted the bw/update-types-for-default-props branch January 17, 2025 20:11
@ct-changesets ct-changesets bot mentioned this pull request Jan 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fe-chapter-rotation Tasks coming from frontend chapter work
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants