import { type FC, useState } from "react"; import DefaulModal from "@/components/DefaulModal"; import Input from "@/components/Input"; import Textarea from "@/components/Textarea"; import Button from "@/components/Button"; import { useTranslation } from "react-i18next"; import { toast } from "react-toastify"; import { extractErrorMessage } from "@/config/func"; import { useOpenCashShift } from "../hooks/useCashShiftData"; type Props = { open: boolean; onClose: () => void; }; const OpenCashShiftModal: FC = ({ open, onClose }) => { const { t } = useTranslation("global"); const [openingAmount, setOpeningAmount] = useState(""); const [notes, setNotes] = useState(""); const [error, setError] = useState(""); const openShift = useOpenCashShift(); const handleClose = () => { setOpeningAmount(""); setNotes(""); setError(""); onClose(); }; const handleSubmit = () => { const numericAmount = Number(openingAmount); if (Number.isNaN(numericAmount) || numericAmount < 0) { setError(t("cash_shift.opening_amount_required")); return; } openShift.mutate( { openingAmount: numericAmount, notes: notes.trim() || undefined, }, { onSuccess: () => { toast.success(t("cash_shift.opened_success")); handleClose(); }, onError: (err) => { toast.error(extractErrorMessage(err)); }, } ); }; return (
{ setOpeningAmount(e.target.value); setError(""); }} error_text={error} />