| 1 |
4cebd65 |
Mardin |
2y ago |
import { |
| 2 |
4cebd65 |
Mardin |
2y ago |
EntityDataTable, |
| 3 |
4cebd65 |
Mardin |
2y ago |
DataTablePagination, |
| 4 |
4cebd65 |
Mardin |
2y ago |
TableFiltering, |
| 5 |
4cebd65 |
Mardin |
2y ago |
} from "../components"; |
| 6 |
4cebd65 |
Mardin |
2y ago |
import { EntityTable } from "../entity-table"; |
| 7 |
4cebd65 |
Mardin |
2y ago |
import React from "react"; |
| 8 |
4cebd65 |
Mardin |
2y ago |
import type { Meta, StoryObj } from "@storybook/react"; |
| 9 |
4cebd65 |
Mardin |
2y ago |
import { QueryClientProvider, QueryClient } from "@tanstack/react-query"; |
| 10 |
4cebd65 |
Mardin |
2y ago |
|
| 11 |
4cebd65 |
Mardin |
2y ago |
import { columnsFnBasicEntityTable } from "./columns-fns"; |
| 12 |
4cebd65 |
Mardin |
2y ago |
import { fetchEntity, fetchEntityLoading } from "./fetch-entities"; |
| 13 |
4cebd65 |
Mardin |
2y ago |
|
| 14 |
4cebd65 |
Mardin |
2y ago |
const TableFilteringComponent = TableFiltering as React.FC<unknown>; |
| 15 |
4cebd65 |
Mardin |
2y ago |
const DataTablePaginationComponent = DataTablePagination as React.FC<unknown>; |
| 16 |
4cebd65 |
Mardin |
2y ago |
const EntityDataTableComponent = EntityDataTable as React.FC<unknown>; |
| 17 |
4cebd65 |
Mardin |
2y ago |
|
| 18 |
4cebd65 |
Mardin |
2y ago |
const queryClient = new QueryClient(); |
| 19 |
4cebd65 |
Mardin |
2y ago |
|
| 20 |
4cebd65 |
Mardin |
2y ago |
const meta: Meta<typeof EntityTable> = { |
| 21 |
4cebd65 |
Mardin |
2y ago |
title: "Features/Entity Table/Entity Table", |
| 22 |
4cebd65 |
Mardin |
2y ago |
component: EntityTable, |
| 23 |
4cebd65 |
Mardin |
2y ago |
decorators: [(Story) => ( |
| 24 |
4cebd65 |
Mardin |
2y ago |
<QueryClientProvider client={queryClient}> |
| 25 |
4cebd65 |
Mardin |
2y ago |
<Story /> |
| 26 |
4cebd65 |
Mardin |
2y ago |
</QueryClientProvider> |
| 27 |
4cebd65 |
Mardin |
2y ago |
)], |
| 28 |
4cebd65 |
Mardin |
2y ago |
tags: ["autodocs"], |
| 29 |
4cebd65 |
Mardin |
2y ago |
subcomponents: { |
| 30 |
4cebd65 |
Mardin |
2y ago |
TableFilteringComponent, |
| 31 |
4cebd65 |
Mardin |
2y ago |
DataTablePaginationComponent, |
| 32 |
4cebd65 |
Mardin |
2y ago |
EntityDataTableComponent |
| 33 |
4cebd65 |
Mardin |
2y ago |
} |
| 34 |
4cebd65 |
Mardin |
2y ago |
}; |
| 35 |
4cebd65 |
Mardin |
2y ago |
|
| 36 |
4cebd65 |
Mardin |
2y ago |
export default meta; |
| 37 |
4cebd65 |
Mardin |
2y ago |
|
| 38 |
4cebd65 |
Mardin |
2y ago |
|
| 39 |
4cebd65 |
Mardin |
2y ago |
type Story = StoryObj<typeof EntityTable>; |
| 40 |
4cebd65 |
Mardin |
2y ago |
|
| 41 |
d0daa61 |
Mardin |
2y ago |
const onEdit = (entity: any) => alert(`Edit entity: ${JSON.stringify(entity)}`) |
| 42 |
d0daa61 |
Mardin |
2y ago |
const onDelete = (entity: any) => alert(`Delete entity: ${JSON.stringify(entity)}`) |
| 43 |
d0daa61 |
Mardin |
2y ago |
const onOpen = (entity: any) => alert(`Open entity: ${JSON.stringify(entity)}`) |
| 44 |
d0daa61 |
Mardin |
2y ago |
|
| 45 |
4cebd65 |
Mardin |
2y ago |
export const BasicEntityTable: Story = { |
| 46 |
4cebd65 |
Mardin |
2y ago |
args: { |
| 47 |
4cebd65 |
Mardin |
2y ago |
fetchEntity: fetchEntity, |
| 48 |
d0daa61 |
Mardin |
2y ago |
columns: columnsFnBasicEntityTable({ onEdit, onDelete, onOpen }), |
| 49 |
4cebd65 |
Mardin |
2y ago |
filteredColumn: "name", |
| 50 |
4cebd65 |
Mardin |
2y ago |
entityKey: "entities", |
| 51 |
4cebd65 |
Mardin |
2y ago |
onCreate: () => alert("Create entity"), |
| 52 |
d0daa61 |
Mardin |
2y ago |
onOpen: onOpen, |
| 53 |
4cebd65 |
Mardin |
2y ago |
} |
| 54 |
4cebd65 |
Mardin |
2y ago |
}; |
| 55 |
4cebd65 |
Mardin |
2y ago |
|
| 56 |
4cebd65 |
Mardin |
2y ago |
export const LoadingEntityTable: Story = { |
| 57 |
4cebd65 |
Mardin |
2y ago |
args: { |
| 58 |
4cebd65 |
Mardin |
2y ago |
fetchEntity: fetchEntityLoading, |
| 59 |
d0daa61 |
Mardin |
2y ago |
columns: columnsFnBasicEntityTable({ onEdit, onDelete, onOpen }), |
| 60 |
4cebd65 |
Mardin |
2y ago |
filteredColumn: "name", |
| 61 |
4cebd65 |
Mardin |
2y ago |
entityKey: "entities", |
| 62 |
4cebd65 |
Mardin |
2y ago |
onCreate: () => alert("Create entity"), |
| 63 |
d0daa61 |
Mardin |
2y ago |
onOpen: onOpen, |
| 64 |
4cebd65 |
Mardin |
2y ago |
} |
| 65 |
4cebd65 |
Mardin |
2y ago |
}; |