diff options
| author | Armand Philippot <git@armandphilippot.com> | 2023-10-02 18:07:34 +0200 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2023-11-11 18:14:41 +0100 |
| commit | b52b8183ce299b5a2d3c3b2f4f8cb94bb443d746 (patch) | |
| tree | 2ec276a4ebd5d39b891ff8fe8d8bf45c478fb97e /src/components/atoms/layout | |
| parent | 6221fa82e41915702d8139cade5c25e9d61e619f (diff) | |
refactor(components): rewrite Notice component
* Rename message prop to children prop and set ReactNode as type
Diffstat (limited to 'src/components/atoms/layout')
| -rw-r--r-- | src/components/atoms/layout/index.ts | 1 | ||||
| -rw-r--r-- | src/components/atoms/layout/notice.module.scss | 27 | ||||
| -rw-r--r-- | src/components/atoms/layout/notice.stories.tsx | 86 | ||||
| -rw-r--r-- | src/components/atoms/layout/notice.test.tsx | 12 | ||||
| -rw-r--r-- | src/components/atoms/layout/notice.tsx | 36 |
5 files changed, 0 insertions, 162 deletions
diff --git a/src/components/atoms/layout/index.ts b/src/components/atoms/layout/index.ts index 9f467dc..3f2f8dc 100644 --- a/src/components/atoms/layout/index.ts +++ b/src/components/atoms/layout/index.ts @@ -5,5 +5,4 @@ export * from './footer'; export * from './header'; export * from './main'; export * from './nav'; -export * from './notice'; export * from './section'; diff --git a/src/components/atoms/layout/notice.module.scss b/src/components/atoms/layout/notice.module.scss deleted file mode 100644 index b532464..0000000 --- a/src/components/atoms/layout/notice.module.scss +++ /dev/null @@ -1,27 +0,0 @@ -@use "../../../styles/abstracts/functions" as fun; - -.wrapper { - padding: var(--spacing-2xs) var(--spacing-xs); - border: fun.convert-px(2) solid; - font-weight: bold; - - &--error { - border-color: var(--color-token-red); - color: var(--color-token-red); - } - - &--info { - border-color: var(--color-token-blue); - color: var(--color-token-blue); - } - - &--success { - border-color: var(--color-token-green); - color: var(--color-token-green); - } - - &--warning { - border-color: var(--color-token-orange); - color: var(--color-token-orange); - } -} diff --git a/src/components/atoms/layout/notice.stories.tsx b/src/components/atoms/layout/notice.stories.tsx deleted file mode 100644 index 57dddb3..0000000 --- a/src/components/atoms/layout/notice.stories.tsx +++ /dev/null @@ -1,86 +0,0 @@ -import { ComponentMeta, ComponentStory } from '@storybook/react'; -import { Notice as NoticeComponent } from './notice'; - -/** - * Notice - Storybook Meta - */ -export default { - title: 'Atoms/Layout/Notice', - component: NoticeComponent, - argTypes: { - className: { - control: { - type: 'text', - }, - description: 'Set additional classnames to the notice wrapper.', - table: { - category: 'Styles', - }, - type: { - name: 'string', - required: false, - }, - }, - kind: { - control: { - type: 'select', - }, - description: 'The notice kind.', - options: ['error', 'info', 'success', 'warning'], - type: { - name: 'string', - required: true, - }, - }, - message: { - control: { - type: 'text', - }, - description: 'The notice body.', - type: { - name: 'string', - required: true, - }, - }, - }, -} as ComponentMeta<typeof NoticeComponent>; - -const Template: ComponentStory<typeof NoticeComponent> = (args) => ( - <NoticeComponent {...args} /> -); - -/** - * Notice stories - Error - */ -export const Error = Template.bind({}); -Error.args = { - kind: 'error', - message: 'Nisi provident sapiente.', -}; - -/** - * Notice stories - Info - */ -export const Info = Template.bind({}); -Info.args = { - kind: 'info', - message: 'Nisi provident sapiente.', -}; - -/** - * Notice stories - Success - */ -export const Success = Template.bind({}); -Success.args = { - kind: 'success', - message: 'Nisi provident sapiente.', -}; - -/** - * Notice stories - Warning - */ -export const Warning = Template.bind({}); -Warning.args = { - kind: 'warning', - message: 'Nisi provident sapiente.', -}; diff --git a/src/components/atoms/layout/notice.test.tsx b/src/components/atoms/layout/notice.test.tsx deleted file mode 100644 index f5213e4..0000000 --- a/src/components/atoms/layout/notice.test.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { describe, expect, it } from '@jest/globals'; -import { render, screen } from '../../../../tests/utils'; -import { Notice } from './notice'; - -const message = 'Tenetur consequuntur tempore.'; - -describe('Notice', () => { - it('renders a message', () => { - render(<Notice kind="info" message={message} />); - expect(screen.getByText(message)).toBeInTheDocument(); - }); -}); diff --git a/src/components/atoms/layout/notice.tsx b/src/components/atoms/layout/notice.tsx deleted file mode 100644 index 9f69af2..0000000 --- a/src/components/atoms/layout/notice.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { FC, HTMLAttributes } from 'react'; -import styles from './notice.module.scss'; - -export type NoticeKind = 'error' | 'info' | 'success' | 'warning'; - -export type NoticeProps = Omit<HTMLAttributes<HTMLElement>, 'children'> & { - /** - * The notice kind. - */ - kind: NoticeKind; - /** - * The notice body. - */ - message: string; -}; - -/** - * Notice component - * - * Render a colored message depending on notice kind. - */ -export const Notice: FC<NoticeProps> = ({ - className = '', - kind, - message, - ...props -}) => { - const kindClass = `wrapper--${kind}`; - const noticeClass = `${styles.wrapper} ${styles[kindClass]} ${className}`; - - return ( - <div {...props} className={noticeClass}> - {message} - </div> - ); -}; |
