From 5b729f8b8c737690ae61408902fef6088a31bce5 Mon Sep 17 00:00:00 2001 From: Chris Schneider Date: Fri, 7 Feb 2025 09:51:41 -0500 Subject: [PATCH] migrate defaultProps to default assignment --- .../src/elements/accordion/Accordion.tsx | 9 +- .../src/elements/stepper/Stepper.tsx | 4 - .../src/styled/accordion/StyledPanel.ts | 17 +- packages/avatars/src/elements/Avatar.tsx | 6 +- .../avatars/src/elements/StatusIndicator.tsx | 6 +- packages/avatars/src/styled/StyledAvatar.ts | 12 +- .../styled/StyledStandaloneStatusIndicator.ts | 16 +- .../src/styled/StyledStatusIndicator.ts | 18 +- .../src/styled/StyledStatusIndicatorBase.ts | 11 +- packages/buttons/src/elements/Button.tsx | 6 +- .../buttons/src/elements/ChevronButton.tsx | 18 +- packages/buttons/src/elements/IconButton.tsx | 12 +- .../buttons/src/elements/ToggleButton.tsx | 8 +- .../buttons/src/elements/ToggleIconButton.tsx | 17 +- packages/chrome/src/elements/SkipNav.tsx | 6 +- packages/chrome/src/elements/sheet/Sheet.tsx | 18 +- .../src/elements/ColorPicker/index.tsx | 6 +- .../src/elements/ColorPickerDialog/index.tsx | 15 +- .../src/elements/ColorSwatchDialog/index.tsx | 15 +- .../src/elements/DatePicker/DatePicker.tsx | 26 +- .../DatePickerRange/DatePickerRange.tsx | 9 +- .../src/elements/Menu/Menu.tsx | 260 +++++++++--------- .../src/elements/Multiselect/Multiselect.tsx | 7 +- .../src/elements/Trigger/Trigger.tsx | 6 +- .../src/elements/combobox/Combobox.tsx | 13 +- packages/dropdowns/src/elements/menu/Menu.tsx | 12 +- .../dropdowns/src/elements/menu/MenuList.tsx | 12 +- packages/forms/src/elements/Range.tsx | 9 +- packages/forms/src/elements/tiles/Tiles.tsx | 6 +- .../src/styled/range/StyledRangeInput.ts | 27 +- packages/grid/src/elements/Grid.tsx | 7 +- .../src/elements/pane/components/Splitter.tsx | 6 +- packages/grid/src/styled/StyledCol.ts | 13 +- packages/grid/src/styled/StyledGrid.ts | 13 +- packages/grid/src/styled/StyledRow.ts | 13 +- packages/loaders/src/elements/Dots.tsx | 9 +- packages/loaders/src/elements/Inline.tsx | 47 ++-- packages/loaders/src/elements/Progress.tsx | 7 +- packages/loaders/src/elements/Skeleton.tsx | 7 +- packages/loaders/src/elements/Spinner.tsx | 9 +- .../modals/src/elements/Drawer/Drawer.tsx | 16 +- .../modals/src/elements/Drawer/Header.tsx | 50 ++-- packages/modals/src/elements/Header.tsx | 6 +- packages/modals/src/elements/Modal.tsx | 9 +- .../src/elements/TooltipDialog/Title.tsx | 6 +- .../elements/TooltipDialog/TooltipDialog.tsx | 17 +- .../src/elements/toaster/ToastProvider.tsx | 6 +- .../OffsetPagination/OffsetPagination.tsx | 9 +- packages/tables/src/elements/Table.tsx | 6 +- packages/tabs/src/elements/Tabs.tsx | 6 +- packages/tags/src/elements/Tag.tsx | 6 +- packages/tags/src/styled/StyledTag.ts | 13 +- packages/tooltips/src/elements/Tooltip.tsx | 26 +- .../typography/src/elements/Blockquote.tsx | 10 +- packages/typography/src/elements/Code.tsx | 13 +- packages/typography/src/elements/Ellipsis.tsx | 6 +- packages/typography/src/elements/LG.tsx | 6 +- packages/typography/src/elements/MD.tsx | 6 +- .../typography/src/elements/Paragraph.tsx | 10 +- packages/typography/src/elements/SM.tsx | 6 +- packages/typography/src/elements/XL.tsx | 12 +- packages/typography/src/elements/XXL.tsx | 12 +- packages/typography/src/elements/XXXL.tsx | 6 +- .../src/elements/lists/OrderedList.tsx | 7 +- .../src/elements/lists/UnorderedList.tsx | 7 +- .../typography/src/elements/span/Span.tsx | 6 +- packages/typography/src/styled/StyledCode.ts | 15 +- packages/typography/src/styled/StyledFont.tsx | 11 +- .../typography/src/styled/StyledListItem.ts | 38 ++- 69 files changed, 403 insertions(+), 682 deletions(-) diff --git a/packages/accordions/src/elements/accordion/Accordion.tsx b/packages/accordions/src/elements/accordion/Accordion.tsx index 7d3df38e923..2b7e950afae 100644 --- a/packages/accordions/src/elements/accordion/Accordion.tsx +++ b/packages/accordions/src/elements/accordion/Accordion.tsx @@ -21,9 +21,9 @@ const AccordionComponent = forwardRef( children, isBare, isCompact, - isAnimated, + isAnimated = true, isExpandable, - isCollapsible, + isCollapsible = true, level, onChange, defaultExpandedSections, @@ -103,11 +103,6 @@ const AccordionComponent = forwardRef( AccordionComponent.displayName = 'Accordion'; -AccordionComponent.defaultProps = { - isAnimated: true, - isCollapsible: true -}; - /** * @extends HTMLAttributes */ diff --git a/packages/accordions/src/elements/stepper/Stepper.tsx b/packages/accordions/src/elements/stepper/Stepper.tsx index c26943b7011..2c9cb5805bc 100644 --- a/packages/accordions/src/elements/stepper/Stepper.tsx +++ b/packages/accordions/src/elements/stepper/Stepper.tsx @@ -57,10 +57,6 @@ const StepperComponent = forwardRef( StepperComponent.displayName = 'Stepper'; -StepperComponent.defaultProps = { - activeIndex: DEFAULT_ACTIVE_INDEX -}; - /** * @extends OlHTMLAttributes */ diff --git a/packages/accordions/src/styled/accordion/StyledPanel.ts b/packages/accordions/src/styled/accordion/StyledPanel.ts index 23e46dc098d..74124ebc058 100644 --- a/packages/accordions/src/styled/accordion/StyledPanel.ts +++ b/packages/accordions/src/styled/accordion/StyledPanel.ts @@ -6,12 +6,7 @@ */ import styled, { css, ThemeProps, DefaultTheme } from 'styled-components'; -import { - getLineHeight, - componentStyles, - DEFAULT_THEME, - getColor -} from '@zendeskgarden/react-theming'; +import { getLineHeight, componentStyles, getColor } from '@zendeskgarden/react-theming'; interface IStyledPanel { inert?: string; @@ -58,10 +53,11 @@ const sizeStyles = (props: IStyledPanel & ThemeProps) => { `; }; -export const StyledPanel = styled.section.attrs({ +export const StyledPanel = styled.section.attrs(({ $isAnimated = true }) => ({ + $isAnimated, 'data-garden-id': COMPONENT_ID, 'data-garden-version': PACKAGE_VERSION -})` +}))` display: grid; transition: ${props => props.$isAnimated && 'padding 0.25s ease-in-out, grid-template-rows 0.25s ease-in-out'}; @@ -72,8 +68,3 @@ export const StyledPanel = styled.section.attrs({ ${componentStyles}; `; - -StyledPanel.defaultProps = { - $isAnimated: true, - theme: DEFAULT_THEME -}; diff --git a/packages/avatars/src/elements/Avatar.tsx b/packages/avatars/src/elements/Avatar.tsx index 1fee83884ed..f02010b741a 100644 --- a/packages/avatars/src/elements/Avatar.tsx +++ b/packages/avatars/src/elements/Avatar.tsx @@ -26,7 +26,7 @@ const AvatarComponent = forwardRef( children, foregroundColor, isSystem, - size, + size = 'medium', status, statusLabel, surfaceColor, @@ -119,10 +119,6 @@ AvatarComponent.propTypes = { statusLabel: PropTypes.string }; -AvatarComponent.defaultProps = { - size: 'medium' -}; - /** * @extends HTMLAttributes */ diff --git a/packages/avatars/src/elements/StatusIndicator.tsx b/packages/avatars/src/elements/StatusIndicator.tsx index 20260f5ac69..f6d88938faa 100644 --- a/packages/avatars/src/elements/StatusIndicator.tsx +++ b/packages/avatars/src/elements/StatusIndicator.tsx @@ -31,7 +31,7 @@ import { * @extends HTMLAttributes */ export const StatusIndicator = forwardRef( - ({ children, type, isCompact, 'aria-label': label, ...props }, ref) => { + ({ children, type = 'offline', isCompact, 'aria-label': label, ...props }, ref) => { let ClockIcon = ClockIcon16; let ArrowLeftIcon = ArrowLeftIcon16; @@ -72,7 +72,3 @@ StatusIndicator.propTypes = { type: PropTypes.oneOf(STATUS), isCompact: PropTypes.bool }; - -StatusIndicator.defaultProps = { - type: 'offline' -}; diff --git a/packages/avatars/src/styled/StyledAvatar.ts b/packages/avatars/src/styled/StyledAvatar.ts index 861a81f56a8..1349cd96b70 100644 --- a/packages/avatars/src/styled/StyledAvatar.ts +++ b/packages/avatars/src/styled/StyledAvatar.ts @@ -6,7 +6,7 @@ */ import styled, { css, ThemeProps, keyframes, DefaultTheme } from 'styled-components'; -import { componentStyles, DEFAULT_THEME, getColor } from '@zendeskgarden/react-theming'; +import { componentStyles, getColor } from '@zendeskgarden/react-theming'; import { math } from 'polished'; import { IAvatarProps, SIZE } from '../types'; @@ -180,10 +180,11 @@ export interface IStyledAvatarProps { /** * Accepts all `
` props */ -export const StyledAvatar = styled.figure.attrs({ +export const StyledAvatar = styled.figure.attrs(({ $size = 'medium' }) => ({ + $size, 'data-garden-id': COMPONENT_ID, 'data-garden-version': PACKAGE_VERSION -})` +}))` display: inline-flex; position: relative; align-items: center; @@ -231,8 +232,3 @@ export const StyledAvatar = styled.figure.attrs({ ${componentStyles}; `; - -StyledAvatar.defaultProps = { - $size: 'medium', - theme: DEFAULT_THEME -}; diff --git a/packages/avatars/src/styled/StyledStandaloneStatusIndicator.ts b/packages/avatars/src/styled/StyledStandaloneStatusIndicator.ts index a9e62d22d63..f1f1e6a4ab5 100644 --- a/packages/avatars/src/styled/StyledStandaloneStatusIndicator.ts +++ b/packages/avatars/src/styled/StyledStandaloneStatusIndicator.ts @@ -6,17 +6,20 @@ */ import styled from 'styled-components'; -import { componentStyles, DEFAULT_THEME } from '@zendeskgarden/react-theming'; +import { componentStyles } from '@zendeskgarden/react-theming'; import { getStatusSize, IStyledStatusIndicatorProps } from './utility'; import { StyledStatusIndicatorBase } from './StyledStatusIndicatorBase'; const COMPONENT_ID = 'avatars.status-indicator.indicator'; -export const StyledStandaloneStatusIndicator = styled(StyledStatusIndicatorBase).attrs({ +export const StyledStandaloneStatusIndicator = styled( + StyledStatusIndicatorBase +).attrs(({ $type = 'offline' }) => ({ 'data-garden-id': COMPONENT_ID, - 'data-garden-version': PACKAGE_VERSION -})` + 'data-garden-version': PACKAGE_VERSION, + $type +}))` position: relative; box-sizing: content-box; margin-top: ${props => @@ -24,8 +27,3 @@ export const StyledStandaloneStatusIndicator = styled(StyledStatusIndicatorBase) ${componentStyles}; `; - -StyledStandaloneStatusIndicator.defaultProps = { - $type: 'offline', - theme: DEFAULT_THEME -}; diff --git a/packages/avatars/src/styled/StyledStatusIndicator.ts b/packages/avatars/src/styled/StyledStatusIndicator.ts index fde7e336c90..7bcd9fea6a9 100644 --- a/packages/avatars/src/styled/StyledStatusIndicator.ts +++ b/packages/avatars/src/styled/StyledStatusIndicator.ts @@ -6,7 +6,7 @@ */ import styled, { css, ThemeProps, DefaultTheme } from 'styled-components'; -import { componentStyles, DEFAULT_THEME, getColor } from '@zendeskgarden/react-theming'; +import { componentStyles, getColor } from '@zendeskgarden/react-theming'; import { math } from 'polished'; import { IAvatarProps, SIZE } from '../types'; @@ -90,17 +90,15 @@ const colorStyles = ({ `; }; -export const StyledStatusIndicator = styled(StyledStatusIndicatorBase).attrs({ - 'data-garden-id': COMPONENT_ID, - 'data-garden-version': PACKAGE_VERSION -})` +export const StyledStatusIndicator = styled(StyledStatusIndicatorBase).attrs( + ({ $size = 'medium' }) => ({ + $size, + 'data-garden-id': COMPONENT_ID, + 'data-garden-version': PACKAGE_VERSION + }) +)` ${sizeStyles} ${colorStyles} ${componentStyles}; `; - -StyledStatusIndicator.defaultProps = { - $size: 'medium', - theme: DEFAULT_THEME -}; diff --git a/packages/avatars/src/styled/StyledStatusIndicatorBase.ts b/packages/avatars/src/styled/StyledStatusIndicatorBase.ts index 98d2e8833f3..e91c3e479d7 100644 --- a/packages/avatars/src/styled/StyledStatusIndicatorBase.ts +++ b/packages/avatars/src/styled/StyledStatusIndicatorBase.ts @@ -6,7 +6,7 @@ */ import styled, { css, keyframes } from 'styled-components'; -import { componentStyles, DEFAULT_THEME, getColor } from '@zendeskgarden/react-theming'; +import { componentStyles, getColor } from '@zendeskgarden/react-theming'; import { TRANSITION_DURATION, @@ -86,10 +86,10 @@ const colorStyles = ({ theme, $type }: IStyledStatusIndicatorProps) => { `; }; -export const StyledStatusIndicatorBase = styled.div.attrs({ +export const StyledStatusIndicatorBase = styled.div.attrs({ 'data-garden-id': COMPONENT_ID, 'data-garden-version': PACKAGE_VERSION -})` +})` transition: inherit; ${sizeStyles} @@ -97,8 +97,3 @@ export const StyledStatusIndicatorBase = styled.div.attrs({ ${componentStyles}; `; - -StyledStatusIndicatorBase.defaultProps = { - theme: DEFAULT_THEME, - $size: 'small' -}; diff --git a/packages/buttons/src/elements/Button.tsx b/packages/buttons/src/elements/Button.tsx index a5b69b6cd0f..93f80f0d83d 100644 --- a/packages/buttons/src/elements/Button.tsx +++ b/packages/buttons/src/elements/Button.tsx @@ -24,7 +24,7 @@ const ButtonComponent = forwardRef( isPill, isPrimary, isStretched, - size, + size = 'medium', ...other }, ref @@ -64,10 +64,6 @@ ButtonComponent.propTypes = { size: PropTypes.oneOf(SIZE) }; -ButtonComponent.defaultProps = { - size: 'medium' -}; - /** * @extends ButtonHTMLAttributes */ diff --git a/packages/buttons/src/elements/ChevronButton.tsx b/packages/buttons/src/elements/ChevronButton.tsx index 4f7047e7436..f484b7b2f47 100644 --- a/packages/buttons/src/elements/ChevronButton.tsx +++ b/packages/buttons/src/elements/ChevronButton.tsx @@ -13,18 +13,14 @@ import { IIconButtonProps } from '../types'; /** * @extends ButtonHTMLAttributes */ -export const ChevronButton = forwardRef((props, ref) => ( - - - -)); +export const ChevronButton = forwardRef( + ({ isBasic = false, isPill = false, size = 'medium', ...props }, ref) => ( + + + + ) +); ChevronButton.displayName = 'ChevronButton'; ChevronButton.propTypes = IconButton.propTypes; - -ChevronButton.defaultProps = { - isBasic: false, - isPill: false, - size: 'medium' -}; diff --git a/packages/buttons/src/elements/IconButton.tsx b/packages/buttons/src/elements/IconButton.tsx index 737fd070efe..c0ad4bccd4c 100644 --- a/packages/buttons/src/elements/IconButton.tsx +++ b/packages/buttons/src/elements/IconButton.tsx @@ -19,13 +19,13 @@ export const IconButton = forwardRef( { children, focusInset, - isBasic, + isBasic = true, isDanger, isNeutral, - isPill, + isPill = true, isPrimary, isRotated, - size, + size = 'medium', ...other }, ref @@ -62,9 +62,3 @@ IconButton.propTypes = { isRotated: PropTypes.bool, size: PropTypes.oneOf(SIZE) }; - -IconButton.defaultProps = { - isPill: true, - isBasic: true, - size: 'medium' -}; diff --git a/packages/buttons/src/elements/ToggleButton.tsx b/packages/buttons/src/elements/ToggleButton.tsx index 3bc1ef5b3f8..616566c1925 100644 --- a/packages/buttons/src/elements/ToggleButton.tsx +++ b/packages/buttons/src/elements/ToggleButton.tsx @@ -14,8 +14,8 @@ import { Button } from './Button'; * @extends ButtonHTMLAttributes */ export const ToggleButton = forwardRef( - ({ isPressed, ...otherProps }, ref) => ( -