Merge version_2 into main

Merge version_2 into main
This commit was merged in pull request #1.
This commit is contained in:
2026-04-18 14:08:07 +00:00
4 changed files with 104 additions and 268 deletions

19
src/app/about-us/page.tsx Normal file
View File

@@ -0,0 +1,19 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import SplitAbout from '@/components/sections/about/SplitAbout';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
export default function AboutUsPage() {
return (
<ThemeProvider>
<ReactLenis root>
<NavbarStyleCentered navItems={[{ name: "Home", id: "/" }, { name: "Shop", id: "/shop" }, { name: "About Us", id: "/about-us" }, { name: "Contact", id: "/contact" }]} brandName="WatchHub" />
<SplitAbout title="About Us" description="Learn about our journey and passion for watchmaking." textboxLayout="default" />
<FooterBaseCard logoText="WatchHub" columns={[]} />
</ReactLenis>
</ThemeProvider>
);
}

19
src/app/contact/page.tsx Normal file
View File

@@ -0,0 +1,19 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import ContactText from '@/components/sections/contact/ContactText';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
export default function ContactPage() {
return (
<ThemeProvider>
<ReactLenis root>
<NavbarStyleCentered navItems={[{ name: "Home", id: "/" }, { name: "Shop", id: "/shop" }, { name: "About Us", id: "/about-us" }, { name: "Contact", id: "/contact" }]} brandName="WatchHub" />
<ContactText text="Get in touch with our team." background={{ variant: "plain" }} />
<FooterBaseCard logoText="WatchHub" columns={[]} />
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -8,12 +8,15 @@ import FeatureCardTwelve from '@/components/sections/feature/FeatureCardTwelve';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
import HeroBillboardCarousel from '@/components/sections/hero/HeroBillboardCarousel';
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
import SocialProofOne from '@/components/sections/socialProof/SocialProofOne';
import SplitAbout from '@/components/sections/about/SplitAbout';
import TestimonialCardSixteen from '@/components/sections/testimonial/TestimonialCardSixteen';
export default function LandingPage() {
const addToCart = (product: any) => console.log("Added to cart:", product);
const buyNow = (product: any) => console.log("Buy now:", product);
return (
<ThemeProvider
defaultButtonVariant="hover-bubble"
@@ -31,22 +34,10 @@ export default function LandingPage() {
<div id="nav" data-section="nav">
<NavbarStyleCentered
navItems={[
{
name: "Home",
id: "hero",
},
{
name: "Collections",
id: "products",
},
{
name: "About",
id: "about",
},
{
name: "FAQ",
id: "faq",
},
{ name: "Home", id: "hero" },
{ name: "Collections", id: "products" },
{ name: "About", id: "about" },
{ name: "FAQ", id: "faq" },
]}
brandName="WatchHub"
/>
@@ -54,42 +45,14 @@ export default function LandingPage() {
<div id="hero" data-section="hero">
<HeroBillboardCarousel
background={{
variant: "gradient-bars",
}}
background={{ variant: "gradient-bars" }}
title="Discover Your Perfect Timepiece Today"
description="Explore curated collections of luxury, sports, and everyday watches from world-renowned brands. Find the watch that matches your style and budget."
buttons={[
{
text: "Shop Now",
href: "#products",
},
]}
buttons={[{ text: "Shop Now", href: "#products" }]}
mediaItems={[
{
imageSrc: "http://img.b2bpic.net/free-photo/close-up-modern-man-accessories_1328-2271.jpg",
imageAlt: "Luxury watch display",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/fitness-tracker-sport-bracelet-smartwatch-technology_53876-102355.jpg",
imageAlt: "Sports watch action",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/side-view-business-woman-checking-her-watch_23-2149457699.jpg",
imageAlt: "Minimalist everyday watch",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/view-vintage-objects-still-life_23-2150348528.jpg",
imageAlt: "Curated watch collection",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/grunge-old-vintage-clock_1232-1719.jpg",
imageAlt: "Intricate watch movement",
},
{
imageSrc: "http://img.b2bpic.net/free-photo/tense-young-handsome-guy-wearing-black-t-shirt-with-headphones-playing-phone-isolated-blue-wall_141793-106424.jpg",
imageAlt: "Smartwatch lifestyle",
},
{ imageSrc: "http://img.b2bpic.net/free-photo/close-up-modern-man-accessories_1328-2271.jpg", imageAlt: "Luxury watch display" },
{ imageSrc: "http://img.b2bpic.net/free-photo/fitness-tracker-sport-bracelet-smartwatch-technology_53876-102355.jpg", imageAlt: "Sports watch action" },
{ imageSrc: "http://img.b2bpic.net/free-photo/side-view-business-woman-checking-her-watch_23-2149457699.jpg", imageAlt: "Minimalist everyday watch" }
]}
/>
</div>
@@ -100,36 +63,9 @@ export default function LandingPage() {
textboxLayout="default"
useInvertedBackground={false}
features={[
{
id: "f1",
label: "Quality",
title: "Authentic Brands",
items: [
"Certified original watches",
"Direct brand partnerships",
"Expert authentication",
],
},
{
id: "f2",
label: "Security",
title: "Safe Shopping",
items: [
"Secure checkout",
"Insured shipping",
"Easy returns",
],
},
{
id: "f3",
label: "Service",
title: "Expert Guidance",
items: [
"Personalized styling",
"Detailed specs",
"24/7 support",
],
},
{ id: "f1", label: "Quality", title: "Authentic Brands", items: ["Certified original watches", "Direct brand partnerships", "Expert authentication"] },
{ id: "f2", label: "Security", title: "Safe Shopping", items: ["Secure checkout", "Insured shipping", "Easy returns"] },
{ id: "f3", label: "Service", title: "Expert Guidance", items: ["Personalized styling", "Detailed specs", "24/7 support"] },
]}
title="Why Choose WatchHub?"
description="Experience excellence in every purchase with our premium services."
@@ -137,51 +73,19 @@ export default function LandingPage() {
</div>
<div id="products" data-section="products">
<ProductCardOne
<ProductCardTwo
animationType="slide-up"
textboxLayout="default"
gridVariant="four-items-2x2-equal-grid"
useInvertedBackground={true}
products={[
{
id: "p1",
name: "Classic Chronograph",
price: "$1,299",
imageSrc: "http://img.b2bpic.net/free-photo/male-self-care-items-arrangement_23-2150347137.jpg",
},
{
id: "p2",
name: "Rose Gold Minimal",
price: "$899",
imageSrc: "http://img.b2bpic.net/free-photo/futuristic-time-machine_23-2151599400.jpg",
},
{
id: "p3",
name: "Rugged Diver Pro",
price: "$1,550",
imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-adventure-items-still-life_23-2148362097.jpg",
},
{
id: "p4",
name: "Smart Pulse Elite",
price: "$450",
imageSrc: "http://img.b2bpic.net/free-photo/sporty-woman-with-smartwatch-beach_23-2147803054.jpg",
},
{
id: "p5",
name: "Silver Heritage Link",
price: "$1,100",
imageSrc: "http://img.b2bpic.net/free-photo/businessman-checking-time-hand-watch_53876-20483.jpg",
},
{
id: "p6",
name: "Aviator Pilot Edition",
price: "$1,799",
imageSrc: "http://img.b2bpic.net/free-photo/close-up-male-hiker-holding-binocular-his-hand_23-2147842539.jpg",
},
]}
title="Featured Collections"
description="Browse our latest arrivals and timeless classics."
products={[
{ id: "p1", brand: "Luxury", name: "Classic Chronograph", price: "$1,299", rating: 5, reviewCount: "128", imageSrc: "http://img.b2bpic.net/free-photo/male-self-care-items-arrangement_23-2150347137.jpg", onProductClick: () => buyNow("p1") },
{ id: "p2", brand: "Minimal", name: "Rose Gold Minimal", price: "$899", rating: 4, reviewCount: "85", imageSrc: "http://img.b2bpic.net/free-photo/futuristic-time-machine_23-2151599400.jpg", onProductClick: () => addToCart("p2") },
{ id: "p3", brand: "Pro", name: "Rugged Diver Pro", price: "$1,550", rating: 5, reviewCount: "210", imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-adventure-items-still-life_23-2148362097.jpg", onProductClick: () => buyNow("p3") },
{ id: "p4", brand: "Elite", name: "Smart Pulse Elite", price: "$450", rating: 4, reviewCount: "45", imageSrc: "http://img.b2bpic.net/free-photo/sporty-woman-with-smartwatch-beach_23-2147803054.jpg", onProductClick: () => addToCart("p4") },
]}
/>
</div>
@@ -193,18 +97,9 @@ export default function LandingPage() {
title="Our Legacy"
description="WatchHub was built on a passion for precision, style, and engineering. We curate only the best timepieces to match the unique needs of our global community."
bulletPoints={[
{
title: "Expert Curation",
description: "Hand-picked styles for every persona.",
},
{
title: "Global Reach",
description: "Delivered to your doorstep anywhere.",
},
{
title: "Customer First",
description: "Dedicated support throughout the journey.",
},
{ title: "Expert Curation", description: "Hand-picked styles for every persona." },
{ title: "Global Reach", description: "Delivered to your doorstep anywhere." },
{ title: "Customer First", description: "Dedicated support throughout the journey." },
]}
imageSrc="http://img.b2bpic.net/free-photo/mature-clockmaster-is-fixing-old-watch-customer-his-busy-repairing-workshop_613910-20851.jpg"
mediaAnimation="slide-up"
@@ -217,60 +112,13 @@ export default function LandingPage() {
textboxLayout="default"
useInvertedBackground={true}
testimonials={[
{
id: "1",
name: "Sarah J.",
role: "Collector",
company: "TechCorp",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/smiling-business-leader-using-smartphone-lobby_1262-5625.jpg",
},
{
id: "2",
name: "Michael C.",
role: "Architect",
company: "Innovate",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-hispanic-woman-wearing-business-jacket-looking-confident-camera-smiling-with-crossed-arms-hand-raised-chin-thinking-positive_839833-8974.jpg",
},
{
id: "3",
name: "Emily R.",
role: "Director",
company: "Growth",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/successful-business-man-by-skyscraper_1303-10291.jpg",
},
{
id: "4",
name: "David K.",
role: "Manager",
company: "Startups",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/pretty-woman-sitting-with-vivid-bags_23-2147652113.jpg",
},
{
id: "5",
name: "Jessica L.",
role: "Designer",
company: "Creative",
rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/young-black-girl-happy-expression_1194-4469.jpg",
},
{ id: "1", name: "Sarah J.", role: "Collector", company: "TechCorp", rating: 5 },
{ id: "2", name: "Michael C.", role: "Architect", company: "Innovate", rating: 5 }
]}
kpiItems={[
{
value: "10k+",
label: "Watches Sold",
},
{
value: "4.9/5",
label: "Rating",
},
{
value: "50+",
label: "Luxury Brands",
},
{ value: "10k+", label: "Watches Sold" },
{ value: "4.9/5", label: "Rating" },
{ value: "50+", label: "Luxury Brands" },
]}
title="What Our Clients Say"
description="Our community values the quality and reliability we provide."
@@ -281,15 +129,7 @@ export default function LandingPage() {
<SocialProofOne
textboxLayout="default"
useInvertedBackground={false}
names={[
"Rolex Official",
"Omega Partners",
"Seiko Group",
"TAG Heuer Elite",
"Citizen Official",
"Casio Pro",
"Hamilton Luxury",
]}
names={["Rolex", "Omega", "Seiko", "TAG Heuer", "Citizen", "Casio", "Hamilton"]}
title="Trusted by Leaders"
description="We partner with the world's most reputable timepiece manufacturers."
/>
@@ -299,21 +139,9 @@ export default function LandingPage() {
<FaqSplitText
useInvertedBackground={true}
faqs={[
{
id: "q1",
title: "How is authentication handled?",
content: "Every watch is verified for authenticity before being listed.",
},
{
id: "q2",
title: "What is the return policy?",
content: "We offer a 30-day return policy for unused, original condition items.",
},
{
id: "q3",
title: "Do you offer international shipping?",
content: "Yes, we ship globally with fully insured courier services.",
},
{ id: "q1", title: "How is authentication handled?", content: "Every watch is verified for authenticity before being listed." },
{ id: "q2", title: "What is the return policy?", content: "We offer a 30-day return policy for unused, original condition items." },
{ id: "q3", title: "Do you offer international shipping?", content: "Yes, we ship globally with fully insured courier services." },
]}
sideTitle="Questions?"
faqsAnimation="slide-up"
@@ -323,16 +151,9 @@ export default function LandingPage() {
<div id="contact" data-section="contact">
<ContactText
useInvertedBackground={false}
background={{
variant: "plain",
}}
background={{ variant: "plain" }}
text="Ready to find your signature timepiece? Our team is standing by to help."
buttons={[
{
text: "Contact Support",
href: "mailto:hello@watchhub.com",
},
]}
buttons={[{ text: "Contact Support", href: "mailto:hello@watchhub.com" }]}
/>
</div>
@@ -340,61 +161,13 @@ export default function LandingPage() {
<FooterBaseCard
logoText="WatchHub"
columns={[
{
title: "Shop",
items: [
{
label: "Luxury",
href: "#products",
},
{
label: "Sports",
href: "#products",
},
{
label: "Everyday",
href: "#products",
},
],
},
{
title: "Account",
items: [
{
label: "Order Status",
href: "#",
},
{
label: "Support",
href: "#",
},
{
label: "Privacy",
href: "#",
},
],
},
{
title: "Company",
items: [
{
label: "About Us",
href: "#about",
},
{
label: "Careers",
href: "#",
},
{
label: "FAQ",
href: "#faq",
},
],
},
{ title: "Shop", items: [{ label: "Luxury", href: "#products" }, { label: "Sports", href: "#products" }] },
{ title: "Account", items: [{ label: "Order Status", href: "#" }, { label: "Support", href: "#" }] },
{ title: "Company", items: [{ label: "About Us", href: "#about" }, { label: "FAQ", href: "#faq" }] },
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}
}

25
src/app/shop/page.tsx Normal file
View File

@@ -0,0 +1,25 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
export default function ShopPage() {
return (
<ThemeProvider>
<ReactLenis root>
<NavbarStyleCentered navItems={[{ name: "Home", id: "/" }, { name: "Shop", id: "/shop" }, { name: "About Us", id: "/about-us" }, { name: "Contact", id: "/contact" }]} brandName="WatchHub" />
<ProductCardOne
gridVariant="four-items-2x2-equal-grid"
animationType="slide-up"
textboxLayout="default"
title="Our Shop"
description="All collections available now."
/>
<FooterBaseCard logoText="WatchHub" columns={[]} />
</ReactLenis>
</ThemeProvider>
);
}