¿Quieres vender tu propiedad de forma rápida y segura? ¡Nosotros podemos ayudarte! En nuestra agencia inmobiliaria contamos con un equipo de expertos listos para asesorarte en todo el proceso de venta.
Asistencia de Propiedad Desde la promoción de tu propiedad hasta la firma del contrato, estaremos a tu lado para garantizar una transacción exitosa.
Experiencia en ventas Conocemos el mercado y sabemos cómo destacar las cualidades únicas de tu propiedad para atraer a los compradores adecuados.
Publicidad Garantizada Nos encargamos de la promoción en diferentes plataformas para que tu propiedad tenga la máxima visibilidad
A tu estilo Nuestro enfoque personalizado se adapta a tus necesidades y preferencias
Asistencia de Propiedad Desde la promoción de tu propiedad hasta la firma del contrato, estaremos a tu lado para garantizar una transacción exitosa.
Experiencia en ventas Conocemos el mercado y sabemos cómo destacar las cualidades únicas de tu propiedad para atraer a los compradores adecuados.
Publicidad Garantizada Nos encargamos de la promoción en diferentes plataformas para que tu propiedad tenga la máxima visibilidad
A tu estilo Nuestro enfoque personalizado se adapta a tus necesidades y preferencias
'use client';
import Image from 'next/image';
import { Button } from '@/components/ui/button';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { CheckCircle, Award, Target, UserCheck, MessageSquarePlus, Building } from 'lucide-react';
import Link from 'next/link';
import placeholderImages from '@/lib/placeholder-images.json';
import {
Dialog,
DialogContent,
DialogDescription,
DialogHeader,
DialogTitle,
DialogTrigger,
} from "@/components/ui/dialog";
import { z } from "zod";
import { useForm } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
import {
Form,
FormControl,
FormDescription,
FormField,
FormItem,
FormLabel,
FormMessage,
} from "@/components/ui/form";
import { Input } from "@/components/ui/input";
import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group";
import { Textarea } from '@/components/ui/textarea';
import { useState, useTransition } from 'react';
import { useToast } from '@/hooks/use-toast';
import { sendContactFormEmail } from '@/ai/flows/send-contact-form-email';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
const SendContactFormEmailInputSchema = z.object({
nombre: z.string().min(1, { message: "El nombre es requerido." }),
apellidos: z.string().min(1, { message: "Los apellidos son requeridos." }),
email: z.string().email({ message: "Por favor, introduce un email válido." }),
lada: z.string({ required_error: "La lada es requerida."}),
telefono: z.string()
.regex(/^[0-9]+$/, "Solo se permiten números.")
.min(10, { message: "El teléfono debe tener 10 dígitos." })
.max(10, { message: "El teléfono debe tener 10 dígitos." }),
plan: z.string({ required_error: "Debes seleccionar un plan." }),
tipoPropiedad: z.string({ required_error: "Debes seleccionar un tipo de propiedad." }),
municipio: z.string().min(1, { message: "La colonia y municipio son requeridos." }),
mensaje: z.string().optional(),
});
const benefits = [
{
icon: Award,
title: 'Experiencia en Ventas',
description: 'Conocemos el mercado a fondo y sabemos cómo destacar las cualidades únicas de tu propiedad para atraer a los compradores o inquilinos ideales.',
},
{
icon: Target,
title: 'Publicidad Garantizada',
description: 'Nos encargamos de la promoción en las plataformas más importantes para que tu propiedad tenga la máxima visibilidad y alcance.',
},
{
icon: UserCheck,
title: 'Asistencia Integral',
description: 'Desde la promoción de tu propiedad hasta la firma del contrato, te acompañamos en cada paso para garantizar una transacción exitosa y sin estrés.',
},
{
icon: MessageSquarePlus,
title: 'Enfoque Personalizado',
description: 'Nuestro enfoque se adapta completamente a tus necesidades y preferencias. Entendemos que cada propiedad y cada cliente son únicos.',
},
];
const steps = [
{
step: '01',
title: 'Contacto Inicial',
description: 'Ponte en contacto con nosotros a través de nuestro formulario o llámanos. Tendremos una primera charla sin compromiso.'
},
{
step: '02',
title: 'Valoración Profesional',
description: 'Realizamos un análisis de mercado para determinar el mejor precio para tu propiedad, ya sea para venta o alquiler.'
},
{
step: '03',
title: 'Promoción y Visitas',
description: 'Creamos un plan de marketing a medida, gestionamos las visitas y te mantenemos informado en todo momento.'
},
{
step: '04',
title: 'Cierre Exitoso',
description: 'Te asesoramos en la negociación y nos encargamos de todo el papeleo para que solo te preocupes de firmar.'
}
]
const AnunciateForm = ({ setOpen }: { setOpen: (open: boolean) => void }) => {
const { toast } = useToast();
const [isPending, startTransition] = useTransition();
const form = useForm>({
resolver: zodResolver(SendContactFormEmailInputSchema),
defaultValues: {
nombre: "",
apellidos: "",
email: "",
telefono: "",
lada: "+52",
municipio: "",
mensaje: "",
},
});
function onSubmit(values: z.infer) {
startTransition(async () => {
try {
const result = await sendContactFormEmail(values);
if (result.success) {
toast({
title: "Formulario Enviado",
description: "Gracias por tu interés. Nos pondremos en contacto contigo pronto.",
});
setOpen(false);
form.reset();
} else {
throw new Error(result.error || "El envío del formulario falló.");
}
} catch (error) {
toast({
variant: "destructive",
title: "Error al enviar",
description: "No se pudo enviar tu solicitud. Por favor, inténtalo de nuevo.",
});
}
});
}
return (
);
};
export default function AnunciatePage() {
const heroImage = placeholderImages.placeholderImages.find(p => p.id === 'prop-4-ext');
const [isFormOpen, setIsFormOpen] = useState(false);
return (
);
}