From 54f0a0d1dfba3e20446ee142e7939b51aa0bf189 Mon Sep 17 00:00:00 2001 From: Josefina Mancilla Date: Fri, 16 Apr 2021 15:12:43 -0500 Subject: [PATCH 1/7] feat: add toggle skeleton stories --- .../src/components/Toggle/Toggle-story.js | 68 +++++++++++++------ .../src/components/Toggle/Toggle.Skeleton.js | 17 +++-- .../ToggleSmall/ToggleSmall-story.js | 33 +++++++++ 3 files changed, 90 insertions(+), 28 deletions(-) diff --git a/packages/react/src/components/Toggle/Toggle-story.js b/packages/react/src/components/Toggle/Toggle-story.js index 22c4ca0b0068..9f7d8493a1f8 100644 --- a/packages/react/src/components/Toggle/Toggle-story.js +++ b/packages/react/src/components/Toggle/Toggle-story.js @@ -6,28 +6,9 @@ */ import React from 'react'; -import { action } from '@storybook/addon-actions'; -import { withKnobs, text, boolean, select } from '@storybook/addon-knobs'; +import { withKnobs, boolean } from '@storybook/addon-knobs'; import Toggle from '../Toggle'; - -const sizes = { - 'Small (sm)': 'sm', - 'Medium (md) - default': undefined, -}; - -const toggleProps = () => ({ - labelText: text( - 'Label toggle input control (labelText)', - 'Toggle element label' - ), - className: 'some-class', - labelA: text('Label for untoggled state (labelA)', 'Off'), - labelB: text('Label for toggled state (labelB)', 'On'), - disabled: boolean('Disabled (disabled)', false), - onChange: action('onChange'), - onToggle: action('onToggle'), - size: select('Field size (size)', sizes, undefined) || undefined, -}); +import ToggleSkeleton from '../Toggle/Toggle.Skeleton'; export default { title: 'Components/Toggle', @@ -42,8 +23,10 @@ export default { export const Default = () => ( ); @@ -60,3 +43,44 @@ Default.parameters = { `, }, }; + +export const Small = () => ( + +); + +export const Skeleton = () => { + const isLoading = boolean('isLoading', true); + + return ( +
+ {isLoading ? ( + <> + +
+ + + ) : ( + + )} +
+ ); +}; diff --git a/packages/react/src/components/Toggle/Toggle.Skeleton.js b/packages/react/src/components/Toggle/Toggle.Skeleton.js index 1255f17af214..5ad9954285b8 100644 --- a/packages/react/src/components/Toggle/Toggle.Skeleton.js +++ b/packages/react/src/components/Toggle/Toggle.Skeleton.js @@ -32,22 +32,27 @@ export default class ToggleSkeleton extends React.Component { * provided */ labelText: PropTypes.string, + + /** + * Specify the size of the Toggle. Currently only supports 'sm' or 'md' (default) + */ + size: PropTypes.oneOf(['sm', 'md']), }; static defaultProps = { ['aria-label']: 'Toggle is loading', + size: 'md', }; render() { - const { id, labelText, className, ...rest } = this.props; + const { id, labelText, className, size, ...rest } = this.props; + const toggleInputClassNames = cx(`${prefix}--toggle ${prefix}--skeleton`, { + [`${prefix}--toggle-input--small`]: size === 'sm', + }); return (
- +