4 Commits

Author SHA1 Message Date
ca52b80665 Merge version_3 into main
Merge version_3 into main
2026-03-07 16:48:03 +00:00
718868f780 Update src/app/page.tsx 2026-03-07 16:47:59 +00:00
3b93e5fe6a Update src/app/layout.tsx 2026-03-07 16:47:59 +00:00
b0f2811b42 Merge version_1 into main
Merge version_1 into main
2026-03-07 05:31:42 +00:00
2 changed files with 53 additions and 0 deletions

View File

@@ -33,6 +33,11 @@ export default function RootLayout({
}>) {
return (
<html lang="en" suppressHydrationWarning>
<head>
<meta httpEquiv="Cache-Control" content="max-age=3600, must-revalidate" />
<meta httpEquiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<ServiceWrapper>
<body
className={`${halant.variable} ${inter.variable} ${openSans.variable} antialiased`}

View File

@@ -10,8 +10,56 @@ import TestimonialCardFifteen from '@/components/sections/testimonial/Testimonia
import ContactCTA from '@/components/sections/contact/ContactCTA';
import FooterBase from '@/components/sections/footer/FooterBase';
import { Car, Wrench, CheckCircle, Phone } from 'lucide-react';
import { useEffect } from 'react';
declare global {
interface Window {
__performanceMetrics?: {
navigationStart?: number;
pageLoadTime?: number;
firstContentfulPaint?: number;
largestContentfulPaint?: number;
};
}
}
export default function LandingPage() {
useEffect(() => {
// Initialize performance monitoring
if (typeof window !== 'undefined' && 'performance' in window) {
const navigationStart = performance.timing?.navigationStart || 0;
const pageLoadTime = performance.timing?.loadEventEnd - navigationStart || 0;
// Store performance metrics
if (!window.__performanceMetrics) {
window.__performanceMetrics = {};
}
window.__performanceMetrics.navigationStart = navigationStart;
window.__performanceMetrics.pageLoadTime = pageLoadTime;
// Log metrics for monitoring
if (process.env.NODE_ENV === 'development') {
console.log('[Performance] Page Load Time:', pageLoadTime, 'ms');
}
// Monitor Core Web Vitals using PerformanceObserver
try {
if ('PerformanceObserver' in window) {
const observer = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
if (entry.name.includes('navigation')) {
window.__performanceMetrics!.navigationStart = (entry as any).startTime;
}
}
});
observer.observe({ entryTypes: ['navigation', 'paint', 'largest-contentful-paint'] });
}
} catch (e) {
// Gracefully handle PerformanceObserver not supported
}
}
}, []);
return (
<ThemeProvider
defaultButtonVariant="hover-bubble"