import type { Meta, StoryObj } from "@storybook/react";
import {
AdminContext,
defaultI18nProvider,
ShowBase,
ShowContextProvider,
useRecordContext,
} 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: "Jake" });
return (
useRecordContext grabs the current record. It’s available anywhere react-admin manipulates a record, e.g. in a Show page, in a Datagrid row, or in a Reference Field.
Component that provides Record context
{
setRecord({ name: (event.currentTarget as any).value });
}}
variant="outlined"
/>
Some inner component
Component that needs Record context
);
};
const meta = {
title: "DataProviding/useRecordContext",
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 = useRecordContext();
return (
{record?.name}
);
},
};
const defaultDecorator = (Story: () => React.JSX.Element) => {
return (
{Story()}
);
};