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()}
);
};