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="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; 
 |