Merge version_2 into main
Merge version_2 into main
This commit was merged in pull request #1.
This commit is contained in:
19
src/app/about-us/page.tsx
Normal file
19
src/app/about-us/page.tsx
Normal 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
19
src/app/contact/page.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
309
src/app/page.tsx
309
src/app/page.tsx
@@ -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
25
src/app/shop/page.tsx
Normal 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>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user