import React, { useEffect, useState } from "react"; import Label from "../common/Label"; import { Controller, useForm } from "react-hook-form"; import { useExpenseCategory, useRecurringStatus, } from "../../hooks/masterHook/useMaster"; import DatePicker from "../common/DatePicker"; import { zodResolver } from "@hookform/resolvers/zod"; import { defaultRecurringExpense, PaymentRecurringExpense, } from "./RecurringExpenseSchema"; import { FREQUENCY_FOR_RECURRING, INR_CURRENCY_CODE, } from "../../utils/constants"; import { useCurrencies, useProjectName } from "../../hooks/useProjects"; import { useCreateRecurringExpense, usePayee, useRecurringExpenseDetail, useUpdateRecurringExpense, } from "../../hooks/useExpense"; import InputSuggestions from "../common/InputSuggestion"; import MultiEmployeeSearchInput from "../common/MultiEmployeeSearchInput"; function ManageRecurringExpense({ closeModal, requestToEdit = null }) { const { data, isLoading, isError, error: requestError, } = useRecurringExpenseDetail(requestToEdit); //APIs const { projectNames, loading: projectLoading, error, isError: isProjectError, } = useProjectName(); const { data: currencyData, isLoading: currencyLoading, isError: currencyError, } = useCurrencies(); const { data: statusData, isLoading: statusLoading, isError: statusError, } = useRecurringStatus(); const { data: Payees, isLoading: isPayeeLoaing, isError: isPayeeError, error: payeeError, } = usePayee(); const { ExpenseCategories, loading: ExpenseLoading, error: ExpenseError, } = useExpenseCategory(); const schema = PaymentRecurringExpense(); const { register, control, watch, handleSubmit, setValue, reset, formState: { errors }, } = useForm({ resolver: zodResolver(schema), defaultValues: defaultRecurringExpense, }); const handleClose = () => { reset(); closeModal(); }; const { mutate: CreateRecurringExpense, isPending: createPending } = useCreateRecurringExpense(() => { handleClose(); }); // const { mutate: PaymentRequestUpdate, isPending } = useUpdatePaymentRequest(() => // handleClose() // ); useEffect(() => { if (requestToEdit && data) { reset({ title: data.title || "", description: data.description || "", payee: data.payee || "", notifyTo: data.notifyTo || "", currencyId: data.currency.id || "", amount: data.amount || "", strikeDate: data.strikeDate?.slice(0, 10) || "", projectId: data.project.id || "", paymentBufferDays: data.paymentBufferDays || "", numberOfIteration: data.numberOfIteration || "", expenseCategoryId: data.expenseCategory.id || "", statusId: data.statusId || "", frequency: data.frequency || "", isVariable: data.isVariable || false, }); } }, [data, reset]); // console.log("Veer",data) const onSubmit = (fromdata) => { let payload = { ...fromdata, // strikeDate: localToUtc(fromdata.strikeDate), strikeDate: fromdata.strikeDate ? new Date(fromdata.strikeDate).toISOString() : null, }; if (requestToEdit) { const editPayload = { ...payload, id: data.id }; PaymentRequestUpdate({ id: data.id, payload: editPayload }); } else { CreateRecurringExpense(payload); } console.log("Kartik", payload); }; return (