import type { Meta, StoryObj } from "@storybook/react"; import { AdminContext, defaultI18nProvider, EditBase, EditContextProvider, useEditContext, } from "react-admin"; import React, { useState } from "react"; import { GenerationInstructions } from "@amplicode/storybook-extensions"; import { delayDataProvider } from "../../dataProvider"; import { Box, Paper, Typography, TextField } from "@mui/material"; import { Code } from "../../utils"; const docDecorator = (Story: () => React.JSX.Element) => { const [record, setRecord] = useState({ name: "Bill" }); return ( Whenever react-admin displays an edition page, it creates an EditContext to store the record, the submit callback, and other data. The EditContext is available to descendants of:{" "} <EditGuesser>{" "} <EditBase>. Component that provides Edit context { setRecord({ name: (event.currentTarget as any).value }); }} variant="outlined" /> Some inner component Component that needs Edit context ); }; const meta = { title: "DataProviding/useEditContext", parameters: { layout: "centered", }, decorators: [ (Story) => docDecorator(Story), (Story) => defaultDecorator(Story), ], } satisfies Meta; export default meta; type Story = StoryObj; export const Default: Story = { render: () => { const { record, isPending, error } = useEditContext(); return ( {record?.name} ); }, }; const defaultDecorator = (Story: () => React.JSX.Element) => { return ( {Story()} ); };