Phase 5: contact, conversion and tracking hooks
- Contact page: Call/Text/WhatsApp at the top, hours, drop-off address, service area, map, and the quote form - Quote form: device, problem, preferred contact; email required, phone optional; labels wired to inputs; _gotcha honeypot; AJAX submit to form.taxi with an inline "same day during business hours" message and an error fallback (still posts normally without JavaScript) - Analytics hooks for click_call, click_text, click_email, submit_quote_form and click_google_reviews; no-ops until Plausible is installed - /review redirects (307) to the Google review link - Maps embed moved to one MapEmbed component Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
9f5cf387dc
commit
4d901b351e
9 files changed
+293
-68
No files matched your search
+2
-8
@@ -3,7 +3,7 @@ import Link from "next/link";
|
||||
import styles from "./page.module.css";
|
||||
import bgimage from "./assets/header-bg.jpg";
|
||||
import Button from "./components/Button";
|
||||
import { GoogleMapsEmbed } from "@next/third-parties/google";
|
||||
import MapEmbed from "./components/MapEmbed";
|
||||
import ContactForm from "./components/ContactForm";
|
||||
import FaqList from "./components/FaqList";
|
||||
import CtaBand from "./components/CtaBand";
|
||||
@@ -319,13 +319,7 @@ export default function Home() {
|
||||
</p>
|
||||
</div>
|
||||
<div className="w-full">
|
||||
<GoogleMapsEmbed
|
||||
apiKey="AIzaSyDbgQY55TQY5CefsCUwKbc8RfoOUe8U5gY"
|
||||
width="100%"
|
||||
height="400px"
|
||||
mode="place"
|
||||
q="place_id:ChIJz0ZoDYhADW0R0TDgWoWMq0M"
|
||||
/>
|
||||
<MapEmbed />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
Reference in new issue
Block a user