'use client'; import CustomInput from '../CustomInput'; import { Dispatch, FormEvent, SetStateAction, useContext, useEffect } from 'react'; import StepsContext from '@/context/StepsContext'; import ButtonPrimary from './ButtonPrimary'; import { FormActionType } from '@/providers/StepsProvider'; import Loader from '../Loader'; import { Validator } from '@/utils/validator'; import Image from 'next/image'; import closeIcon from '@/public/close-white.svg'; const Calculator = () => { const { data, stepContext, calculatorContext } = useContext(StepsContext); const { plans } = data.plans; const { form, dispatch } = useContext(StepsContext).addPostContext; const validateForm = () => { if (Validator.number(form.second) && Validator.number(form.day) && form.folder_id.length > 0) return true; else return false; }; const calculate = () => { const price = plans?.data.find((item) => item.id === Number(form.folder_id))?.total_price; if (price) dispatch({ type: FormActionType.TOTAL, payload: String(Math.ceil(Number(price) * (Number(form.second) / 60) * Number(form.day))), }); }; useEffect(() => { if (validateForm()) { calculate(); } }, [form.folder_id, form.day, form.second]); return (