From 092e4555e01fe5b0faa69237e883a6aac4d2907b Mon Sep 17 00:00:00 2001 From: Ryan Schingeck <97745931+ryanschingeck@users.noreply.github.com> Date: Thu, 30 Nov 2023 09:36:38 -0500 Subject: [PATCH 1/2] adds maxWidth prop to SkeletonDisplayText --- .changeset/plenty-papayas-repair.md | 5 +++++ .../SkeletonDisplayText.scss | 11 ++++++----- .../SkeletonDisplayText.stories.tsx | 4 ++++ .../SkeletonDisplayText.tsx | 18 ++++++++++++++++-- .../tests/SkeletonDisplayText.test.tsx | 11 +++++++++++ 5 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 .changeset/plenty-papayas-repair.md diff --git a/.changeset/plenty-papayas-repair.md b/.changeset/plenty-papayas-repair.md new file mode 100644 index 00000000000..63f74503069 --- /dev/null +++ b/.changeset/plenty-papayas-repair.md @@ -0,0 +1,5 @@ +--- +'@shopify/polaris': minor +--- + +Added `maxWidth` prop to SkeletonDisplayText component diff --git a/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.scss b/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.scss index fac0aff63f6..231ddce8348 100644 --- a/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.scss +++ b/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.scss @@ -1,7 +1,5 @@ @import '../../styles/common'; -$skeleton-display-text-max-width: 120px; - @mixin skeleton-display-text-height { // stylelint-disable-next-line -- generated by polaris-migrator DO NOT COPY height: var(--pc-skeleton-display-text-height); @@ -13,13 +11,16 @@ $skeleton-display-text-max-width: 120px; } .DisplayText { - // stylelint-disable -- Polaris component custom properties + // stylelint-disable-next-line -- Polaris component custom properties --pc-skeleton-display-text-height: var(--p-font-line-height-500); + + // stylelint-disable-next-line -- Polaris component custom properties --pc-skeleton-display-text-height-not-condensed: var( --p-font-line-height-500 ); - // stylelint-enable - max-width: $skeleton-display-text-max-width; + + // stylelint-disable-next-line -- Polaris component custom properties + max-width: var(--pc-skeleton-display-text-max-width, 120px); display: flex; background-color: var(--p-color-bg-fill-tertiary); diff --git a/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.stories.tsx b/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.stories.tsx index ee612ba32c6..bbbad977479 100644 --- a/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.stories.tsx +++ b/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.stories.tsx @@ -17,3 +17,7 @@ export function ExtraLarge() { export function Small() { return ; } + +export function MaxWidth() { + return ; +} diff --git a/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.tsx b/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.tsx index d8247b5215c..02c31a33b30 100644 --- a/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.tsx +++ b/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.tsx @@ -1,6 +1,10 @@ import React from 'react'; -import {classNames, variationName} from '../../utilities/css'; +import { + classNames, + sanitizeCustomProperties, + variationName, +} from '../../utilities/css'; import styles from './SkeletonDisplayText.scss'; @@ -12,15 +16,25 @@ export interface SkeletonDisplayTextProps { * @default 'medium' */ size?: Size; + /** + * Adjusts max-width + * @default undefined + */ + maxWidth?: `${number}ch` | `${number}%`; } export function SkeletonDisplayText({ size = 'medium', + maxWidth, }: SkeletonDisplayTextProps) { const className = classNames( styles.DisplayText, size && styles[variationName('size', size)], ); - return
; + const style = { + '--pc-skeleton-display-text-max-width': maxWidth ? maxWidth : undefined, + } as React.CSSProperties; + + return
; } diff --git a/polaris-react/src/components/SkeletonDisplayText/tests/SkeletonDisplayText.test.tsx b/polaris-react/src/components/SkeletonDisplayText/tests/SkeletonDisplayText.test.tsx index b5511bb9714..92efe6d31ee 100644 --- a/polaris-react/src/components/SkeletonDisplayText/tests/SkeletonDisplayText.test.tsx +++ b/polaris-react/src/components/SkeletonDisplayText/tests/SkeletonDisplayText.test.tsx @@ -8,4 +8,15 @@ describe('', () => { const skeletonBodyText = mountWithApp(); expect(skeletonBodyText).toContainReactComponent('div'); }); + + it('renders with maxWidth prop', () => { + const skeletonBodyText = mountWithApp( + , + ); + expect(skeletonBodyText).toContainReactComponent('div', { + style: { + '--pc-skeleton-display-text-max-width': '75ch', + } as React.CSSProperties, + }); + }); }); From 602b44ef16101567d86b33595a0537b89b7ac75f Mon Sep 17 00:00:00 2001 From: Ryan Schingeck <97745931+ryanschingeck@users.noreply.github.com> Date: Fri, 1 Dec 2023 15:32:53 -0500 Subject: [PATCH 2/2] fixes based on PR feedback --- .../components/SkeletonDisplayText/SkeletonDisplayText.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.tsx b/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.tsx index 02c31a33b30..daea1d25b5c 100644 --- a/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.tsx +++ b/polaris-react/src/components/SkeletonDisplayText/SkeletonDisplayText.tsx @@ -17,8 +17,8 @@ export interface SkeletonDisplayTextProps { */ size?: Size; /** - * Adjusts max-width - * @default undefined + * Maxium width of the text + * @default '120px' */ maxWidth?: `${number}ch` | `${number}%`; } @@ -33,7 +33,7 @@ export function SkeletonDisplayText({ ); const style = { - '--pc-skeleton-display-text-max-width': maxWidth ? maxWidth : undefined, + '--pc-skeleton-display-text-max-width': maxWidth ?? undefined, } as React.CSSProperties; return
;