Files
protocol/sites/dev0x-portal/stories/DropdownMenu.stories.tsx
2023-03-13 16:25:36 +01:00

44 lines
1.4 KiB
TypeScript

import { Button } from '../app/components/Button';
import * as DropdownMenu from '../app/components/DropdownMenu';
import { ChevronDown } from '../app/icons/ChevronDown';
import type { Meta } from '@storybook/react';
type SimpleDropdownProps = {
items: { name: string }[];
};
export function SimpleDropdown({ items }: SimpleDropdownProps) {
return (
<DropdownMenu.Root>
<DropdownMenu.Trigger asChild>
<Button color="grey" roundness="lg" size="sm" endIcon={<ChevronDown aria-hidden />}>
Open
</Button>
</DropdownMenu.Trigger>
<DropdownMenu.Portal>
<DropdownMenu.Content sideOffset={5}>
{items.map(({ name }, index) => {
return (
<DropdownMenu.Item asChild key={index}>
<div className="font-sans text-base">{name}</div>
</DropdownMenu.Item>
);
})}
</DropdownMenu.Content>
</DropdownMenu.Portal>
</DropdownMenu.Root>
);
}
const meta = {
title: 'Components/Dropdown',
component: SimpleDropdown,
tags: ['autodocs'],
args: {
items: [{ name: 'Option 1' }, { name: 'Option 2' }],
},
} satisfies Meta<typeof SimpleDropdown>;
export default meta;