diff --git a/src/components/admin/AdminFAQForm.tsx b/src/components/admin/AdminFAQForm.tsx new file mode 100644 index 0000000..b3bf09f --- /dev/null +++ b/src/components/admin/AdminFAQForm.tsx @@ -0,0 +1,133 @@ + +import { useState } from 'react'; +import { Button } from '@/components/ui/button'; +import { Input } from '@/components/ui/input'; +import { Textarea } from '@/components/ui/textarea'; +import { Label } from '@/components/ui/label'; +import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; +import { useToast } from '@/hooks/use-toast'; +import { supabase } from '@/integrations/supabase/client'; + +interface FAQ { + id: string; + pergunta: string; + resposta: string; + imagem_url?: string; + ativo: boolean; + created_at: string; +} + +interface AdminFAQFormProps { + editingFaq: FAQ | null; + onSuccess: () => void; + onCancel: () => void; +} + +const AdminFAQForm = ({ editingFaq, onSuccess, onCancel }: AdminFAQFormProps) => { + const [formData, setFormData] = useState({ + pergunta: editingFaq?.pergunta || '', + resposta: editingFaq?.resposta || '', + imagem_url: editingFaq?.imagem_url || '', + ativo: editingFaq?.ativo ?? true + }); + const [loading, setLoading] = useState(false); + const { toast } = useToast(); + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + setLoading(true); + + try { + if (editingFaq) { + // Atualizar FAQ existente + const { error } = await supabase + .from('faqs') + .update(formData) + .eq('id', editingFaq.id); + + if (error) throw error; + toast({ title: "FAQ atualizado com sucesso!" }); + } else { + // Criar novo FAQ + const { error } = await supabase + .from('faqs') + .insert(formData); + + if (error) throw error; + toast({ title: "FAQ criado com sucesso!" }); + } + + // Reset form + setFormData({ pergunta: '', resposta: '', imagem_url: '', ativo: true }); + onSuccess(); + } catch (error) { + console.error('Erro ao salvar FAQ:', error); + toast({ + title: "Erro", + description: "Não foi possível salvar o FAQ.", + variant: "destructive" + }); + } finally { + setLoading(false); + } + }; + + return ( + + + {editingFaq ? 'Editar FAQ' : 'Criar Novo FAQ'} + + +
+
+ + setFormData({ ...formData, pergunta: e.target.value })} + required + /> +
+ +
+ +