diff --git a/.changeset/funny-eyes-shop.md b/.changeset/funny-eyes-shop.md new file mode 100644 index 0000000000..0061d5313c --- /dev/null +++ b/.changeset/funny-eyes-shop.md @@ -0,0 +1,5 @@ +--- +'@channel.io/bezier-react': patch +--- + +Add truncated props in the Badge diff --git a/packages/bezier-react/src/components/Badge/Badge.stories.tsx b/packages/bezier-react/src/components/Badge/Badge.stories.tsx index 27fc3867f0..fde06f9d40 100644 --- a/packages/bezier-react/src/components/Badge/Badge.stories.tsx +++ b/packages/bezier-react/src/components/Badge/Badge.stories.tsx @@ -1,6 +1,8 @@ import { AppleIcon } from '@channel.io/bezier-icons' import { type Meta, type StoryFn, type StoryObj } from '@storybook/react' +import { Box } from '~/src/components/Box' + import { Badge } from './Badge' import { type BadgeProps } from './Badge.types' @@ -14,6 +16,12 @@ const Template: StoryFn = ({ children, ...badgeProps }) => ( {children} ) +const Truncated: StoryFn = ({ children, ...badgeProps }) => ( + + {children} + +) + export const Primary: StoryObj = { render: Template, @@ -24,3 +32,16 @@ export const Primary: StoryObj = { variant: 'default', }, } + +export const Secondary: StoryObj = { + render: Truncated, + + args: { + children: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.', + size: 'm', + icon: AppleIcon, + variant: 'default', + truncated: true, + }, + name: 'Truncated', +} diff --git a/packages/bezier-react/src/components/Badge/Badge.tsx b/packages/bezier-react/src/components/Badge/Badge.tsx index 9b3b7e1e35..79d52477b9 100644 --- a/packages/bezier-react/src/components/Badge/Badge.tsx +++ b/packages/bezier-react/src/components/Badge/Badge.tsx @@ -26,7 +26,7 @@ export const BADGE_TEST_ID = 'bezier-badge' */ export const Badge = memo( forwardRef(function Badge( - { size = 'm', variant = 'default', icon, children, ...rest }, + { size = 'm', variant = 'default', truncated ,icon, children, ...rest }, forwardedRef ) { return ( @@ -48,6 +48,7 @@ export const Badge = memo( {children} diff --git a/packages/bezier-react/src/components/Badge/Badge.types.ts b/packages/bezier-react/src/components/Badge/Badge.types.ts index 77b2f3a672..8045e43701 100644 --- a/packages/bezier-react/src/components/Badge/Badge.types.ts +++ b/packages/bezier-react/src/components/Badge/Badge.types.ts @@ -21,6 +21,12 @@ interface BadgeOwnProps { * Icon to be shown on the left side of the badge. */ icon?: BezierIcon + /** + * Whether the text is truncated. + * If it is a positive integer, it means the maximum number of lines. + * @default false + */ + truncated?: boolean | number } export interface BadgeProps