| import React, { useState, useRef, useEffect, useMemo } from "react"; | 
| import { | 
|   CreateBase, | 
|   useTranslate, | 
|   TextInput, | 
|   NumberInput, | 
|   BooleanInput, | 
|   DateInput, | 
|   SaveButton, | 
|   SelectInput, | 
|   ReferenceInput, | 
|   ReferenceArrayInput, | 
|   AutocompleteInput, | 
|   Toolbar, | 
|   required, | 
|   useDataProvider, | 
|   useNotify, | 
|   Form, | 
|   useCreateController, | 
| } from "react-admin"; | 
| import { | 
|   Dialog, | 
|   DialogActions, | 
|   DialogContent, | 
|   DialogTitle, | 
|   Stack, | 
|   Grid, | 
|   Box, | 
| } from "@mui/material"; | 
| import DialogCloseButton from "../components/DialogCloseButton"; | 
| import StatusSelectInput from "../components/StatusSelectInput"; | 
| import MemoInput from "../components/MemoInput"; | 
|   | 
| const WarehouseAreasCreate = (props) => { | 
|   const { open, setOpen } = props; | 
|   | 
|   const translate = useTranslate(); | 
|   const notify = useNotify(); | 
|   | 
|   const handleClose = (event, reason) => { | 
|     if (reason !== "backdropClick") { | 
|       setOpen(false); | 
|     } | 
|   }; | 
|   | 
|   const handleSuccess = async (data) => { | 
|     setOpen(false); | 
|     notify("common.response.success"); | 
|   }; | 
|   | 
|   const handleError = async (error) => { | 
|     notify(error.message || "common.response.fail", { | 
|       type: "error", | 
|       messageArgs: { _: error.message }, | 
|     }); | 
|   }; | 
|   | 
|   return ( | 
|     <> | 
|       <CreateBase | 
|         record={{}} | 
|         transform={(data) => { | 
|           return data; | 
|         }} | 
|         mutationOptions={{ onSuccess: handleSuccess, onError: handleError }} | 
|       > | 
|         <Dialog | 
|           open={open} | 
|           onClose={handleClose} | 
|           aria-labelledby="form-dialog-title" | 
|           fullWidth | 
|           disableRestoreFocus | 
|           maxWidth="md" // 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 
|         > | 
|           <Form> | 
|             <DialogTitle | 
|               id="form-dialog-title" | 
|               sx={{ | 
|                 position: "sticky", | 
|                 top: 0, | 
|                 backgroundColor: "background.paper", | 
|                 zIndex: 1000, | 
|               }} | 
|             > | 
|               {translate("create.title")} | 
|               <Box | 
|                 sx={{ position: "absolute", top: 8, right: 8, zIndex: 1001 }} | 
|               > | 
|                 <DialogCloseButton onClose={handleClose} /> | 
|               </Box> | 
|             </DialogTitle> | 
|             <DialogContent sx={{ mt: 2 }}> | 
|               <Grid container rowSpacing={2} columnSpacing={2}> | 
|                 {/* <Grid item xs={6} display="flex" gap={1}> | 
|                   <TextInput | 
|                     label="table.field.warehouseAreas.uuid" | 
|                     source="uuid" | 
|                     parse={(v) => v} | 
|                     validate={[required()]} | 
|                     autoFocus | 
|                   /> | 
|                 </Grid> */} | 
|                 <Grid item xs={6} display="flex" gap={1}> | 
|                   <TextInput | 
|                     label="table.field.warehouseAreas.name" | 
|                     source="name" | 
|                     validate={[required()]} | 
|                     parse={(v) => v} | 
|                   /> | 
|                 </Grid> | 
|                 <Grid item xs={6} display="flex" gap={1}> | 
|                   <TextInput | 
|                     label="table.field.warehouseAreas.code" | 
|                     source="code" | 
|                     validate={[required()]} | 
|                     parse={(v) => v} | 
|                   /> | 
|                 </Grid> | 
|                 <Grid item xs={6} display="flex" gap={1}> | 
|                   <ReferenceInput | 
|                     source="warehouseId" | 
|                     reference="warehouse" | 
|                   > | 
|                     <AutocompleteInput | 
|                       label="table.field.warehouseAreas.wareId" | 
|                       optionText="name" | 
|                       validate={[required()]} | 
|                       filterToQuery={(val) => ({ name: val })} | 
|                     /> | 
|                   </ReferenceInput> | 
|                 </Grid> | 
|                 <Grid item xs={6} display="flex" gap={1}> | 
|                   <ReferenceInput source="shipperId" reference="companys" filter={{ type: 'shipper' }}> | 
|                     <AutocompleteInput | 
|                       label="table.field.warehouseAreas.shipperId" | 
|                       optionText="name" | 
|                       filterToQuery={(val) => ({ name: val })} | 
|                     /> | 
|                   </ReferenceInput> | 
|                 </Grid> | 
|                 <Grid item xs={6} display="flex" gap={1}> | 
|                   <ReferenceInput source="supplierId" reference="companys" filter={{ type: 'supplier' }}> | 
|                     <AutocompleteInput | 
|                       label="table.field.warehouseAreas.supplierId" | 
|                       optionText="name" | 
|                       filterToQuery={(val) => ({ name: val })} | 
|                     /> | 
|                   </ReferenceInput> | 
|                 </Grid> | 
|                 <Grid item xs={6} display="flex" gap={1}> | 
|                   <SelectInput | 
|                     label="table.field.warehouseAreas.flagMinus" | 
|                     source="flagMinus" | 
|                     validate={[required()]} | 
|                     choices={[ | 
|                       { id: 0, name: "否" }, | 
|                       { id: 1, name: "是" }, | 
|                     ]} | 
|                   /> | 
|                 </Grid> | 
|                 <Grid item xs={6} display="flex" gap={1}> | 
|                   <SelectInput | 
|                     label="table.field.warehouseAreas.flagLabelMange" | 
|                     source="flagLabelMange" | 
|                     validate={[required()]} | 
|                     choices={[ | 
|                       { id: 0, name: " 否" }, | 
|                       { id: 1, name: " 是" }, | 
|                     ]} | 
|                   /> | 
|                 </Grid> | 
|                 <Grid item xs={6} display="flex" gap={1}> | 
|                   <SelectInput | 
|                     label="table.field.warehouseAreas.flagMix" | 
|                     source="flagMix" | 
|                     validate={[required()]} | 
|                     choices={[ | 
|                       { id: 0, name: "否" }, | 
|                       { id: 1, name: "是" }, | 
|                     ]} | 
|                   /> | 
|                 </Grid> | 
|   | 
|                 <Grid item xs={6} display="flex" gap={1}> | 
|                   <StatusSelectInput /> | 
|                 </Grid> | 
|                 <Grid item xs={12} display="flex" gap={1}> | 
|                   <Stack direction="column" spacing={1} width={"100%"}> | 
|                     <MemoInput /> | 
|                   </Stack> | 
|                 </Grid> | 
|               </Grid> | 
|             </DialogContent> | 
|             <DialogActions | 
|               sx={{ | 
|                 position: "sticky", | 
|                 bottom: 0, | 
|                 backgroundColor: "background.paper", | 
|                 zIndex: 1000, | 
|               }} | 
|             > | 
|               <Toolbar sx={{ width: "100%", justifyContent: "space-between" }}> | 
|                 <SaveButton /> | 
|               </Toolbar> | 
|             </DialogActions> | 
|           </Form> | 
|         </Dialog> | 
|       </CreateBase> | 
|     </> | 
|   ); | 
| }; | 
|   | 
| export default WarehouseAreasCreate; |