'use client'; import React, { useState, useEffect } from 'react'; import { colorRequestService } from '@/src/services/api'; interface ColorRequestModalProps { isOpen: boolean; onClose: () => void; } export default function ColorRequestModal({ isOpen, onClose }: ColorRequestModalProps) { const [formData, setFormData] = useState({ color_name: '', material_type: 'PLA', finish_type: 'Basic', user_email: '', user_phone: '' }); const [isSubmitting, setIsSubmitting] = useState(false); const [message, setMessage] = useState<{ type: 'success' | 'error', text: string } | null>(null); useEffect(() => { if (!isOpen) { // Reset form when modal closes setFormData({ color_name: '', material_type: 'PLA', finish_type: 'Basic', user_email: '', user_phone: '' }); setMessage(null); } }, [isOpen]); if (!isOpen) return null; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setIsSubmitting(true); setMessage(null); try { await colorRequestService.submit(formData); setMessage({ type: 'success', text: 'Vaš zahtev je uspešno poslat!' }); // Close modal after 2 seconds on success setTimeout(() => { onClose(); }, 2000); } catch (error) { setMessage({ type: 'error', text: 'Greška pri slanju zahteva. Pokušajte ponovo.' }); } finally { setIsSubmitting(false); } }; const handleChange = (e: React.ChangeEvent) => { setFormData({ ...formData, [e.target.name]: e.target.value }); }; return ( <> {/* Backdrop */}
{/* Modal */}
{/* Close button */}

Zatraži Novu Boju

Ne možete pronaći boju koju tražite? Javite nam!

{message && (
{message.text}
)}
); }