"use client"; import { PurchaseQcResult, PurchaseQCInput, StockInInput, } from "@/app/api/po/actions"; import { Box, Card, CardContent, Grid, Stack, TextField, Tooltip, Typography, } from "@mui/material"; import { Controller, useFormContext } from "react-hook-form"; import { useTranslation } from "react-i18next"; import StyledDataGrid from "../StyledDataGrid"; import { useCallback, useEffect, useMemo } from "react"; import { GridColDef, GridRowIdGetter, GridRowModel, useGridApiContext, GridRenderCellParams, GridRenderEditCellParams, useGridApiRef, } from "@mui/x-data-grid"; import InputDataGrid from "../InputDataGrid"; import { TableRow } from "../InputDataGrid/InputDataGrid"; import TwoLineCell from "./TwoLineCell"; import QcSelect from "./QcSelect"; import { QcItemWithChecks } from "@/app/api/qc"; import { GridEditInputCell } from "@mui/x-data-grid"; import { StockInLine } from "@/app/api/po"; import { DatePicker, LocalizationProvider } from "@mui/x-date-pickers"; import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs"; import { INPUT_DATE_FORMAT } from "@/app/utils/formatUtil"; import dayjs from "dayjs"; // change PurchaseQcResult to stock in entry props interface Props { itemDetail: StockInLine; // qc: QcItemWithChecks[]; disabled: boolean; } type EntryError = | { [field in keyof StockInInput]?: string; } | undefined; // type PoQcRow = TableRow, EntryError>; const StockInForm: React.FC = ({ // qc, itemDetail, disabled, }) => { const { t, i18n: { language }, } = useTranslation("purchaseOrder"); const apiRef = useGridApiRef(); const { register, formState: { errors, defaultValues, touchedFields }, watch, control, setValue, getValues, reset, resetField, setError, clearErrors, } = useFormContext(); console.log(itemDetail); useEffect(() => { console.log("triggered"); // receiptDate default tdy setValue("receiptDate", dayjs().add(0, "month").format(INPUT_DATE_FORMAT)); setValue("status", "received"); }, []); useEffect(() => { console.log(errors); }, [errors]); const productionDate = watch("productionDate"); const expiryDate = watch("expiryDate"); useEffect(() => { console.log(productionDate); console.log(expiryDate); if (expiryDate) clearErrors(); if (productionDate) clearErrors(); }, [productionDate, expiryDate, clearErrors]); return ( {t("Stock In Detail")} { return ( { if (!date) return; // setValue("receiptDate", date.format(INPUT_DATE_FORMAT)); field.onChange(date); }} inputRef={field.ref} slotProps={{ textField: { // required: true, error: Boolean(errors.receiptDate?.message), helperText: errors.receiptDate?.message, }, }} /> ); }} /> {/* */} { return ( { if (!date) return; setValue( "productionDate", date.format(INPUT_DATE_FORMAT), ); // field.onChange(date); }} inputRef={field.ref} slotProps={{ textField: { // required: true, error: Boolean(errors.productionDate?.message), helperText: errors.productionDate?.message, }, }} /> ); }} /> { return ( { console.log(date); if (!date) return; console.log(date.format(INPUT_DATE_FORMAT)); setValue("expiryDate", date.format(INPUT_DATE_FORMAT)); // field.onChange(date); }} inputRef={field.ref} slotProps={{ textField: { // required: true, error: Boolean(errors.expiryDate?.message), helperText: errors.expiryDate?.message, }, }} /> ); }} /> {/* apiRef={apiRef} checkboxSelection={false} _formKey={"qcCheck"} columns={columns} validateRow={validationTest} /> */} ); }; export default StockInForm;