Add src/app/shop/page.tsx
This commit is contained in:
150
src/app/shop/page.tsx
Normal file
150
src/app/shop/page.tsx
Normal file
@@ -0,0 +1,150 @@
|
||||
"use client";
|
||||
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingInline from "@/components/navbar/NavbarLayoutFloatingInline";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ProductCardTwo from '@/components/sections/product/ProductCardTwo';
|
||||
import ContactForm from '@/components/form/ContactForm';
|
||||
import FooterCard from "@/components/sections/footer/FooterCard";
|
||||
import ProductCartItem from '@/components/ecommerce/cart/ProductCartItem';
|
||||
import { ShoppingCart, ShoppingBag, CreditCard } from "lucide-react";
|
||||
|
||||
export default function ShopPage() {
|
||||
// Dummy product data for demonstration
|
||||
const products = [
|
||||
{ id: "1", brand: "TechCo", name: "UltraBook Pro (Laptops)", price: "$1200", rating: 4, reviewCount: "150", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/luxury-travel-agency/services/service5.webp", imageAlt: "Laptop" },
|
||||
{ id: "2", brand: "GamerTech", name: "Gaming Desktop Elite (Computers)", price: "$1800", rating: 5, reviewCount: "90", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/luxury-travel-agency/services/service1.webp", imageAlt: "Desktop Computer" },
|
||||
{ id: "3", brand: "NetGear", name: "High-Speed Modem (Network)", price: "$150", rating: 4, reviewCount: "210", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/luxury-travel-agency/services/service3.webp", imageAlt: "Modem" },
|
||||
{ id: "4", brand: "Cisco", name: "Managed Ethernet Switch (Network)", price: "$300", rating: 4, reviewCount: "75", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/luxury-travel-agency/services/service4.webp", imageAlt: "Network Switch" },
|
||||
{ id: "5", brand: "StorageMax", name: "2TB External SSD (Storage)", price: "$250", rating: 5, reviewCount: "120", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/luxury-travel-agency/services/service2.webp", imageAlt: "External SSD" },
|
||||
{ id: "6", brand: "POSPlus", name: "All-in-One POS System (POS Equipment)", price: "$900", rating: 4, reviewCount: "50", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/luxury-travel-agency/phone/phone1.webp", imageAlt: "POS Terminal" },
|
||||
{ id: "7", brand: "AccessoryPro", name: "Wireless Ergonomic Keyboard (Accessories)", price: "$75", rating: 4, reviewCount: "300", imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/luxury-travel-agency/phone/phone2.webp", imageAlt: "Keyboard" }
|
||||
];
|
||||
|
||||
// Dummy cart items for demonstration
|
||||
const cartItems = [
|
||||
{ id: "1", name: "UltraBook Pro", price: "$1200", quantity: 1, imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/luxury-travel-agency/services/service5.webp" },
|
||||
{ id: "3", name: "High-Speed Modem", price: "$150", quantity: 2, imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/luxury-travel-agency/services/service3.webp" }
|
||||
];
|
||||
|
||||
const onQuantityChange = (id: string, quantity: number) => {
|
||||
console.log(`Changed quantity of item ${id} to ${quantity}`);
|
||||
// In a real app, update state here
|
||||
};
|
||||
|
||||
const onRemove = (id: string) => {
|
||||
console.log(`Removed item ${id} from cart`);
|
||||
// In a real app, update state here
|
||||
};
|
||||
|
||||
const navItems = [
|
||||
{ name: "About", id: "about" },
|
||||
{ name: "Services", id: "services" },
|
||||
{ name: "Destinations", id: "destinations" },
|
||||
{ name: "Reviews", id: "reviews" },
|
||||
{ name: "Contact", id: "contact" },
|
||||
{ name: "Shop", href: "/shop" }
|
||||
];
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="icon-arrow"
|
||||
defaultTextAnimation="entrance-slide"
|
||||
borderRadius="rounded"
|
||||
contentWidth="medium"
|
||||
sizing="medium"
|
||||
background="none"
|
||||
cardStyle="solid"
|
||||
primaryButtonStyle="shadow"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="medium"
|
||||
>
|
||||
<ReactLenis root>
|
||||
<NavbarLayoutFloatingInline
|
||||
navItems={navItems}
|
||||
brandName="Luxuria"
|
||||
button={{ text: "Plan Your Trip", href: "#contact" }}
|
||||
/>
|
||||
|
||||
<div id="shop-products" data-section="shop-products">
|
||||
<ProductCardTwo
|
||||
tag="Shop Now"
|
||||
tagIcon={ShoppingBag}
|
||||
title="Our Product Catalog"
|
||||
description="Explore our wide range of electronics, network equipment, and accessories. Use advanced search and filters to find your perfect product, categorized for easy browsing."
|
||||
textboxLayout="default"
|
||||
animationType="slide-up"
|
||||
gridVariant="three-columns-all-equal-width"
|
||||
uniformGridCustomHeightClasses="h-auto"
|
||||
useInvertedBackground={false}
|
||||
products={products}
|
||||
className="py-20"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="shopping-cart" data-section="shopping-cart" className="py-20 bg-background-accent">
|
||||
<div className="container mx-auto px-4 md:px-6 lg:px-8">
|
||||
<div className="text-center mb-12">
|
||||
<span className="inline-flex items-center gap-2 px-3 py-1 rounded-full text-sm font-medium bg-primary-cta text-white">
|
||||
<ShoppingCart size={16} /> Shopping Cart
|
||||
</span>
|
||||
<h2 className="text-4xl font-semibold mt-4 text-foreground">Your Order Summary</h2>
|
||||
<p className="mt-2 text-muted-foreground max-w-2xl mx-auto">Review your selected items before proceeding to checkout.</p>
|
||||
</div>
|
||||
<div className="grid gap-6 max-w-3xl mx-auto">
|
||||
{cartItems.map((item) => (
|
||||
<ProductCartItem
|
||||
key={item.id}
|
||||
item={item}
|
||||
onQuantityChange={onQuantityChange}
|
||||
onRemove={onRemove}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
<div className="max-w-3xl mx-auto mt-8 p-6 bg-card rounded-lg shadow-lg flex justify-between items-center text-foreground">
|
||||
<span className="text-xl font-semibold">Total:</span>
|
||||
<span className="text-2xl font-bold">$1500</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="checkout" data-section="checkout">
|
||||
<ContactForm
|
||||
tag="Payment Gateway"
|
||||
tagIcon={CreditCard}
|
||||
title="Secure Checkout & Quick Order"
|
||||
description="Complete your purchase securely or place a quick order. We support various online payment methods to ensure a smooth transaction."
|
||||
useInvertedBackground={false}
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/default/templates/luxury-travel-agency/contact/contact1.webp"
|
||||
imageAlt="Online Payment"
|
||||
mediaPosition="right"
|
||||
mediaAnimation="slide-up"
|
||||
buttonText="Proceed to Payment"
|
||||
inputs={[
|
||||
{ name: "name", type: "text", placeholder: "Full Name", required: true },
|
||||
{ name: "email", type: "email", placeholder: "Email Address", required: true },
|
||||
{ name: "address", type: "text", placeholder: "Shipping Address", required: true },
|
||||
{ name: "city", type: "text", placeholder: "City", required: true },
|
||||
{ name: "zip", type: "text", placeholder: "Zip Code", required: true },
|
||||
{ name: "payment", type: "select", placeholder: "Payment Method", options: ["Credit Card", "PayPal", "Bank Transfer"], required: true }
|
||||
]}
|
||||
textarea={{
|
||||
name: "notes", placeholder: "Any special delivery instructions or order notes...", rows: 3
|
||||
}}
|
||||
className="py-20"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<FooterCard
|
||||
logoText="Luxuria Tech"
|
||||
copyrightText="© 2025 Luxuria Tech | All Rights Reserved"
|
||||
socialLinks={[
|
||||
{ icon: Instagram, href: "#", ariaLabel: "Instagram" },
|
||||
{ icon: Facebook, href: "#", ariaLabel: "Facebook" },
|
||||
{ icon: Linkedin, href: "#", ariaLabel: "LinkedIn" }
|
||||
]}
|
||||
/>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user