import { playgroundParameters } from "@charcuterie/storybook-config/story-parameters" import type { Meta, StoryObj } from "@storybook/react" import { useState } from "react" import { ContainerBoard } from "../board.storyHelpers.tsx" import { TableColumns } from "./TableColumns.tsx" const meta = { title: "Components/Data/TableColumns", component: TableColumns, args: { columns: [ { key: "name", label: "Name", isVisible: true, isRequired: true, }, { key: "duration", label: "Duration", isVisible: true, }, { key: "median", label: "Median", isVisible: false }, ], onChange: () => {}, }, } satisfies Meta export default meta type Story = StoryObj const Controlled = ( props: React.ComponentProps, ) => { const [columns, setColumns] = useState([...props.columns]) return ( <>

{columns .filter((column) => column.isVisible) .map((column) => column.label) .join(", ")}

) } export const Playground: Story = { parameters: playgroundParameters, render: (props) => , } export const AllVariants: Story = { render: (props) => ( ), } export const AllStates: Story = { args: { columns: [ { key: "name", label: "Name", isVisible: true, isRequired: true, }, ], }, render: (props) => , } export const Responsive: Story = { render: (props) => ( {() => } ), } export const Interactive: Story = { render: (props) => , }