Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 51932dd98b | |||
| 85fec9808a | |||
| f05d05031d | |||
| 282aa8d16d | |||
| c1bbae0949 | |||
| 879671b69f |
@@ -8,23 +8,22 @@ import HeroSplitDualMedia from '@/components/sections/hero/HeroSplitDualMedia';
|
|||||||
import FeatureHoverPattern from '@/components/sections/feature/featureHoverPattern/FeatureHoverPattern';
|
import FeatureHoverPattern from '@/components/sections/feature/featureHoverPattern/FeatureHoverPattern';
|
||||||
import TextBox from '@/components/Textbox';
|
import TextBox from '@/components/Textbox';
|
||||||
import { ClipboardList, Brain, Target, Calendar } from 'lucide-react';
|
import { ClipboardList, Brain, Target, Calendar } from 'lucide-react';
|
||||||
import ButtonShiftHover from '@/components/button/ButtonShiftHover/ButtonShiftHover';
|
import ContactCenter from '@/components/sections/contact/ContactCenter';
|
||||||
|
import { useRouter } from 'next/navigation';
|
||||||
|
|
||||||
export default function ConsultationPage() {
|
export default function ConsultationPage() {
|
||||||
|
const router = useRouter();
|
||||||
const navItems = [
|
const navItems = [
|
||||||
{ name: 'Home', id: 'home', href: '/' },
|
{ name: 'Home', id: '/' },
|
||||||
{ name: 'Services', id: 'services', href: '/#services' },
|
{ name: 'Services', id: '/#services' },
|
||||||
{ name: 'Portfolio', id: 'portfolio', href: '/#portfolio' },
|
{ name: 'Who This Is For', id: '/#who-this-is-for' },
|
||||||
{ name: 'Testimonials', id: 'testimonials', href: '/#testimonials' },
|
{ name: 'What You Get', id: '/#what-you-get' },
|
||||||
{ name: 'Contact', id: 'contact', href: '/#contact' },
|
{ name: 'Portfolio', id: '/#portfolio' },
|
||||||
{ name: 'Consultation', id: '/consultation', href: '/consultation' }
|
{ name: 'Testimonials', id: '/#testimonials' },
|
||||||
|
{ name: 'Consultation', id: '/consultation' },
|
||||||
|
{ name: 'Contact', id: '/#contact' }
|
||||||
];
|
];
|
||||||
|
|
||||||
const handleConfirmBooking = () => {
|
|
||||||
alert("Booking Confirmed! (This would submit the form or confirm the booking.)");
|
|
||||||
// In a real application, this would trigger form submission or a booking confirmation API call.
|
|
||||||
};
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ThemeProvider
|
<ThemeProvider
|
||||||
defaultButtonVariant="directional-hover"
|
defaultButtonVariant="directional-hover"
|
||||||
@@ -70,15 +69,23 @@ export default function ConsultationPage() {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* New "Confirm Booking" button below the booking form/scheduler section */}
|
<div id="booking-form" data-section="booking-form">
|
||||||
<div className="flex justify-center py-vw-2_5" data-section="confirm-booking-button">
|
<ContactCenter
|
||||||
<ButtonShiftHover
|
tag="Booking"
|
||||||
text="Confirm Booking"
|
title="Confirm Your Consultation"
|
||||||
onClick={handleConfirmBooking}
|
description="Enter your email to finalize your booking, and we'll send you a calendar invite."
|
||||||
ariaLabel="Confirm Booking"
|
background={{ variant: "sparkles-gradient" }}
|
||||||
// In a real application, 'disabled' state would be managed by form validation logic.
|
useInvertedBackground={false}
|
||||||
// For this static implementation, it's always enabled.
|
inputPlaceholder="Your Email Address"
|
||||||
// disabled={!isFormFilledOrTimeSelected}
|
buttonText="Confirm Booking"
|
||||||
|
onSubmit={(email: string) => {
|
||||||
|
console.log("Email submitted:", email);
|
||||||
|
router.push('/confirmation');
|
||||||
|
}}
|
||||||
|
className="!py-vw-4 !bg-background-accent/50"
|
||||||
|
contentClassName="!py-vw-4 !px-vw-2_5 !bg-card border border-accent/20 rounded-pill shadow-xl"
|
||||||
|
titleClassName="!text-3xl lg:!text-4xl"
|
||||||
|
buttonClassName="!py-vw-0_75 !px-vw-2"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -155,4 +162,4 @@ export default function ConsultationPage() {
|
|||||||
</ReactLenis>
|
</ReactLenis>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ export default function LandingPage() {
|
|||||||
textboxLayout="default"
|
textboxLayout="default"
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
title="Who This Is For"
|
title="Who This Is For"
|
||||||
description="Our services are designed for ambitious brands ready to make a significant impact online."
|
description="Ambitious brands often struggle to cut through the noise and achieve tangible digital growth. Vertex Digital partners with you to overcome these challenges, delivering bespoke, high-performance digital solutions that not only captivate your audience but also drive measurable results and position you as an industry leader."
|
||||||
features={[
|
features={[
|
||||||
{
|
{
|
||||||
id: "who-1", title: "", description: "", media: {
|
id: "who-1", title: "", description: "", media: {
|
||||||
@@ -270,7 +270,6 @@ export default function LandingPage() {
|
|||||||
className="!py-vw-4 !bg-background-accent/50"
|
className="!py-vw-4 !bg-background-accent/50"
|
||||||
contentClassName="!py-vw-4 !px-vw-2_5 !bg-card border border-accent/20 rounded-pill shadow-xl"
|
contentClassName="!py-vw-4 !px-vw-2_5 !bg-card border border-accent/20 rounded-pill shadow-xl"
|
||||||
textClassName="!text-3xl lg:!text-4xl"
|
textClassName="!text-3xl lg:!text-4xl"
|
||||||
buttonClassName="!py-vw-0_75 !px-vw-2"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -286,7 +285,6 @@ export default function LandingPage() {
|
|||||||
]}
|
]}
|
||||||
className="!py-vw-4"
|
className="!py-vw-4"
|
||||||
textClassName="!text-3xl lg:!text-4xl"
|
textClassName="!text-3xl lg:!text-4xl"
|
||||||
buttonClassName="!py-vw-0_75 !px-vw-2"
|
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user