Skip to content

Commit ec7c86d

Browse files
committed
adds maxWidth prop to SkeletonDisplayText
1 parent 61cacbf commit ec7c86d

File tree

5 files changed

+38
-5
lines changed

5 files changed

+38
-5
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@shopify/polaris': minor
3+
---
4+
5+
Added `maxWidth` prop to SkeletonDisplayText component

polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.scss

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
@import '../../styles/common';
22

3-
$skeleton-display-text-max-width: 120px;
4-
53
@mixin skeleton-display-text-height {
64
// stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY
75
height: var(--pc-skeleton-display-text-height);
@@ -18,8 +16,9 @@ $skeleton-display-text-max-width: 120px;
1816
--pc-skeleton-display-text-height-not-condensed: var(
1917
--p-font-line-height-500
2018
);
19+
2120
// stylelint-enable
22-
max-width: $skeleton-display-text-max-width;
21+
max-width: var(--pc-skeleton-display-text-max-width, 120px);
2322

2423
display: flex;
2524
background-color: var(--p-color-bg-fill-tertiary);

polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.stories.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,7 @@ export function ExtraLarge() {
1717
export function Small() {
1818
return <SkeletonDisplayText size="small" />;
1919
}
20+
21+
export function MaxWidth() {
22+
return <SkeletonDisplayText maxWidth="80%" />;
23+
}

polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.tsx

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import React from 'react';
22

3-
import {classNames, variationName} from '../../utilities/css';
3+
import {
4+
classNames,
5+
sanitizeCustomProperties,
6+
variationName,
7+
} from '../../utilities/css';
48

59
import styles from './SkeletonDisplayText.scss';
610

@@ -12,15 +16,25 @@ export interface SkeletonDisplayTextProps {
1216
* @default 'medium'
1317
*/
1418
size?: Size;
19+
/**
20+
* Adjusts max-width
21+
* @default undefined
22+
*/
23+
maxWidth?: `${number}ch` | `${number}%`;
1524
}
1625

1726
export function SkeletonDisplayText({
1827
size = 'medium',
28+
maxWidth,
1929
}: SkeletonDisplayTextProps) {
2030
const className = classNames(
2131
styles.DisplayText,
2232
size && styles[variationName('size', size)],
2333
);
2434

25-
return <div className={className} />;
35+
const style = {
36+
'--pc-skeleton-display-text-max-width': maxWidth ? maxWidth : undefined,
37+
} as React.CSSProperties;
38+
39+
return <div className={className} style={sanitizeCustomProperties(style)} />;
2640
}

polaris-react/src/components/SkeletonDisplayText/tests/SkeletonDisplayText.test.tsx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,15 @@ describe('<SkeletonDisplayText />', () => {
88
const skeletonBodyText = mountWithApp(<SkeletonDisplayText />);
99
expect(skeletonBodyText).toContainReactComponent('div');
1010
});
11+
12+
it('renders with maxWidth prop', () => {
13+
const skeletonBodyText = mountWithApp(
14+
<SkeletonDisplayText maxWidth="75ch" />,
15+
);
16+
expect(skeletonBodyText).toContainReactComponent('div', {
17+
style: {
18+
'--pc-skeleton-display-text-max-width': '75ch',
19+
} as React.CSSProperties,
20+
});
21+
});
1122
});

0 commit comments

Comments
 (0)