"use client"; import { useState, useEffect } from "react"; import { useAuth } from "@/context/AuthContext"; function getStoreImage(store) { if (store.imageUrl) return store.imageUrl; const name = store.storeName?.toLowerCase() ?? ""; if (name.includes("downtown")) return "/stores/downtown.webp"; if (name.includes("north")) return "/stores/north.webp"; if (name.includes("west")) return "/stores/west.webp"; return "/images/pet-placeholder.png"; } export default function ContactPage() { const { token } = useAuth(); const [locations, setLocations] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const [subject, setSubject] = useState(""); const [body, setBody] = useState(""); const [sending, setSending] = useState(false); const [sendError, setSendError] = useState(null); const [sendSuccess, setSendSuccess] = useState(false); useEffect(() => { const params = new URLSearchParams({ page: "0", size: "100", sort: "storeName,asc" }); fetch(`/api/v1/stores?${params}`) .then((res) => { if (!res.ok) throw new Error("Unable to load store, please try again later."); return res.json(); }) .then((data) => setLocations(data.content ?? [])) .catch(() => setError("Unable to load store, please try again later.")) .finally(() => setLoading(false)); }, []); async function handleSend(e) { e.preventDefault(); setSending(true); setSendError(null); try { const res = await fetch("/api/v1/contact", { method: "POST", headers: { "Content-Type": "application/json", Authorization: `Bearer ${token}` }, body: JSON.stringify({ subject, body }), }); if (!res.ok) throw new Error(`HTTP ${res.status}`); setSendSuccess(true); setSubject(""); setBody(""); } catch (err) { setSendError("Failed to send message. Please try again."); } finally { setSending(false); } } return (

Contact Us

Reach the team, find a location, or connect with store personnel.

General Contact

Email: hello@leonspetstore.com.au

Phone: (03) 9000 0000

Hours: Mon–Sat, 9:00 AM – 6:00 PM

{token && (

Send Us a Message

{sendSuccess ? (

Your message has been sent. We'll be in touch soon.

) : (