diff --git a/src/stories/Spreadsheet.stories.tsx b/src/stories/Spreadsheet.stories.tsx index 19584a7d..9aa1f42f 100644 --- a/src/stories/Spreadsheet.stories.tsx +++ b/src/stories/Spreadsheet.stories.tsx @@ -1,5 +1,5 @@ import * as React from "react"; -import type { StoryFn, Meta } from "@storybook/react"; +import type { StoryFn, Meta, StoryObj } from "@storybook/react"; import { createEmptyMatrix, Spreadsheet, Props, CellBase } from ".."; import * as Matrix from "../matrix"; import { AsyncCellDataEditor, AsyncCellDataViewer } from "./AsyncCellData"; @@ -59,13 +59,16 @@ const meta: Meta> = { export default meta; -export const Basic: StoryFn> = (props) => ( - -); +export const Basic: StoryObj = { + args: {}, +}; -export const DarkMode: StoryFn> = (props) => ( - -); +export const DarkMode: StoryObj = { + args: { + ...meta.args, + darkMode: true, + }, +}; export const Controlled: StoryFn> = (props) => { const [data, setData] = React.useState(EMPTY_DATA); @@ -118,68 +121,96 @@ export const Controlled: StoryFn> = (props) => { ); }; -export const CustomRowLabels: StoryFn> = (props) => ( - -); - -export const CustomColumnLabels: StoryFn> = (props) => ( - -); - -export const HideIndicators: StoryFn> = (props) => ( - -); - -export const Readonly: StoryFn> = (props) => { - const data = createEmptyMatrix(INITIAL_ROWS, INITIAL_COLUMNS); - data[0][0] = { readOnly: true, value: "Read Only" }; - return ; +export const CustomRowLabels: StoryObj = { + args: { + ...meta.args, + rowLabels: ["Dan", "Alice", "Bob", "Steve", "Adam", "Ruth"], + }, +}; + +export const CustomColumnLabels: StoryObj = { + args: { + ...meta.args, + columnLabels: ["Name", "Age", "Email", "Address"], + }, }; -export const WithAsyncCellData: StoryFn> = (props) => { - const data = createEmptyMatrix(INITIAL_ROWS, INITIAL_COLUMNS); +export const HideIndicators: StoryObj = { + args: { + ...meta.args, + hideColumnIndicators: true, + hideRowIndicators: true, + }, +}; - data[2][2] = { - value: undefined, - DataViewer: AsyncCellDataViewer, - DataEditor: AsyncCellDataEditor, - }; - return ; +export const Readonly: StoryObj = { + args: { + ...meta.args, + data: Matrix.set( + { row: 0, column: 0 }, + { readOnly: true, value: "Read Only" }, + createEmptyMatrix(INITIAL_ROWS, INITIAL_COLUMNS) + ), + }, }; -export const WithCustomCell: StoryFn> = (props) => ( - -); - -export const RangeCell: StoryFn> = (props) => { - const data = createEmptyMatrix(INITIAL_ROWS, INITIAL_COLUMNS); - data[2][2] = { - value: 0, - DataViewer: RangeView, - DataEditor: RangeEdit, - }; - return ; +export const WithAsyncCellData: StoryObj = { + args: { + ...meta.args, + data: Matrix.set( + { row: 2, column: 2 }, + { + value: undefined, + DataViewer: AsyncCellDataViewer, + DataEditor: AsyncCellDataEditor, + }, + createEmptyMatrix(INITIAL_ROWS, INITIAL_COLUMNS) + ), + }, }; -export const WithSelectCell: StoryFn> = (props) => { - const data = createEmptyMatrix(INITIAL_ROWS, INITIAL_COLUMNS); +export const WithCustomCell: StoryObj = { + args: { + Cell: CustomCell, + }, +}; - data[2][2] = { - value: undefined, - DataViewer: SelectView, - DataEditor: SelectEdit, - className: "select-cell", - }; +export const RangeCell: StoryObj = { + args: { + data: Matrix.set( + { row: 2, column: 2 }, + { + value: 0, + DataViewer: RangeView, + DataEditor: RangeEdit, + }, + createEmptyMatrix(INITIAL_ROWS, INITIAL_COLUMNS) + ), + }, +}; - return ; +export const WithSelectCell: StoryObj = { + args: { + ...meta.args, + data: Matrix.set( + { row: 2, column: 2 }, + { + value: undefined, + DataViewer: SelectView, + DataEditor: SelectEdit, + className: "select-cell", + }, + createEmptyMatrix(INITIAL_ROWS, INITIAL_COLUMNS) + ), + }, }; -export const WithCornerIndicator: StoryFn> = (props) => ( - -); +export const WithCornerIndicator: StoryObj = { + args: { + ...meta.args, + CornerIndicator: CustomCornerIndicator, + }, +}; export const Filter: StoryFn> = (props) => { const [data, setData] = React.useState(