import React, { useState } from 'react'; import { Camera, Ruler, Home, Palette, Armchair, Layers, Sparkles, MessageSquare, Check, Upload, X } from 'lucide-react'; const InteriorDesignForm = () => { const [formData, setFormData] = useState({ images: [], dimensions: { wallA: { size: '', obs: '' }, wallB: { size: '', obs: '' }, wallC: { size: '', obs: '' }, wallD: { size: '', obs: '' } }, function: '', functionNotes: '', style: '', styleOther: '', colors: [], colorsOther: '', furniture: '', materials: '', atmosphere: '', extraInfo: '' }); const [submitted, setSubmitted] = useState(false); // --- HANDLERS --- const handleImageUpload = (e) => { const files = Array.from(e.target.files); if (files.length > 4) { alert("Por favor, envie no máximo 4 imagens."); return; } const newImages = files.map(file => ({ file, preview: URL.createObjectURL(file) })); setFormData(prev => ({ ...prev, images: newImages })); }; const removeImage = (index) => { setFormData(prev => ({ ...prev, images: prev.images.filter((_, i) => i !== index) })); }; const handleDimensionChange = (wall, field, value) => { setFormData(prev => ({ ...prev, dimensions: { ...prev.dimensions, [wall]: { ...prev.dimensions[wall], [field]: value } } })); }; const toggleColor = (color) => { setFormData(prev => { const newColors = prev.colors.includes(color) ? prev.colors.filter(c => c !== color) : [...prev.colors, color]; return { ...prev, colors: newColors }; }); }; const handleSubmit = (e) => { e.preventDefault(); setSubmitted(true); console.log("Dados do Formulário:", formData); }; // --- SECTIONS DATA --- const styles = [ { id: 'minimalista', label: 'Minimalista', desc: 'Simples, poucos objetos, visual limpo' }, { id: 'escandinavo', label: 'Escandinavo', desc: 'Claro, confortável, madeira clara' }, { id: 'industrial', label: 'Industrial', desc: 'Aparência moderna, metal, concreto, preto' }, { id: 'classico', label: 'Clássico Contemporâneo', desc: 'Elegante, sofisticado' }, { id: 'boho', label: 'Boho Chic', desc: 'Natural, colorido, cheio de personalidade' }, { id: 'moderno', label: 'Moderno', desc: 'Linhas retas, organização, contraste' }, { id: 'outro', label: 'Outro', desc: '' } ]; const palettes = [ { id: 'neutros', label: 'Tons Neutros', desc: '(branco, bege, cinza)' }, { id: 'terrosos', label: 'Tons Terrosos', desc: '(caramelo, terracota, marrom, verde musgo)' }, { id: 'frias', label: 'Cores Frias', desc: '(azul, verde, lilás)' }, { id: 'quentes', label: 'Cores Quentes', desc: '(amarelo, laranja, vermelho, rosa forte)' }, { id: 'pasteis', label: 'Tons Pastéis', desc: '(rosa bebê, azul claro, pêssego)' }, { id: 'profundos', label: 'Tons Profundos', desc: '(azul petróleo, verde esmeralda, vinho)' }, ]; if (submitted) { return (

Formulário Enviado com Sucesso!

Os dados foram capturados e estão prontos para processamento.

{JSON.stringify(formData, (key, value) => {
              if (key === 'images') return value.map(img => img.file.name); // Não mostrar o blob da imagem no JSON
              if (key === 'file') return undefined; 
              if (key === 'preview') return undefined;
              return value;
            }, 2)}
); } return (

Consulta de Design de Interiores

Preencha os detalhes abaixo para criarmos o ambiente perfeito para você.

{/* SEÇÃO 1: IMAGENS */}

1. Imagem do Cômodo

Envie até 4 fotos. A primeira será a base da decoração.

{/* Grid de Preview */} {formData.images.length > 0 && (
{formData.images.map((img, index) => (
{`Preview {index === 0 && ( Imagem Base )}
))}
)}
{/* SEÇÃO 2: DIMENSÕES */}

2. Dimensões e Paredes

Informe medidas e detalhes como portas, janelas e tomadas.

{['A', 'B', 'C', 'D'].map((wall) => (

Parede {wall}

handleDimensionChange(`wall${wall}`, 'size', e.target.value)} />