'use client'; import Link from 'next/link'; import React, { useState, useEffect, FormEvent } from 'react'; import axios from 'axios'; import { useMutation, useQueryClient } from '@tanstack/react-query'; import { useRouter } from 'next/navigation'; import { GiftsType } from '@/typings/gifts/gifts.type'; // Define the expected shape of the API response const SmsForm: React.FC = () => { const [inputValue, setInputValue] = useState(''); const [errorMessage, setErrorMessage] = useState(null); const queryClient = useQueryClient(); const router = useRouter(); // TanStack Query mutation for the API request const mutation = useMutation({ mutationKey: [`gifts-${inputValue}`], // Using the dynamic query key mutationFn: (code: string) => axios.get(`https://sms.turkmentv.gov.tm/api/gifts/${code}`), onSuccess: (data) => { // Cache the data explicitly queryClient.setQueryData([`gifts-${inputValue}`], data); // Clear any previous error message setErrorMessage(null); // Redirect to "prizes/${inputValue}" on success router.push(`/prizes/${inputValue}`); }, onError: (error) => { // Set error message when API request fails setErrorMessage('Kod nädogry'); }, }); const handleSubmit = (e: FormEvent) => { e.preventDefault(); if (inputValue.length === 6) { mutation.mutate(inputValue); } }; // Clear error message after 10 seconds useEffect(() => { if (errorMessage) { const timer = setTimeout(() => { setErrorMessage(null); }, 10000); return () => clearTimeout(timer); // Cleanup timeout if component unmounts } }, [errorMessage]); return (

Koduňyzy giriziň

{/*

Промокод

*/} setInputValue(e.target.value)} className="px-[16px] py-[12px] bg-lightPrimaryContainer rounded-[12px] outline-none text-lightOnSurfaceVariant text-textSmall leading-textSmall" placeholder="Öz koduňyzy giriziň " /> {errorMessage && (

{errorMessage}

)}
); }; export default SmsForm;