From 12657313443611d4c0abe6c2ef91fa3c023b108a Mon Sep 17 00:00:00 2001 From: Garrett Bear Date: Fri, 13 Jan 2023 13:58:09 -0800 Subject: [PATCH] Feat/16637/button housekeeping (#16872) * button housekeeping * add iconsearch * fix description * readme update * update disabled classnames * buttonlink disabled class * add disabled proptypes * add constant exports * update disabled style classes * update snapshot for box pill classname * add buttonTextProps * update primarybutton background color to use box props * update button secondary and link to use box props * update tests --- .../component-library/button-base/README.mdx | 8 ++--- .../__snapshots__/button-base.test.js.snap | 4 +-- .../button-base/button-base.js | 33 +++++++++++------ .../button-base/button-base.scss | 8 ++--- .../button-base/button-base.stories.js | 4 +-- .../button-base/button-base.test.js | 26 +++++++------- .../component-library/button-link/README.mdx | 10 +++--- .../__snapshots__/button-link.test.js.snap | 4 +-- .../button-link/button-link.js | 9 ++++- .../button-link/button-link.scss | 12 +++---- .../button-link/button-link.stories.js | 2 +- .../button-link/button-link.test.js | 26 ++++++++------ .../__snapshots__/button-primary.test.js.snap | 4 +-- .../button-primary/button-primary.js | 11 +++++- .../button-primary/button-primary.scss | 32 ++++++++--------- .../button-primary/button-primary.test.js | 18 +++++----- .../button-secondary.test.js.snap | 4 +-- .../button-secondary/button-secondary.js | 12 ++++++- .../button-secondary/button-secondary.scss | 35 +++++++++--------- .../button-secondary/button-secondary.test.js | 18 +++++----- .../component-library/button/README.mdx | 36 ++++++++++++------- .../button/__snapshots__/button.test.js.snap | 16 ++++----- .../button/button.stories.js | 14 ++++---- .../component-library/button/button.test.js | 26 +++++++------- .../component-library/button/index.js | 2 +- .../form-text-field/README.mdx | 2 +- .../form-text-field.stories.js | 2 +- ui/components/component-library/index.js | 10 +++--- .../component-library/text/text.scss | 2 +- 29 files changed, 216 insertions(+), 174 deletions(-) diff --git a/ui/components/component-library/button-base/README.mdx b/ui/components/component-library/button-base/README.mdx index 76d630f88..d481d3ecf 100644 --- a/ui/components/component-library/button-base/README.mdx +++ b/ui/components/component-library/button-base/README.mdx @@ -128,17 +128,17 @@ import { ButtonBase } from '../../ui/components/component-library'; Loading Button; ``` -### Icon +### Icon Name -Use the `icon` prop and the `ICON_NAMES` object from `./ui/components/component-library` to select icon. +Use the `iconName` prop and the `ICON_NAMES` object from `./ui/components/component-library` to select icon. - + ```jsx import { ButtonBase } from '../../ui/components/component-library'; import { ICON_NAMES } from '../icon'; -Button; +Button; ``` diff --git a/ui/components/component-library/button-base/__snapshots__/button-base.test.js.snap b/ui/components/component-library/button-base/__snapshots__/button-base.test.js.snap index 0552ad695..fc9a3a459 100644 --- a/ui/components/component-library/button-base/__snapshots__/button-base.test.js.snap +++ b/ui/components/component-library/button-base/__snapshots__/button-base.test.js.snap @@ -3,11 +3,11 @@ exports[`ButtonBase should render button element correctly and match snapshot 1`] = `
@@ -81,16 +91,16 @@ import { Button } from '../ui/component-library/button/button/button'; ### Href -When an `href` is passed the tag element will switch to an `anchor`(`a`) tag. +When an `href` prop is passed it will change the element to an anchor(`a`) tag. ```jsx -import { Button } from '../ui/component-library/button/button/button'; +import { Button } from '../ui/component-library'; -; +; ``` ### Block @@ -162,17 +172,19 @@ import { Button } from '../ui/component-library'; ; ``` -### Icon +### Icon Name -Use the `icon` prop and the `ICON_NAMES` object from `./ui/components/component-library/icon` to select icon. +Use the `iconName` prop and the `ICON_NAMES` object from `./ui/components/component-library/icon` to select icon. + +Use the [IconSearch](/story/ui-components-component-library-icon-icon-stories-js--default-story) story to find the icon you want to use. - + ```jsx import { Button } from '../ui/component-library'; import { ICON_NAMES } from '../icon'; -; +; ``` diff --git a/ui/components/component-library/button/__snapshots__/button.test.js.snap b/ui/components/component-library/button/__snapshots__/button.test.js.snap index 3e4f25c38..c147799f7 100644 --- a/ui/components/component-library/button/__snapshots__/button.test.js.snap +++ b/ui/components/component-library/button/__snapshots__/button.test.js.snap @@ -3,11 +3,11 @@ exports[`Button should render button element correctly 1`] = `
; +export const Href = (args) => ; Href.args = { href: '/metamask', @@ -205,8 +205,8 @@ Loading.args = { loading: true, }; -export const Icon = (args) => ( - -); +export const IconName = (args) => ; + +IconName.args = { + iconName: ICON_NAMES.ADD_SQUARE_FILLED, +}; diff --git a/ui/components/component-library/button/button.test.js b/ui/components/component-library/button/button.test.js index 8f4f288e8..f63e2bcda 100644 --- a/ui/components/component-library/button/button.test.js +++ b/ui/components/component-library/button/button.test.js @@ -11,7 +11,7 @@ describe('Button', () => { ); expect(getByText('Button')).toBeDefined(); expect(container.querySelector('button')).toBeDefined(); - expect(getByTestId('button')).toHaveClass('mm-button'); + expect(getByTestId('button')).toHaveClass('mm-button-base'); expect(container).toMatchSnapshot(); }); @@ -21,7 +21,7 @@ describe('Button', () => { Button , ); - expect(getByTestId('button')).toHaveClass('mm-button'); + expect(getByTestId('button')).toHaveClass('mm-button-base'); const anchor = container.getElementsByTagName('a').length; expect(anchor).toBe(1); }); @@ -32,14 +32,14 @@ describe('Button', () => { Visit Site , ); - expect(getByTestId('button')).toHaveClass('mm-button'); + expect(getByTestId('button')).toHaveClass('mm-button-base'); const anchor = container.getElementsByTagName('a').length; expect(anchor).toBe(1); }); it('should render button as block', () => { const { getByTestId } = render(, ); - expect(getByTestId('classname')).toHaveClass('mm-button--test'); + expect(getByTestId('classname')).toHaveClass('mm-button-base--test'); }); it('should render with different button states', () => { @@ -126,14 +126,14 @@ describe('Button', () => { , ); - expect(getByTestId('loading')).toHaveClass(`mm-button--loading`); - expect(getByTestId('disabled')).toHaveClass(`mm-button--disabled`); + expect(getByTestId('loading')).toHaveClass(`mm-button-base--loading`); + expect(getByTestId('disabled')).toHaveClass(`mm-button-base--disabled`); }); it('should render with icon', () => { const { getByTestId } = render(