import { EditBase, Form, useStore } from "react-admin"; import { AutoSave } from "@react-admin/ra-form-layout"; import { PredictiveTextInput } from "@react-admin/ra-ai"; import { Box, Container } from "@mui/material"; import { MoreActionsButton } from "./MoreActionsButton"; import { firstLine } from "./textUtils"; import type { Composition } from "./types"; export const CompositionEdit = ({ id }: { id: number }) => { const [assistantEnabled] = useStore("assistantEnabled", true); const [model] = useStore("assistantModel", "gpt-3.5-turbo"); return ( <EditBase<Composition> id={id} sx={{ width: "100%" }} actions={false} mutationMode="optimistic" transform={(data) => ({ ...data, title: firstLine(data.body), updated_at: new Date().toISOString(), })} component="div" > <Box width="100%" mt={1}> <Form key={id}> <Box width="100%" display="flex" alignItems="center" px={1}> <Box flex="1" /> <AutoSave debounce={1000} /> <MoreActionsButton /> </Box> <Container maxWidth="sm"> <PredictiveTextInput source="body" variant="standard" label={false} helperText={false} autoFocus multiline minRows={20} fullWidth sx={{ "& .MuiInputBase-root:before": { display: "none" }, "& .MuiInputBase-root:after": { display: "none" }, }} meta={{ model }} queryOptions={{ enabled: assistantEnabled }} /> </Container> </Form> </Box> </EditBase> ); };