diff --git a/libs/ui/src/organisms/filter/filter.stories.tsx b/libs/ui/src/organisms/filter/filter.stories.tsx new file mode 100644 index 0000000..9f9a7b2 --- /dev/null +++ b/libs/ui/src/organisms/filter/filter.stories.tsx @@ -0,0 +1,21 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import { Filter } from './filter'; + +const meta: Meta = { + title: 'Organisms/Filter', + component: Filter, + tags: ['autodocs'], + parameters: { + backgrounds: { + default: 'neutral', + values: [{ name: 'neutral', value: '#e7e7e7' }], + }, + }, +} satisfies Meta; + +export default meta; +type Story = StoryObj; + +export const Default: Story = { + args: {}, +}; diff --git a/libs/ui/src/organisms/filter/filter.tsx b/libs/ui/src/organisms/filter/filter.tsx new file mode 100644 index 0000000..0dc2567 --- /dev/null +++ b/libs/ui/src/organisms/filter/filter.tsx @@ -0,0 +1,87 @@ +import { CloseOutlined } from '@ant-design/icons'; +import { useState } from 'react'; + +interface RadioProps { + checked?: boolean; + disabled?: boolean; + id: string; + label?: string; + name: string; + value: string; + onChange?: (e: React.ChangeEvent) => void; +} + +const Radio = ({ + checked, + disabled, + id, + label, + name, + value, + onChange, +}: RadioProps) => ( +
+
+ +
+
+ +
+); + +export const Filter = () => { + const [selectedStatus, setSelectedStatus] = useState('delivered'); + + const handleStatusChange = (e: React.ChangeEvent) => { + setSelectedStatus(e.target.value); + }; + + return ( +
+
+ Filters + +
+
+ Status +
+ + +
+
+ ); +}; + +export default Filter; diff --git a/libs/ui/src/organisms/filter/index.ts b/libs/ui/src/organisms/filter/index.ts new file mode 100644 index 0000000..009bf07 --- /dev/null +++ b/libs/ui/src/organisms/filter/index.ts @@ -0,0 +1 @@ +export * from './filter';