From d326d183771211ee8281a435af914c25d6ee6646 Mon Sep 17 00:00:00 2001 From: langermank <18661030+langermank@users.noreply.github.com> Date: Tue, 20 Dec 2022 10:01:23 -0800 Subject: [PATCH 1/5] update prop names, counter as prop --- docs/content/ActionMenu.mdx | 8 +++--- docs/content/Button.mdx | 21 ++++++---------- src/Button/Button.features.stories.tsx | 18 ++++++------- src/Button/Button.stories.tsx | 8 +++--- src/Button/ButtonBase.tsx | 25 +++++++++++++------ src/Button/ButtonCounter.tsx | 17 ------------- src/Button/LinkButton.features.stories.tsx | 4 +-- src/Button/LinkButton.stories.tsx | 8 +++--- src/Button/index.ts | 5 +--- src/Button/types.ts | 4 +-- src/PageHeader/PageHeader.stories.tsx | 2 +- src/PageHeader/examples.stories.tsx | 4 +-- src/UnderlineNav2/styles.ts | 2 +- src/__tests__/Button.types.test.tsx | 4 +-- src/drafts/MarkdownEditor/_Footer.tsx | 4 +-- src/drafts/MarkdownEditor/_ViewSwitch.tsx | 2 +- src/stories/ActionMenu/examples.stories.tsx | 10 ++++---- src/stories/ActionMenu/fixtures.stories.tsx | 4 +-- src/stories/Overlay.stories.tsx | 2 +- src/stories/deprecated/ActionMenu.stories.tsx | 2 +- 20 files changed, 68 insertions(+), 86 deletions(-) delete mode 100644 src/Button/ButtonCounter.tsx diff --git a/docs/content/ActionMenu.mdx b/docs/content/ActionMenu.mdx index 937a06a07d2..78654d5ac89 100644 --- a/docs/content/ActionMenu.mdx +++ b/docs/content/ActionMenu.mdx @@ -182,7 +182,7 @@ const fieldTypes = [ {icon: NumberIcon, name: 'Number'}, {icon: CalendarIcon, name: 'Date'}, {icon: SingleSelectIcon, name: 'Single select'}, - {icon: IterationsIcon, name: 'Iteration'} + {icon: IterationsIcon, name: 'Iteration'}, ] const Example = () => { @@ -191,7 +191,7 @@ const Example = () => { return ( - + {selectedType.name} @@ -275,7 +275,7 @@ render( - + , ) ``` @@ -368,7 +368,7 @@ render( stableApi: true, addressedApiFeedback: false, hasDesignGuidelines: true, - hasFigmaComponent: true + hasFigmaComponent: true, }} /> diff --git a/docs/content/Button.mdx b/docs/content/Button.mdx index 75de1bd279f..549e6379137 100644 --- a/docs/content/Button.mdx +++ b/docs/content/Button.mdx @@ -66,11 +66,11 @@ It is recommended to use an octicon here. ```jsx live <> - - + - @@ -96,17 +96,12 @@ A separate component called `IconButton` is used if the action shows only an ico ``` -### Counter component +### Button with counter -A common use case for primer is a button with a counter component which shows the child count value. -We provide `Button.Counter` as a composite component which requires you to provide a number as child. -The counter will match the `variant` styles of the parent button. +To show a count value as a trailing visual inside `Button`, pass a value to the `count` prop. The counter will match the `variant` styles of the parent button. ```jsx live - + ``` ### Block button @@ -142,12 +137,12 @@ Native ` export const Outline = () => -export const LeadingVisual = () => +export const LeadingVisual = () => -export const TrailingVisual = () => +export const TrailingVisual = () => export const TrailingCounter = () => { const [count, setCount] = useState(0) return ( - ) } @@ -47,23 +46,20 @@ export const InvisibleVariants = () => { return (
- - - -
) diff --git a/src/Button/Button.stories.tsx b/src/Button/Button.stories.tsx index ca84096b269..1975469b573 100644 --- a/src/Button/Button.stories.tsx +++ b/src/Button/Button.stories.tsx @@ -35,8 +35,8 @@ export default { type: 'boolean', }, }, - leadingIcon: OcticonArgType([EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon]), - trailingIcon: OcticonArgType([EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon]), + leadingVisual: OcticonArgType([EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon]), + trailingVisual: OcticonArgType([EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon]), trailingAction: OcticonArgType([TriangleDownIcon]), trailingVisualCount: { control: { @@ -50,8 +50,8 @@ export default { disabled: false, variant: 'default', alignContent: 'center', - trailingIcon: null, - leadingIcon: null, + trailingVisual: null, + leadingVisual: null, trailingAction: null, trailingVisualCount: undefined, }, diff --git a/src/Button/ButtonBase.tsx b/src/Button/ButtonBase.tsx index f31fffa79e4..947fe7e6803 100644 --- a/src/Button/ButtonBase.tsx +++ b/src/Button/ButtonBase.tsx @@ -6,15 +6,17 @@ import {useTheme} from '../ThemeProvider' import {ButtonProps, StyledButton} from './types' import {getVariantStyles, getButtonStyles, getAlignContentSize} from './styles' import {useRefObjectAsForwardedRef} from '../hooks/useRefObjectAsForwardedRef' +import CounterLabel from '../CounterLabel' declare let __DEV__: boolean const defaultSxProp = {} const ButtonBase = forwardRef( ({children, as: Component = 'button', sx: sxProp = defaultSxProp, ...props}, forwardedRef): JSX.Element => { const { - leadingIcon: LeadingIcon, - trailingIcon: TrailingIcon, + leadingVisual: LeadingVisual, + trailingVisual: TrailingVisual, trailingAction: TrailingAction, + trailingVisualCount: trailingVisualCount, variant = 'default', size = 'medium', alignContent = 'center', @@ -61,20 +63,29 @@ const ButtonBase = forwardRef( ref={innerRef} data-component={block ? 'block' : null} data-size={size === 'small' || size === 'large' ? size : undefined} - data-no-visuals={!LeadingIcon && !TrailingIcon && !TrailingAction ? true : undefined} + data-no-visuals={!LeadingVisual && !TrailingVisual && !TrailingAction ? true : undefined} > - {LeadingIcon && ( + {LeadingVisual && ( - + )} {children && {children}} - {TrailingIcon && ( + {TrailingVisual && ( - + )} + {trailingVisualCount !== undefined ? ( + + {trailingVisualCount} + + ) : TrailingVisual ? ( + + + + ) : null} {TrailingAction && ( diff --git a/src/Button/ButtonCounter.tsx b/src/Button/ButtonCounter.tsx deleted file mode 100644 index bc386530d08..00000000000 --- a/src/Button/ButtonCounter.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react' -import {SxProp} from '../sx' -import CounterLabel from '../CounterLabel' - -export type CounterProps = { - children: number -} & SxProp - -const Counter = ({children, sx: sxProp = {}, ...props}: CounterProps) => { - return ( - - {children} - - ) -} - -export {Counter} diff --git a/src/Button/LinkButton.features.stories.tsx b/src/Button/LinkButton.features.stories.tsx index a6ef0c35987..f3e0e390ac4 100644 --- a/src/Button/LinkButton.features.stories.tsx +++ b/src/Button/LinkButton.features.stories.tsx @@ -37,13 +37,13 @@ export const Outline = () => ( ) export const LeadingVisual = () => ( - ) export const TrailingVisual = () => ( - ) diff --git a/src/Button/LinkButton.stories.tsx b/src/Button/LinkButton.stories.tsx index 5ca0dcab065..ee611880bf7 100644 --- a/src/Button/LinkButton.stories.tsx +++ b/src/Button/LinkButton.stories.tsx @@ -30,8 +30,8 @@ export default { type: 'boolean', }, }, - leadingIcon: OcticonArgType([EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon]), - trailingIcon: OcticonArgType([EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon]), + leadingVisual: OcticonArgType([EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon]), + trailingVisual: OcticonArgType([EyeClosedIcon, EyeIcon, SearchIcon, XIcon, HeartIcon]), trailingAction: OcticonArgType([ChevronRightIcon]), trailingVisualCount: { control: { @@ -45,8 +45,8 @@ export default { size: 'medium', variant: 'default', alignContent: 'center', - trailingIcon: null, - leadingIcon: null, + trailingVisual: null, + leadingVisual: null, href: '/', }, } as Meta diff --git a/src/Button/index.ts b/src/Button/index.ts index d0519b22e70..85c1d2bb2bf 100644 --- a/src/Button/index.ts +++ b/src/Button/index.ts @@ -1,10 +1,7 @@ import {ButtonComponent} from './Button' -import {Counter} from './ButtonCounter' import {IconButton} from './IconButton' import {LinkButton} from './LinkButton' export type {ButtonProps, IconButtonProps} from './types' export {IconButton, LinkButton} -export const Button = Object.assign(ButtonComponent, { - Counter, -}) +export const Button = Object.assign(ButtonComponent) diff --git a/src/Button/types.ts b/src/Button/types.ts index f746de8b775..50f8d6a4f9d 100644 --- a/src/Button/types.ts +++ b/src/Button/types.ts @@ -49,11 +49,11 @@ export type ButtonProps = { /** * The leading icon comes before button content */ - leadingIcon?: React.FunctionComponent> + leadingVisual?: React.FunctionComponent> /** * The trailing icon comes after button content */ - trailingIcon?: React.FunctionComponent> + trailingVisual?: React.FunctionComponent> /** * Trailing action appears to the right of the trailing visual and is always locked to the end */ diff --git a/src/PageHeader/PageHeader.stories.tsx b/src/PageHeader/PageHeader.stories.tsx index c781473185d..219321ecc9b 100644 --- a/src/PageHeader/PageHeader.stories.tsx +++ b/src/PageHeader/PageHeader.stories.tsx @@ -203,7 +203,7 @@ const Template: Story = args => (