49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
'use client';
|
|
|
|
import React, { useEffect } from 'react';
|
|
import Header from '@/components/Header';
|
|
import Hero from '@/components/Hero';
|
|
import PortfolioGallery from '@/components/PortfolioGallery';
|
|
import MoodBoardEstimator from '@/components/MoodBoardEstimator';
|
|
import PillarsSection from '@/components/PillarsSection';
|
|
import ServicesSection from '@/components/ServicesSection';
|
|
import TestimonialsSection from '@/components/TestimonialsSection';
|
|
import AboutSection from '@/components/AboutSection';
|
|
import FaqSection from '@/components/FaqSection';
|
|
import BookingForm from '@/components/BookingForm';
|
|
import Footer from '@/components/Footer';
|
|
import GoldSparkles from '@/components/GoldSparkles';
|
|
import MobileQuickBar from '@/components/MobileQuickBar';
|
|
|
|
export default function Home() {
|
|
useEffect(() => {
|
|
// Prevent mobile browsers (iOS Safari/Chrome) from restoring old bottom scroll positions
|
|
if ('scrollRestoration' in window.history) {
|
|
window.history.scrollRestoration = 'manual';
|
|
}
|
|
|
|
// Only scroll to top if there is no specific hash like #portfolio in the URL
|
|
if (!window.location.hash) {
|
|
window.scrollTo({ top: 0, left: 0, behavior: 'instant' });
|
|
}
|
|
}, []);
|
|
|
|
return (
|
|
<main style={{ position: 'relative' }}>
|
|
<GoldSparkles />
|
|
<Header />
|
|
<Hero />
|
|
<PortfolioGallery />
|
|
<MoodBoardEstimator />
|
|
<PillarsSection />
|
|
<ServicesSection />
|
|
<TestimonialsSection />
|
|
<AboutSection />
|
|
<FaqSection />
|
|
<BookingForm />
|
|
<Footer />
|
|
<MobileQuickBar />
|
|
</main>
|
|
);
|
|
}
|