Merge version_2 into main #3
38
src/app/cart/page.tsx
Normal file
38
src/app/cart/page.tsx
Normal file
@@ -0,0 +1,38 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
|
||||
import ProductCart from '@/components/ecommerce/cart/ProductCart';
|
||||
import FooterBase from '@/components/sections/footer/FooterBase';
|
||||
import { useState } from "react";
|
||||
|
||||
export default function CartPage() {
|
||||
const [items, setItems] = useState([
|
||||
{ id: "p1", name: "Premium Gadget", price: "$129", quantity: 1, imageSrc: "http://img.b2bpic.net/free-photo/green-leaves-stacked-book-against-white-backdrop_23-2147924495.jpg" }
|
||||
]);
|
||||
|
||||
return (
|
||||
<ThemeProvider>
|
||||
<ReactLenis root>
|
||||
<NavbarLayoutFloatingInline
|
||||
navItems={[{ name: "Home", id: "hero" }, { name: "Cart", id: "/cart" }, { name: "Checkout", id: "/checkout" }]}
|
||||
brandName="ShopifyPro"
|
||||
/>
|
||||
<main className="py-20 px-6 container mx-auto">
|
||||
<ProductCart
|
||||
isOpen={true}
|
||||
onClose={() => {}}
|
||||
items={items}
|
||||
total="$129"
|
||||
buttons={[{ text: "Checkout Now", href: "/checkout" }]}
|
||||
/>
|
||||
</main>
|
||||
<FooterBase
|
||||
columns={[{ title: "Company", items: [{ label: "About Us", href: "#" }] }]}
|
||||
logoText="ShopifyPro"
|
||||
/>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
40
src/app/checkout/page.tsx
Normal file
40
src/app/checkout/page.tsx
Normal file
@@ -0,0 +1,40 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
|
||||
import FooterBase from '@/components/sections/footer/FooterBase';
|
||||
|
||||
export default function CheckoutPage() {
|
||||
return (
|
||||
<ThemeProvider>
|
||||
<ReactLenis root>
|
||||
<NavbarLayoutFloatingInline
|
||||
navItems={[{ name: "Home", id: "hero" }, { name: "Cart", id: "/cart" }, { name: "Checkout", id: "/checkout" }]}
|
||||
brandName="ShopifyPro"
|
||||
/>
|
||||
<main className="py-20 px-6 container mx-auto flex flex-col items-center">
|
||||
<h1 className="text-4xl font-bold mb-8">Checkout</h1>
|
||||
<div className="w-full max-w-2xl bg-card p-8 rounded-lg shadow-sm border border-border">
|
||||
<h2 className="text-xl font-semibold mb-4">Order Summary</h2>
|
||||
<div className="flex justify-between border-b pb-4 mb-4">
|
||||
<span>Premium Gadget (x1)</span>
|
||||
<span>$129</span>
|
||||
</div>
|
||||
<div className="flex justify-between font-bold text-xl mb-8">
|
||||
<span>Total</span>
|
||||
<span>$129</span>
|
||||
</div>
|
||||
<button className="w-full bg-primary-cta text-white py-3 rounded-md hover:opacity-90 transition-opacity">
|
||||
Confirm & Pay
|
||||
</button>
|
||||
</div>
|
||||
</main>
|
||||
<FooterBase
|
||||
columns={[{ title: "Company", items: [{ label: "About Us", href: "#" }] }]}
|
||||
logoText="ShopifyPro"
|
||||
/>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
196
src/app/page.tsx
196
src/app/page.tsx
@@ -2,15 +2,17 @@
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import ContactText from '@/components/sections/contact/ContactText';
|
||||
import FooterBase from '@/components/sections/footer/FooterBase';
|
||||
import HeroSplitDualMedia from '@/components/sections/hero/HeroSplitDualMedia';
|
||||
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
|
||||
import PricingCardOne from '@/components/sections/pricing/PricingCardOne';
|
||||
import ProductCatalog from '@/components/ecommerce/productCatalog/ProductCatalog';
|
||||
import TestimonialCardFifteen from '@/components/sections/testimonial/TestimonialCardFifteen';
|
||||
import { Suspense, lazy } from "react";
|
||||
import { Sparkles } from "lucide-react";
|
||||
|
||||
const ContactText = lazy(() => import('@/components/sections/contact/ContactText'));
|
||||
const FooterBase = lazy(() => import('@/components/sections/footer/FooterBase'));
|
||||
const HeroSplitDualMedia = lazy(() => import('@/components/sections/hero/HeroSplitDualMedia'));
|
||||
const NavbarLayoutFloatingInline = lazy(() => import('@/components/navbar/NavbarLayoutFloatingInline'));
|
||||
const PricingCardOne = lazy(() => import('@/components/sections/pricing/PricingCardOne'));
|
||||
const ProductCatalog = lazy(() => import('@/components/ecommerce/productCatalog/ProductCatalog'));
|
||||
const TestimonialCardFifteen = lazy(() => import('@/components/sections/testimonial/TestimonialCardFifteen'));
|
||||
|
||||
export default function LandingPage() {
|
||||
return (
|
||||
<ThemeProvider
|
||||
@@ -26,101 +28,103 @@ export default function LandingPage() {
|
||||
headingFontWeight="normal"
|
||||
>
|
||||
<ReactLenis root>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarLayoutFloatingInline
|
||||
navItems={[
|
||||
{ name: "Home", id: "hero" },
|
||||
{ name: "Products", id: "catalog" },
|
||||
{ name: "Contact", id: "contact" },
|
||||
]}
|
||||
brandName="ShopifyPro"
|
||||
button={{ text: "Get Started", href: "#" }}
|
||||
/>
|
||||
</div>
|
||||
<Suspense fallback={<div className="h-20" />}>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarLayoutFloatingInline
|
||||
navItems={[
|
||||
{ name: "Home", id: "hero" },
|
||||
{ name: "Products", id: "catalog" },
|
||||
{ name: "Contact", id: "contact" },
|
||||
]}
|
||||
brandName="ShopifyPro"
|
||||
button={{ text: "Get Started", href: "#" }}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroSplitDualMedia
|
||||
background={{ variant: "gradient-bars" }}
|
||||
title="Everything you need, delivered perfectly."
|
||||
description="Discover our curated selection of high-quality products designed for your modern lifestyle. Quality meets convenience at every click."
|
||||
tag="New Arrivals"
|
||||
mediaItems={[
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/stylish-girl-standing-cafe-with-shopping-bags_1157-32427.jpg", imageAlt: "Modern shopping aesthetic" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/monochrome-beauty-product-skincare_23-2151307225.jpg", imageAlt: "Premium product packaging" },
|
||||
]}
|
||||
mediaAnimation="slide-up"
|
||||
rating={5}
|
||||
ratingText="Trusted by 5,000+ customers"
|
||||
tagIcon={Sparkles}
|
||||
/>
|
||||
</div>
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroSplitDualMedia
|
||||
background={{ variant: "gradient-bars" }}
|
||||
title="Everything you need, delivered perfectly."
|
||||
description="Discover our curated selection of high-quality products designed for your modern lifestyle. Quality meets convenience at every click."
|
||||
tag="New Arrivals"
|
||||
mediaItems={[
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/stylish-girl-standing-cafe-with-shopping-bags_1157-32427.jpg?w=800&q=75", imageAlt: "Modern shopping aesthetic" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/monochrome-beauty-product-skincare_23-2151307225.jpg?w=800&q=75", imageAlt: "Premium product packaging" },
|
||||
]}
|
||||
mediaAnimation="slide-up"
|
||||
rating={5}
|
||||
ratingText="Trusted by 5,000+ customers"
|
||||
tagIcon={Sparkles}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="catalog" data-section="catalog">
|
||||
<ProductCatalog
|
||||
layout="section"
|
||||
products={[
|
||||
{ id: "p1", name: "Premium Gadget", price: "$129", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/green-leaves-stacked-book-against-white-backdrop_23-2147924495.jpg" },
|
||||
{ id: "p2", name: "Designer Decor", price: "$89", rating: 4, imageSrc: "http://img.b2bpic.net/free-photo/close-up-arrangement-modern-vases_23-2149646557.jpg" },
|
||||
{ id: "p3", name: "Smart Accessory", price: "$45", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/black-white-cover-books-with-green-twig-against-white-background_23-2147924492.jpg" },
|
||||
{ id: "p4", name: "Lifestyle Kit", price: "$159", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-frame-with-grey-bottle-copy-space_23-2148295666.jpg" },
|
||||
{ id: "p5", name: "Essential Tech", price: "$65", rating: 4, imageSrc: "http://img.b2bpic.net/free-photo/wireless-earbuds-with-neon-cyberpunk-style-lighting_23-2151074264.jpg" },
|
||||
{ id: "p6", name: "Modern Tool", price: "$99", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/top-view-plastic-bottles-assortment_23-2149449773.jpg" },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
<div id="catalog" data-section="catalog">
|
||||
<ProductCatalog
|
||||
layout="section"
|
||||
products={[
|
||||
{ id: "p1", name: "Premium Gadget", price: "$129", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/green-leaves-stacked-book-against-white-backdrop_23-2147924495.jpg?w=400&q=75" },
|
||||
{ id: "p2", name: "Designer Decor", price: "$89", rating: 4, imageSrc: "http://img.b2bpic.net/free-photo/close-up-arrangement-modern-vases_23-2149646557.jpg?w=400&q=75" },
|
||||
{ id: "p3", name: "Smart Accessory", price: "$45", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/black-white-cover-books-with-green-twig-against-white-background_23-2147924492.jpg?w=400&q=75" },
|
||||
{ id: "p4", name: "Lifestyle Kit", price: "$159", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/flat-lay-frame-with-grey-bottle-copy-space_23-2148295666.jpg?w=400&q=75" },
|
||||
{ id: "p5", name: "Essential Tech", price: "$65", rating: 4, imageSrc: "http://img.b2bpic.net/free-photo/wireless-earbuds-with-neon-cyberpunk-style-lighting_23-2151074264.jpg?w=400&q=75" },
|
||||
{ id: "p6", name: "Modern Tool", price: "$99", rating: 5, imageSrc: "http://img.b2bpic.net/free-photo/top-view-plastic-bottles-assortment_23-2149449773.jpg?w=400&q=75" },
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialCardFifteen
|
||||
useInvertedBackground={false}
|
||||
testimonial="This shop changed my buying experience. High quality, great service, and fast shipping. Highly recommend!"
|
||||
rating={5}
|
||||
author="Sarah Miller"
|
||||
avatars={[
|
||||
{ src: "http://img.b2bpic.net/free-photo/expressive-young-girl-posing-studio_176474-79855.jpg", alt: "Customer 1" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/beautiful-woman-holding-shopping-bags_23-2148660755.jpg", alt: "Customer 2" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/portrait-beautiful-blond-woman-with-trendy-hairstyle_23-2149430868.jpg", alt: "Customer 3" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/elegance-glamour-concept-isolated-image-fashionable-glamourous-neat-young-female-with-freckled-face-loose-blonde-hair-smiling-joyfully-posing-studio-wearing-white-silky-blouse_343059-4200.jpg", alt: "Customer 4" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/portrait-woman-with-shopping-bags_23-2148225588.jpg", alt: "Customer 5" },
|
||||
]}
|
||||
ratingAnimation="blur-reveal"
|
||||
avatarsAnimation="slide-up"
|
||||
/>
|
||||
</div>
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialCardFifteen
|
||||
useInvertedBackground={false}
|
||||
testimonial="This shop changed my buying experience. High quality, great service, and fast shipping. Highly recommend!"
|
||||
rating={5}
|
||||
author="Sarah Miller"
|
||||
avatars={[
|
||||
{ src: "http://img.b2bpic.net/free-photo/expressive-young-girl-posing-studio_176474-79855.jpg?w=100&q=75", alt: "Customer 1" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/beautiful-woman-holding-shopping-bags_23-2148660755.jpg?w=100&q=75", alt: "Customer 2" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/portrait-beautiful-blond-woman-with-trendy-hairstyle_23-2149430868.jpg?w=100&q=75", alt: "Customer 3" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/elegance-glamour-concept-isolated-image-fashionable-glamourous-neat-young-female-with-freckled-face-loose-blonde-hair-smiling-joyfully-posing-studio-wearing-white-silky-blouse_343059-4200.jpg?w=100&q=75", alt: "Customer 4" },
|
||||
{ src: "http://img.b2bpic.net/free-photo/portrait-woman-with-shopping-bags_23-2148225588.jpg?w=100&q=75", alt: "Customer 5" },
|
||||
]}
|
||||
ratingAnimation="blur-reveal"
|
||||
avatarsAnimation="slide-up"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="pricing" data-section="pricing">
|
||||
<PricingCardOne
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
title="Simple, Transparent Pricing"
|
||||
description="Choose the plan that fits your shopping habits and start saving today."
|
||||
plans={[
|
||||
{ id: "basic", badge: "Starter", price: "$0", subtitle: "Perfect for casual shoppers.", features: ["Free shipping", "Monthly newsletter", "Basic support"] },
|
||||
{ id: "pro", badge: "Most Popular", price: "$19", subtitle: "For frequent buyers.", features: ["Unlimited free shipping", "Priority support", "Exclusive discounts", "Early access"] },
|
||||
]}
|
||||
buttons={[{ text: "View Plans", href: "#" }]}
|
||||
/>
|
||||
</div>
|
||||
<div id="pricing" data-section="pricing">
|
||||
<PricingCardOne
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
title="Simple, Transparent Pricing"
|
||||
description="Choose the plan that fits your shopping habits and start saving today."
|
||||
plans={[
|
||||
{ id: "basic", badge: "Starter", price: "$0", subtitle: "Perfect for casual shoppers.", features: ["Free shipping", "Monthly newsletter", "Basic support"] },
|
||||
{ id: "pro", badge: "Most Popular", price: "$19", subtitle: "For frequent buyers.", features: ["Unlimited free shipping", "Priority support", "Exclusive discounts", "Early access"] },
|
||||
]}
|
||||
buttons={[{ text: "View Plans", href: "#" }]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactText
|
||||
useInvertedBackground={false}
|
||||
background={{ variant: "radial-gradient" }}
|
||||
text="Need help with an order? Contact our support team for quick assistance."
|
||||
buttons={[{ text: "Get Support", href: "mailto:support@shopifypro.com" }]}
|
||||
/>
|
||||
</div>
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactText
|
||||
useInvertedBackground={false}
|
||||
background={{ variant: "radial-gradient" }}
|
||||
text="Need help with an order? Contact our support team for quick assistance."
|
||||
buttons={[{ text: "Get Support", href: "mailto:support@shopifypro.com" }]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBase
|
||||
columns={[
|
||||
{ title: "Company", items: [{ label: "About Us", href: "#" }, { label: "Careers", href: "#" }] },
|
||||
{ title: "Support", items: [{ label: "Contact", href: "#contact" }, { label: "Shipping", href: "#" }] },
|
||||
]}
|
||||
logoText="ShopifyPro"
|
||||
copyrightText="© 2025 ShopifyPro. All rights reserved."
|
||||
/>
|
||||
</div>
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBase
|
||||
columns={[
|
||||
{ title: "Company", items: [{ label: "About Us", href: "#" }, { label: "Careers", href: "#" }] },
|
||||
{ title: "Support", items: [{ label: "Contact", href: "#contact" }, { label: "Shipping", href: "#" }] },
|
||||
]}
|
||||
logoText="ShopifyPro"
|
||||
copyrightText="© 2025 ShopifyPro. All rights reserved."
|
||||
/>
|
||||
</div>
|
||||
</Suspense>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user