Files
2026-04-27 15:32:30 +05:30

182 lines
4.9 KiB
React
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"use client"
import { useState } from "react"
export default function Contact() {
const [form, setForm] = useState({
first_name: "",
last_name: "",
email: "",
phone_number: "",
project_details: ""
})
const [loading, setLoading] = useState(false)
const [message, setMessage] = useState("")
// handle change
const handleChange = (e) => {
setForm({ ...form, [e.target.name]: e.target.value })
}
// validation
const validate = () => {
if (!form.first_name || !form.last_name) return "Name required"
if (!form.email.includes("@")) return "Valid email required"
if (form.phone_number.length < 8) return "Valid phone required"
if (!form.project_details) return "Project details required"
return null
}
// submit
const handleSubmit = async (e) => {
e.preventDefault()
const error = validate()
if (error) {
setMessage(error)
return
}
setLoading(true)
setMessage("")
try {
const res = await fetch(
"https://rgnbdafzoeryijdgmyuu.supabase.co/functions/v1/submit-form",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization":
"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InJnbmJkYWZ6b2VyeWlqZGdteXV1Iiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzY3NjUyODksImV4cCI6MjA5MjM0MTI4OX0.-PuetNc8pmKhQfCS8jS9xGAjaBA2O26qR9oSRVVvNs4"
},
body: JSON.stringify(form)
}
)
if (!res.ok) throw new Error("Failed")
setMessage("✅ Form submitted successfully!")
setForm({
first_name: "",
last_name: "",
email: "",
phone_number: "",
project_details: ""
})
} catch (err) {
setMessage("❌ Something went wrong")
}
setLoading(false)
}
return (
<section className="contact-section">
<div className="container">
{/* TOP */}
<div className="services-top text-center">
<div style={{ width: "100%" }}>
<span className="tag">Lets Start Your Project</span>
<h2 className="headprice">
Schedule a complimentary Consultation <br />
with our design team
</h2>
</div>
</div>
<div className="contact-box">
{/* LEFT */}
<div className="contact-left">
<h3>Get In Touch</h3>
<p>Contact us today for tailored marketing strategies and expert advice.</p>
<div className="contact-item">
<img src="/assets/images/icons/phone.svg" />
<div>
<strong>Phone Number</strong>
<span>+15107099142</span>
</div>
</div>
<div className="contact-item">
<img src="/assets/images/icons/email.svg" />
<div>
<strong>Email Address</strong>
<span>reimagine@housecoin.biz</span>
</div>
</div>
<div className="contact-item">
<img src="/assets/images/icons/office.svg" />
<div>
<strong>Office Hours</strong>
<span>MONFRI: 8AM 6PM</span>
<span>SATURDAY: 9AM 3PM</span>
</div>
</div>
</div>
{/* RIGHT FORM */}
<form className="contact-right" onSubmit={handleSubmit}>
<h3>Send us a Message</h3>
<div className="form-row">
<input
name="first_name"
value={form.first_name}
onChange={handleChange}
placeholder="First Name"
/>
<input
name="last_name"
value={form.last_name}
onChange={handleChange}
placeholder="Last Name"
/>
</div>
<div className="form-row">
<input
name="email"
value={form.email}
onChange={handleChange}
placeholder="Email Address"
/>
<input
name="phone_number"
value={form.phone_number}
onChange={handleChange}
placeholder="Phone Number"
/>
</div>
<textarea
name="project_details"
value={form.project_details}
onChange={handleChange}
placeholder="Project Details"
/>
<button type="submit" disabled={loading}>
{loading ? "Sending..." : "Get a Free Consultation"}
</button>
{/* MESSAGE */}
{message && (
<p style={{ marginTop: "10px", color: "#000" }}>
{message}
</p>
)}
</form>
</div>
</div>
</section>
)
}