49 lines
1.1 KiB
TypeScript
49 lines
1.1 KiB
TypeScript
import type { Meta } from "@storybook/react";
|
|
import { useState } from "react";
|
|
import { FilesIcon, Star } from "lucide-react";
|
|
import { Tabs } from "../src/components/Tabs/Tabs";
|
|
import { fn } from "@storybook/test";
|
|
|
|
const meta = {
|
|
title: "Components/Tabs",
|
|
component: Tabs,
|
|
parameters: {
|
|
layout: "centered",
|
|
},
|
|
tags: ["autodocs"],
|
|
argTypes: {},
|
|
args: { onTabChange: fn() },
|
|
} satisfies Meta<typeof Tabs>;
|
|
|
|
export default meta;
|
|
|
|
const Template = (props: { onTabChange: () => void }) => {
|
|
const [tabIndex, setTabIndex] = useState(0);
|
|
|
|
const onTabChange = (index: number) => {
|
|
props.onTabChange();
|
|
setTabIndex(index);
|
|
};
|
|
|
|
return (
|
|
<div>
|
|
<Tabs
|
|
onTabChange={onTabChange}
|
|
tabIndex={tabIndex}
|
|
tabs={[
|
|
{
|
|
label: "All files",
|
|
Icon: () => <FilesIcon size={"1rem"}></FilesIcon>,
|
|
},
|
|
{
|
|
label: "Favorites",
|
|
Icon: () => <Star size={"1rem"}></Star>,
|
|
},
|
|
]}
|
|
/>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export const Default = Template.bind({});
|