import React, { useState, useRef, useEffect, useMemo } from "react"; 
 | 
import { 
 | 
    Edit, 
 | 
    SimpleForm, 
 | 
    FormDataConsumer, 
 | 
    useTranslate, 
 | 
    TextInput, 
 | 
    NumberInput, 
 | 
    BooleanInput, 
 | 
    DateInput, 
 | 
    SelectInput, 
 | 
    ReferenceInput, 
 | 
    ReferenceArrayInput, 
 | 
    AutocompleteInput, 
 | 
    SaveButton, 
 | 
    Toolbar, 
 | 
    Labeled, 
 | 
    NumberField, 
 | 
    required, 
 | 
    useRecordContext, 
 | 
    useGetOne, 
 | 
    DeleteButton, 
 | 
} from 'react-admin'; 
 | 
import { useWatch, useFormContext } from "react-hook-form"; 
 | 
import { Stack, Grid, Box, Typography } from '@mui/material'; 
 | 
import * as Common from '@/utils/common'; 
 | 
import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting'; 
 | 
import EditBaseAside from "../../components/EditBaseAside"; 
 | 
import CustomerTopToolBar from "../../components/EditTopToolBar"; 
 | 
import MemoInput from "../../components/MemoInput"; 
 | 
import StatusSelectInput from "../../components/StatusSelectInput"; 
 | 
  
 | 
const FormToolbar = () => { 
 | 
    const { getValues } = useFormContext(); 
 | 
  
 | 
    return ( 
 | 
        <Toolbar sx={{ justifyContent: 'space-between' }}> 
 | 
            <SaveButton /> 
 | 
            <DeleteButton mutationMode="optimistic" /> 
 | 
        </Toolbar> 
 | 
    ) 
 | 
} 
 | 
  
 | 
