aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/atoms/layout
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-04-29 18:35:41 +0200
committerArmand Philippot <git@armandphilippot.com>2022-04-29 18:35:41 +0200
commit2652fe4d5ee4451a0c9b52996844d90c66dfdfe0 (patch)
tree00ff905079345b059d4001f06fc30cc833e5dcf9 /src/components/atoms/layout
parent7e16f500cb7bc0cfd8bafbf6bb1555704f771231 (diff)
chore: add a Column component
Diffstat (limited to 'src/components/atoms/layout')
-rw-r--r--src/components/atoms/layout/column.stories.tsx29
-rw-r--r--src/components/atoms/layout/column.test.tsx12
-rw-r--r--src/components/atoms/layout/column.tsx16
3 files changed, 57 insertions, 0 deletions
diff --git a/src/components/atoms/layout/column.stories.tsx b/src/components/atoms/layout/column.stories.tsx
new file mode 100644
index 0000000..a03c462
--- /dev/null
+++ b/src/components/atoms/layout/column.stories.tsx
@@ -0,0 +1,29 @@
+import { ComponentMeta, ComponentStory } from '@storybook/react';
+import ColumnComponent from './column';
+
+export default {
+ title: 'Atoms/Layout/Column',
+ component: ColumnComponent,
+ argTypes: {
+ children: {
+ description: 'The column body.',
+ type: {
+ name: 'array',
+ required: true,
+ value: {},
+ },
+ },
+ },
+} as ComponentMeta<typeof ColumnComponent>;
+
+const Template: ComponentStory<typeof ColumnComponent> = (args) => (
+ <ColumnComponent {...args} />
+);
+
+const body =
+ 'Non praesentium voluptas quisquam ex est. Distinctio accusamus facilis libero in aut. Et veritatis quo impedit fugit amet sit accusantium. Ut est rerum asperiores sint libero eveniet. Molestias placeat recusandae suscipit eligendi sunt hic.';
+
+export const Column = Template.bind({});
+Column.args = {
+ children: body,
+};
diff --git a/src/components/atoms/layout/column.test.tsx b/src/components/atoms/layout/column.test.tsx
new file mode 100644
index 0000000..c5c6554
--- /dev/null
+++ b/src/components/atoms/layout/column.test.tsx
@@ -0,0 +1,12 @@
+import { render, screen } from '@test-utils';
+import Column from './column';
+
+const body =
+ 'Non praesentium voluptas quisquam ex est. Distinctio accusamus facilis libero in aut. Et veritatis quo impedit fugit amet sit accusantium. Ut est rerum asperiores sint libero eveniet. Molestias placeat recusandae suscipit eligendi sunt hic.';
+
+describe('Column', () => {
+ it('renders the column body', () => {
+ render(<Column>{body}</Column>);
+ expect(screen.getByText(body)).toBeInTheDocument();
+ });
+});
diff --git a/src/components/atoms/layout/column.tsx b/src/components/atoms/layout/column.tsx
new file mode 100644
index 0000000..ec6440d
--- /dev/null
+++ b/src/components/atoms/layout/column.tsx
@@ -0,0 +1,16 @@
+import { FC, ReactNode } from 'react';
+
+export type ColumnProps = {
+ children: ReactNode | ReactNode[];
+};
+
+/**
+ * Column component.
+ *
+ * Render the body as a column.
+ */
+const Column: FC<ColumnProps> = ({ children }) => {
+ return <div>{children}</div>;
+};
+
+export default Column;