Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5002c80afd | |||
| 4389f8942f | |||
| d513885a41 | |||
| 949ebcfddb | |||
| 7a8945520d | |||
| 892ae4d405 | |||
| c941dab6e0 | |||
| 1415f0e81f | |||
| 57a2c861f2 | |||
| 0fc491d50a |
@@ -2,10 +2,10 @@
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import ContactText from '@/components/sections/contact/ContactText';
|
||||
import FaqDouble from '@/components/sections/faq/FaqDouble';
|
||||
import FooterBase from '@/components/sections/footer/FooterBase';
|
||||
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||
import ContactSplit from '@/components/sections/contact/ContactSplit';
|
||||
import FaqSplitMedia from '@/components/sections/faq/FaqSplitMedia';
|
||||
import FooterLogoReveal from '@/components/sections/footer/FooterLogoReveal';
|
||||
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
|
||||
|
||||
export default function LandingPage() {
|
||||
return (
|
||||
@@ -23,7 +23,7 @@ export default function LandingPage() {
|
||||
>
|
||||
<ReactLenis root>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleCentered
|
||||
<NavbarStyleApple
|
||||
navItems={[
|
||||
{
|
||||
name: "Home", id: "/"},
|
||||
@@ -34,31 +34,31 @@ export default function LandingPage() {
|
||||
{
|
||||
name: "Contact", id: "/contact"},
|
||||
]}
|
||||
button={{
|
||||
text: "Get a Free Quote", href: "/contact"}}
|
||||
logoSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3EsInlEOoSiMI8mFEzeygc6zaoo/uploaded-1780963238289-ovhlz3j6.png"
|
||||
logoAlt="FloorCraft Logo"
|
||||
brandName="FloorCraft"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact-form" data-section="contact-form">
|
||||
<ContactText
|
||||
<ContactSplit
|
||||
useInvertedBackground={false}
|
||||
background={{
|
||||
variant: "plain"}}
|
||||
text="Ready to Transform Your Floors? Contact Us for a Free Quote Today!"
|
||||
buttons={[
|
||||
{
|
||||
text: "Call Us Now: (770) 374-7706", href: "tel:+15551234567"},
|
||||
{
|
||||
text: "Email Us: Floorcraftt@gmail.com", href: "mailto:info@floorcraft.com"},
|
||||
]}
|
||||
title="Ready to Transform Your Floors?"
|
||||
description="Contact Us for a Free Quote Today!"
|
||||
tag="Get in Touch"
|
||||
imageSrc="https://img.b2bpic.net/free-photo/young-man-working-computer-desk_23-2147814498.jpg?id=433612503"
|
||||
imageAlt="Contact us for a free quote"
|
||||
mediaPosition="right"
|
||||
mediaAnimation="slide-up"
|
||||
inputPlaceholder="Your Email"
|
||||
buttonText="Submit Request"
|
||||
termsText="By submitting, you agree to our Terms and Conditions."
|
||||
onSubmit={(email) => console.log(email)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqDouble
|
||||
<FaqSplitMedia
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={true}
|
||||
faqs={[
|
||||
@@ -78,53 +78,22 @@ export default function LandingPage() {
|
||||
title="Common Questions About Flooring"
|
||||
description="Got questions? We've got answers. Find out everything you need to know about hardwood installation, sanding, maintenance, and our process."
|
||||
faqsAnimation="slide-up"
|
||||
imageSrc="https://img.b2bpic.net/free-photo/modern-interior-design-with-empty-wall_23-2151044458.jpg?id=413550269"
|
||||
imageAlt="FAQ section media"
|
||||
mediaAnimation="slide-up"
|
||||
mediaPosition="left"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBase
|
||||
columns={[
|
||||
{
|
||||
title: "Navigation", items: [
|
||||
{
|
||||
label: "Home", href: "/"},
|
||||
{
|
||||
label: "Services", href: "/services"},
|
||||
{
|
||||
label: "Gallery", href: "/gallery"},
|
||||
{
|
||||
label: "Contact", href: "/contact"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Services", items: [
|
||||
{
|
||||
label: "Hardwood Installation", href: "/services#hardwood-installation"},
|
||||
{
|
||||
label: "Floor Sanding", href: "/services#floor-sanding"},
|
||||
{
|
||||
label: "Free Estimates", href: "/services#free-estimates"},
|
||||
{
|
||||
label: "Custom Designs", href: "/services#custom-designs"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "About Us", items: [
|
||||
{
|
||||
label: "Our Story", href: "/#about"},
|
||||
{
|
||||
label: "Testimonials", href: "/#home-testimonials"},
|
||||
{
|
||||
label: "Service Areas", href: "/services#service-areas"},
|
||||
{
|
||||
label: "FAQs", href: "/contact#faq"},
|
||||
],
|
||||
},
|
||||
]}
|
||||
<FooterLogoReveal
|
||||
logoSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3EsInlEOoSiMI8mFEzeygc6zaoo/uploaded-1780963238289-ovhlz3j6.png"
|
||||
logoAlt="FloorCraft Logo"
|
||||
logoText="FloorCraft"
|
||||
copyrightText="© 2024 FloorCraft. All rights reserved."
|
||||
leftLink={{
|
||||
text: "Home", href: "/"}}
|
||||
rightLink={{
|
||||
text: "Contact", href: "/contact"}}
|
||||
/>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
|
||||
@@ -12,9 +12,6 @@ import TestimonialCardSixteen from '@/components/sections/testimonial/Testimonia
|
||||
import { Award, Briefcase, Calendar, Cog, Home, Hammer, MessageCircle, Paintbrush, Sparkles, Star, Brush, ClipboardCheck } from "lucide-react";
|
||||
|
||||
export default function LandingPage() {
|
||||
// Placeholder for a translation function. In a real app, this would be imported from an i18n library.
|
||||
const t = (key: string) => key;
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="directional-hover"
|
||||
@@ -191,14 +188,14 @@ export default function LandingPage() {
|
||||
testimonials={[]}
|
||||
kpiItems={[
|
||||
{
|
||||
value: "5.0", label: t('home_testimonials.kpi_average_rating')},
|
||||
value: "5.0", label: "Average Rating"},
|
||||
{
|
||||
value: "98%", label: t('home_testimonials.kpi_client_retention')},
|
||||
value: "98%", label: "Client Retention"},
|
||||
{
|
||||
value: "100%", label: t('home_testimonials.kpi_satisfaction')},
|
||||
value: "100%", label: "Satisfaction"},
|
||||
]}
|
||||
title={t('home_testimonials.title')}
|
||||
description={t('home_testimonials.description')}
|
||||
title="What Our Family of Customers Says"
|
||||
description="Hearing from our satisfied clients is the greatest reward. Their trust in our craftsmanship and personal approach is the foundation of our business."
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -206,15 +203,9 @@ export default function LandingPage() {
|
||||
<SocialProofOne
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
names={[
|
||||
t('social_proof.client_a'),
|
||||
t('social_proof.client_b'),
|
||||
t('social_proof.client_c'),
|
||||
t('social_proof.client_d'),
|
||||
t('social_proof.client_e'),
|
||||
]}
|
||||
title={t('social_proof.title')}
|
||||
description={t('social_proof.description')}
|
||||
names={[]}
|
||||
title=""
|
||||
description=""
|
||||
speed={40}
|
||||
/>
|
||||
</div>
|
||||
@@ -223,46 +214,46 @@ export default function LandingPage() {
|
||||
<FooterBase
|
||||
columns={[
|
||||
{
|
||||
title: t('footer.navigation_title'), items: [
|
||||
title: "Navigation", items: [
|
||||
{
|
||||
label: t('footer.home_label'), href: "/"},
|
||||
label: "Home", href: "/"},
|
||||
{
|
||||
label: t('footer.services_label'), href: "/services"},
|
||||
label: "Services", href: "/services"},
|
||||
{
|
||||
label: t('footer.gallery_label'), href: "/gallery"},
|
||||
label: "Gallery", href: "/gallery"},
|
||||
{
|
||||
label: t('footer.contact_label'), href: "/contact"},
|
||||
label: "Contact", href: "/contact"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: t('footer.services_column_title'), items: [
|
||||
title: "Services", items: [
|
||||
{
|
||||
label: t('footer.service_hardwood_installation'), href: "/services#hardwood-installation"},
|
||||
label: "Hardwood Installation", href: "/services#hardwood-installation"},
|
||||
{
|
||||
label: t('footer.service_floor_sanding'), href: "/services#floor-sanding"},
|
||||
label: "Floor Sanding", href: "/services#floor-sanding"},
|
||||
{
|
||||
label: t('footer.service_free_estimates'), href: "/services#free-estimates"},
|
||||
label: "Free Estimates", href: "/services#free-estimates"},
|
||||
{
|
||||
label: t('footer.service_custom_designs'), href: "/services#custom-designs"},
|
||||
label: "Custom Designs", href: "/services#custom-designs"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: t('footer.about_us_title'), items: [
|
||||
title: "About Us", items: [
|
||||
{
|
||||
label: t('footer.about_our_story'), href: "/#about"},
|
||||
label: "Our Story", href: "/#about"},
|
||||
{
|
||||
label: t('footer.about_testimonials'), href: "/#home-testimonials"},
|
||||
label: "Testimonials", href: "/#home-testimonials"},
|
||||
{
|
||||
label: t('footer.about_service_areas'), href: "/services#service-areas"},
|
||||
label: "Service Areas", href: "/services#service-areas"},
|
||||
{
|
||||
label: t('footer.about_faqs'), href: "/contact#faq"},
|
||||
label: "FAQs", href: "/contact#faq"},
|
||||
],
|
||||
},
|
||||
]}
|
||||
logoSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3EsInlEOoSiMI8mFEzeygc6zaoo/uploaded-1780963238289-ovhlz3j6.png"
|
||||
logoAlt="FloorCraft Logo"
|
||||
logoText={t('footer.logo_text')}
|
||||
copyrightText={t('footer.copyright_text')}
|
||||
logoText="FloorCraft"
|
||||
copyrightText="© 2024 FloorCraft. All rights reserved."
|
||||
/>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
|
||||
13
src/i18n.ts
13
src/i18n.ts
@@ -1,13 +0,0 @@
|
||||
// @ts-expect-error next-intl server config type mismatch
|
||||
import { getRequestConfig } from 'next-intl/server';
|
||||
import { notFound } from 'next/navigation';
|
||||
|
||||
export const locales = ['en', 'es'];
|
||||
|
||||
export default getRequestConfig(async ({ locale }) => {
|
||||
if (!locales.includes(locale as any)) notFound();
|
||||
|
||||
return {
|
||||
messages: (await import(`../messages/${locale}.json`)).default,
|
||||
};
|
||||
});
|
||||
@@ -1,18 +0,0 @@
|
||||
// @ts-expect-error next-intl middleware type incompatibility
|
||||
import createMiddleware from 'next-intl/middleware';
|
||||
import { locales } from './i18n';
|
||||
|
||||
export default createMiddleware({
|
||||
locales,
|
||||
defaultLocale: 'en',
|
||||
localePrefix: 'as-needed',
|
||||
});
|
||||
|
||||
export const config = {
|
||||
matcher: [
|
||||
'/',
|
||||
'/(es|en)/:path*',
|
||||
// Enable a redirect to a matching locale at the root
|
||||
// '/((?!_next|_vercel|.*\..*).*)',
|
||||
],
|
||||
};
|
||||
Reference in New Issue
Block a user