'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 (
{plans ? (
e.preventDefault()}>

Calculator

Sargyt etmek üçin aşakdaky maglumatlary dolduryň

calculatorContext.setCalculatorOpen(false)}> close
dispatch({ type: FormActionType.SECOND, payload: newValue }), }} name="second" label="Näçe sekunt" type="text" isBlack validate={{ errMsg: 'This field must a be number', isValid: Validator.number(form.second), }} /> dispatch({ type: FormActionType.DAY, payload: newValue }), }} name="day" label="Näçe gün" type="text" isBlack validate={{ errMsg: 'This field must a be number', isValid: Validator.number(form.day), }} />

Jemi baha:

{form.total || 0} TMT
{ stepContext.setStep(3); calculatorContext.setCalculatorOpen(false); }} type="button" />
) : ( )}
); }; export default Calculator;