const WaveItemEdit = (props) => { 
 | 
    const { open, setOpen, record } = props; 
 | 
    const translate = useTranslate(); 
 | 
    const handleClose = (event, reason) => { 
 | 
        if (reason !== "backdropClick") { 
 | 
            setOpen(false); 
 | 
        } 
 | 
    }; 
 | 
    const { data, isPending, } = useGetOne('waveItem', { id: record?.id }); 
 | 
    if (data == null || data == undefined) { return } 
 | 
  
 | 
    return ( 
 | 
        <Dialog 
 | 
            open={open} 
 | 
            onClose={handleClose} 
 | 
            aria-labelledby="form-dialog-title" 
 | 
            fullWidth 
 | 
            disableRestoreFocus 
 | 
            maxWidth="md" 
 | 
        > 
 | 
            <DialogTitle id="form-dialog-title" sx={{ 
 | 
                position: 'sticky', 
 | 
                top: 0, 
 | 
                backgroundColor: 'background.paper', 
 | 
                zIndex: 1000 
 | 
            }} 
 | 
            > 
 | 
                {translate('update.title')} 
 | 
                <Box sx={{ position: 'absolute', top: 8, right: 8, zIndex: 1001 }}> 
 | 
                    <DialogCloseButton onClose={handleClose} /> 
 | 
                </Box> 
 | 
            </DialogTitle> 
 | 
            <DialogContent sx={{ mt: 2 }}> 
 | 
                <EditBase 
 | 
                    id={record?.id} 
 | 
                    resource="waveItem" 
 | 
                    mutationMode={EDIT_MODE} 
 | 
                    actions={<CustomerTopToolBar />} 
 | 
                > 
 | 
                    <Form 
 | 
                        shouldUnregister 
 | 
                        warnWhenUnsavedChanges 
 | 
                        mode="onTouched" 
 | 
                        defaultValues={{}} 
 | 
                    > 
 | 
                        <Grid container width={{ xs: '100%', xl: '100%' }} rowSpacing={3} columnSpacing={3}> 
 | 
                            <Grid item xs={16} md={10}> 
 | 
                                <Typography variant="h6" gutterBottom> 
 | 
                                    {translate('common.edit.title.main')} 
 | 
                                </Typography> 
 | 
                                <Stack direction='row' gap={2}> 
 | 
                                    <NumberInput 
 | 
                                        label="table.field.waveItem.waveId" 
 | 
                                        source="waveId" 
 | 
                                        autoFocus 
 | 
                                    /> 
 | 
                                    <TextInput 
 | 
                                        label="table.field.waveItem.waveCode" 
 | 
                                        source="waveCode" 
 | 
                                        parse={v => v} 
 | 
                                    /> 
 | 
                                    <NumberInput 
 | 
                                        label="table.field.waveItem.matnrId" 
 | 
                                        source="matnrId" 
 | 
                                    /> 
 | 
                                    <TextInput 
 | 
                                        label="table.field.waveItem.matnrName" 
 | 
                                        source="matnrName" 
 | 
                                        parse={v => v} 
 | 
                                    /> 
 | 
                                </Stack> 
 | 
                                <Stack direction='row' gap={2}> 
 | 
                                    <TextInput 
 | 
                                        label="table.field.waveItem.matnrCode" 
 | 
                                        source="matnrCode" 
 | 
                                        parse={v => v} 
 | 
                                    /> 
 | 
                                    <TextInput 
 | 
                                        label="table.field.waveItem.batch" 
 | 
                                        source="batch" 
 | 
                                        parse={v => v} 
 | 
                                    /> 
 | 
                                    <TextInput 
 | 
                                        label="table.field.waveItem.splrBatch" 
 | 
                                        source="splrBatch" 
 | 
                                        parse={v => v} 
 | 
                                    /> 
 | 
                                    <TextInput 
 | 
                                        label="table.field.waveItem.orderCode" 
 | 
                                        source="orderCode" 
 | 
                                        parse={v => v} 
 | 
                                    /> 
 | 
                                </Stack> 
 | 
                                <Stack direction='row' gap={2}> 
 | 
                                    <NumberInput 
 | 
                                        label="table.field.waveItem.orderItemId" 
 | 
                                        source="orderItemId" 
 | 
                                    /> 
 | 
  
 | 
                                    <TextInput 
 | 
                                        label="table.field.waveItem.unit" 
 | 
                                        source="unit" 
 | 
                                        parse={v => v} 
 | 
                                    /> 
 | 
                                    <TextInput 
 | 
                                        label="table.field.waveItem.trackCode" 
 | 
                                        source="trackCode" 
 | 
                                        parse={v => v} 
 | 
                                    /> 
 | 
                                    <TextInput 
 | 
                                        label="table.field.waveItem.fieldsIndex" 
 | 
                                        source="fieldsIndex" 
 | 
                                        parse={v => v} 
 | 
                                    /> 
 | 
                                </Stack> 
 | 
                                <Stack direction='row' gap={2}> 
 | 
                                    <NumberInput 
 | 
                                        label="table.field.waveItem.anfme" 
 | 
                                        source="anfme" 
 | 
                                    /> 
 | 
                                    <NumberInput 
 | 
                                        label="table.field.waveItem.workQty" 
 | 
                                        source="workQty" 
 | 
                                    /> 
 | 
                                </Stack> 
 | 
  
 | 
                            </Grid> 
 | 
                            <Grid item xs={8} md={2}> 
 | 
                                <Typography variant="h6" gutterBottom> 
 | 
                                    {translate('common.edit.title.common')} 
 | 
                                </Typography> 
 | 
                                <StatusSelectInput /> 
 | 
                                <Box mt="2em" /> 
 | 
                                <MemoInput /> 
 | 
                            </Grid> 
 | 
                        </Grid> 
 | 
                        <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}> 
 | 
                            <Toolbar sx={{ width: '100%', justifyContent: 'end' }}  > 
 | 
                                <SaveButton type="button" mutationOptions={{ 
 | 
                                    onSuccess: () => { 
 | 
                                        setOpen(false) 
 | 
                                    } 
 | 
                                }} /> 
 | 
                            </Toolbar> 
 | 
                        </DialogActions> 
 | 
                    </Form> 
 | 
                </EditBase > 
 | 
            </DialogContent> 
 | 
        </Dialog> 
 | 
    ) 
 | 
} 
 | 
  
 | 
export default WaveItemEdit; 
 |