Skip to content

Commit 35d9dfd

Browse files
authored
fix(disclosure): allow headers to truncate correctly (#1332)
* fix(disclosure): allow headers to truncate correctly * chore: changeset
1 parent 8968215 commit 35d9dfd

File tree

3 files changed

+34
-24
lines changed

3 files changed

+34
-24
lines changed

.changeset/pretty-pianos-clean.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@twilio-paste/disclosure': patch
3+
'@twilio-paste/core': patch
4+
---
5+
6+
Fixed truncation on Disclosure headings when using Truncate component

packages/paste-core/components/disclosure/src/DisclosureHeading.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ const StyledDisclosureHeading = React.forwardRef<HTMLDivElement, StyledDisclosur
6666
size={IconSizeFromHeading[variant] || 'sizeIcon20'}
6767
/>
6868
</Box>
69-
<Box flexGrow={1}>{children}</Box>
69+
<Box display="flex" flexGrow={1} minWidth="0px">
70+
{children}
71+
</Box>
7072
</Box>
7173
</Heading>
7274
);

packages/paste-core/components/disclosure/stories/index.stories.tsx

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
import * as React from 'react';
2-
import {withKnobs, text, select} from '@storybook/addon-knobs';
3-
import type {HeadingProps} from '@twilio-paste/heading';
2+
import {Box} from '@twilio-paste/box';
43
import {Stack} from '@twilio-paste/stack';
4+
import {Truncate} from '@twilio-paste/truncate';
55
import {Paragraph} from '@twilio-paste/paragraph';
66
import {Disclosure, DisclosureContent, DisclosureHeading, useDisclosureState} from '../src';
77
import type {DisclosureHeadingProps, DisclosureInitialState, DisclosureStateReturn, DisclosureVariants} from '../src';
88

9-
const headingVariantOptions = ['heading10', 'heading20', 'heading30', 'heading40', 'heading50', 'heading60'];
10-
119
export const ExampleDisclosures: React.FC<{
1210
disabled?: boolean;
1311
variant?: DisclosureVariants;
@@ -63,30 +61,12 @@ const useDelayedDisclosureState = ({delay, ...initialState}: UseDelayedDisclosur
6361
// eslint-disable-next-line import/no-default-export
6462
export default {
6563
title: 'Components/Disclosure',
66-
decorators: [withKnobs],
64+
decorators: [],
6765
excludeStories: ['ExampleDisclosures'],
6866
component: Disclosure,
6967
subcomponents: {DisclosureHeading, DisclosureContent},
7068
};
7169

72-
export const AllVariants = (): React.ReactNode => {
73-
const asOptions = text('as', 'h2') as HeadingProps['as'];
74-
const headingVariantValue = select('heading variant', headingVariantOptions, 'heading10') as HeadingProps['variant'];
75-
const variantOptions = select('disclosure variant', ['default', 'contained'], 'default');
76-
return (
77-
<Disclosure variant={variantOptions}>
78-
<DisclosureHeading as={asOptions} variant={headingVariantValue}>
79-
Disclosure trigger as heading
80-
</DisclosureHeading>
81-
<DisclosureContent>Disclosure content</DisclosureContent>
82-
</Disclosure>
83-
);
84-
};
85-
86-
AllVariants.story = {
87-
name: 'All variants',
88-
};
89-
9070
export const HeadingVariant10 = (): React.ReactNode => {
9171
return <ExampleDisclosures headingVariant="heading10" />;
9272
};
@@ -176,6 +156,28 @@ MultilineHeading.story = {
176156
name: 'Multiline heading',
177157
};
178158

159+
export const TruncatedHeader = (): React.ReactNode => {
160+
return (
161+
<Box width="size40">
162+
<Disclosure variant="contained">
163+
<DisclosureHeading as="h3" variant="heading30">
164+
<Truncate>This is a really long header with truncation</Truncate>
165+
</DisclosureHeading>
166+
<DisclosureContent>
167+
Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Fusce dapibus, tellus ac cursus
168+
commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Lorem ipsum dolor sit amet,
169+
consectetur adipiscing elit. Nullam quis risus eget urna mollis ornare vel eu leo. Nulla vitae elit libero, a
170+
pharetra augue.
171+
</DisclosureContent>
172+
</Disclosure>
173+
</Box>
174+
);
175+
};
176+
177+
TruncatedHeader.story = {
178+
name: 'Truncated Header',
179+
};
180+
179181
export const ContainedHeadingVariant10 = (): React.ReactNode => {
180182
return <ExampleDisclosures headingVariant="heading10" variant="contained" />;
181183
};

0 commit comments

Comments
 (0)