aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/atoms/layout
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2023-10-02 18:07:34 +0200
committerArmand Philippot <git@armandphilippot.com>2023-11-11 18:14:41 +0100
commitb52b8183ce299b5a2d3c3b2f4f8cb94bb443d746 (patch)
tree2ec276a4ebd5d39b891ff8fe8d8bf45c478fb97e /src/components/atoms/layout
parent6221fa82e41915702d8139cade5c25e9d61e619f (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.ts1
-rw-r--r--src/components/atoms/layout/notice.module.scss27
-rw-r--r--src/components/atoms/layout/notice.stories.tsx86
-rw-r--r--src/components/atoms/layout/notice.test.tsx12
-rw-r--r--src/components/atoms/layout/notice.tsx36
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>
- );
-};