()
const setSearchValue = (value: string) => {
setSearch(value)
table.setGlobalFilter(value || undefined)
}
const reset = () => {
setSearch("")
setStatus("all")
setDate(undefined)
setDepartment(undefined)
table.resetGlobalFilter(true)
table.resetColumnFilters(true)
}
return (
{
setDepartment(value)
setSearchValue(value)
}}
/>
{
setDate(value)
table.getColumn("createdAt")?.setFilterValue(value)
}}
/>
)
}
const meta = { title: "Patterns/Data/Data Table", parameters: { layout: "padded", controls: { disable: true } } } satisfies Meta
export default meta
type Story = StoryObj
// Representative Story: selection (mixed header), sorting, column visibility, row actions and pagination with page size.
export const All: Story = {
name: "Data Table",
parameters: { layout: "fullscreen" },
render: () => (
),
}
// Combination Story: Filter Bar (search, status, department, date, reset) filtering the Data Table rows.
export const WithFilterBarStory: Story = { tags: ["verification"], name: "With Filter Bar", render: () => }
export const Loading: Story = { tags: ["verification"], render: () => }
export const Empty: Story = { tags: ["verification"], render: () => }