import { storiesOf } from "@storybook/react"; import { DirtyHandler, Field, FinalForm, FinalFormInput, FixedLeftRightLayout, ISelectionApi, Selected, Table, TableQuery, useSelectionRoute, useTableQuery, } from "@vivid-planet/comet-admin"; import gql from "graphql-tag"; import * as React from "react"; import { Redirect, Route, Switch } from "react-router"; import StoryRouter from "storybook-react-router"; import { apolloStoryDecorator } from "../apollo-story.decorator"; const gqlRest = gql; const query = gqlRest` query users { users @rest(type: "User", path: "users") { id name username email } } `; interface IUser { id: number; name: string; username: string; email: string; } interface IQueryData { users: IUser[]; } interface IExampleTableProps { tableData: { data: IQueryData["users"]; totalCount: number; }; selectionApi: ISelectionApi; selectedId?: string; } function ExampleTable(props: IExampleTableProps) { return ( <> ); } interface IExampleFormProps { user: IUser; mode: "add" | "edit"; } function ExampleForm(props: IExampleFormProps) { return ( { // submit here }} initialValues={props.user} > ); } function Story() { const [Selection, selection, selectionApi] = useSelectionRoute(); const { tableData, api, loading, error } = useTableQuery()(query, { resolveTableData: (data) => ({ data: data.users, totalCount: data.users.length, }), }); if (!tableData) return null; return ( {(user, { selectionMode: selectedSelectionMode }) => } ); } function App() { return ( ); } storiesOf("comet-admin", module) .addDecorator(apolloStoryDecorator()) .addDecorator(StoryRouter()) .add("Table Besides Form Selection Hooks", () => );