Initial commit
This commit is contained in:
2
.env
Normal file
2
.env
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
NEXT_PUBLIC_API_URL=https://dev.api.webild.io
|
||||||
|
NEXT_PUBLIC_PROJECT_ID=722e6fc8-25df-41ec-91e1-92f7532e613d
|
||||||
57
.gitea/workflows/build.yml
Normal file
57
.gitea/workflows/build.yml
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
name: Code Check
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
branch:
|
||||||
|
description: 'Branch to check'
|
||||||
|
required: true
|
||||||
|
default: 'main'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 10
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout branch
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
ref: ${{ gitea.event.inputs.branch }}
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 24
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
npm ci --prefer-offline --no-audit 2>&1 | tee install.log
|
||||||
|
env:
|
||||||
|
NODE_OPTIONS: '--max-old-space-size=4096'
|
||||||
|
|
||||||
|
- name: TypeScript check
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
npm run typecheck 2>&1 | tee build.log
|
||||||
|
|
||||||
|
- name: ESLint check
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
npm run lint 2>&1 | tee build.log
|
||||||
|
|
||||||
|
- name: Upload build log on failure
|
||||||
|
if: failure()
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: build-log
|
||||||
|
path: build.log
|
||||||
|
if-no-files-found: ignore
|
||||||
|
|
||||||
|
- name: Check completed
|
||||||
|
if: success()
|
||||||
|
run: echo "Typecheck and lint passed successfully"
|
||||||
96
src/app/blog/page.tsx
Normal file
96
src/app/blog/page.tsx
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import ReactLenis from "lenis/react";
|
||||||
|
import BlogCardOne from '@/components/sections/blog/BlogCardOne';
|
||||||
|
import FooterSimple from '@/components/sections/footer/FooterSimple';
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||||
|
import { useBlogPosts } from "@/hooks/useBlogPosts";
|
||||||
|
|
||||||
|
export default function BlogPage() {
|
||||||
|
const { posts, isLoading } = useBlogPosts();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="hover-bubble"
|
||||||
|
defaultTextAnimation="background-highlight"
|
||||||
|
borderRadius="rounded"
|
||||||
|
contentWidth="mediumSmall"
|
||||||
|
sizing="medium"
|
||||||
|
background="aurora"
|
||||||
|
cardStyle="elevated"
|
||||||
|
primaryButtonStyle="diagonal-gradient"
|
||||||
|
secondaryButtonStyle="solid"
|
||||||
|
headingFontWeight="medium"
|
||||||
|
>
|
||||||
|
<ReactLenis root>
|
||||||
|
<div className="min-h-screen bg-background">
|
||||||
|
<NavbarStyleCentered
|
||||||
|
brandName="iPhone Store"
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Products", id: "products" },
|
||||||
|
{ name: "Features", id: "features" },
|
||||||
|
{ name: "Pricing", id: "pricing" },
|
||||||
|
{ name: "Reviews", id: "testimonials" },
|
||||||
|
{ name: "Contact", id: "contact" }
|
||||||
|
]}
|
||||||
|
button={{ text: "Shop Now", href: "products" }}
|
||||||
|
/>
|
||||||
|
|
||||||
|
{isLoading ? (
|
||||||
|
<div className="w-content-width mx-auto py-20 text-center">
|
||||||
|
<p className="text-foreground">Loading posts...</p>
|
||||||
|
</div>
|
||||||
|
) : (
|
||||||
|
<BlogCardOne
|
||||||
|
blogs={posts}
|
||||||
|
title="Latest iPhone News & Tips"
|
||||||
|
description="Stay updated with the latest iPhone insights, tips, and product updates from our team"
|
||||||
|
textboxLayout="default"
|
||||||
|
useInvertedBackground="noInvert"
|
||||||
|
animationType="slide-up"
|
||||||
|
carouselMode="buttons"
|
||||||
|
tag="Blog"
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
|
||||||
|
<FooterSimple
|
||||||
|
columns={[
|
||||||
|
{
|
||||||
|
title: "Shop", items: [
|
||||||
|
{ label: "iPhone Models", href: "#products" },
|
||||||
|
{ label: "Accessories", href: "#" },
|
||||||
|
{ label: "AppleCare+", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Support", items: [
|
||||||
|
{ label: "Contact Us", href: "#contact" },
|
||||||
|
{ label: "FAQ", href: "#contact" },
|
||||||
|
{ label: "Warranty", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Company", items: [
|
||||||
|
{ label: "About Us", href: "#" },
|
||||||
|
{ label: "Blog", href: "#" },
|
||||||
|
{ label: "Careers", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Legal", items: [
|
||||||
|
{ label: "Privacy Policy", href: "#" },
|
||||||
|
{ label: "Terms of Service", href: "#" },
|
||||||
|
{ label: "Cookie Policy", href: "#" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
bottomLeftText="© 2025 iPhone Store. All rights reserved."
|
||||||
|
bottomRightText="Made with excellence"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ReactLenis>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
5
src/app/globals.css
Normal file
5
src/app/globals.css
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
@import "tailwindcss";
|
||||||
|
@import "./styles/variables.css";
|
||||||
|
@import "./styles/theme.css";
|
||||||
|
@import "./styles/utilities.css";
|
||||||
|
@import "./styles/base.css";
|
||||||
1265
src/app/layout.tsx
Normal file
1265
src/app/layout.tsx
Normal file
File diff suppressed because it is too large
Load Diff
302
src/app/page.tsx
Normal file
302
src/app/page.tsx
Normal file
@@ -0,0 +1,302 @@
|
|||||||
|
"use client"
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||||
|
import HeroSplitDualMedia from '@/components/sections/hero/HeroSplitDualMedia';
|
||||||
|
import ProductCardOne from '@/components/sections/product/ProductCardOne';
|
||||||
|
import FeatureCardTen from '@/components/sections/feature/FeatureCardTen';
|
||||||
|
import PricingCardThree from '@/components/sections/pricing/PricingCardThree';
|
||||||
|
import TestimonialCardThirteen from '@/components/sections/testimonial/TestimonialCardThirteen';
|
||||||
|
import ContactFaq from '@/components/sections/contact/ContactFaq';
|
||||||
|
import FooterSimple from '@/components/sections/footer/FooterSimple';
|
||||||
|
import { Sparkles, ShoppingBag, Award, Camera, Zap, Film, Cpu, Wind, Battery, Sun, Shield, Droplets, CreditCard, Star, Heart, MessageCircle } from "lucide-react";
|
||||||
|
|
||||||
|
export default function LandingPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="hover-bubble"
|
||||||
|
defaultTextAnimation="background-highlight"
|
||||||
|
borderRadius="rounded"
|
||||||
|
contentWidth="mediumSmall"
|
||||||
|
sizing="medium"
|
||||||
|
background="aurora"
|
||||||
|
cardStyle="elevated"
|
||||||
|
primaryButtonStyle="diagonal-gradient"
|
||||||
|
secondaryButtonStyle="solid"
|
||||||
|
headingFontWeight="medium"
|
||||||
|
>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleCentered
|
||||||
|
brandName="iPhone Store"
|
||||||
|
navItems={[
|
||||||
|
{ name: "Products", id: "products" },
|
||||||
|
{ name: "Features", id: "features" },
|
||||||
|
{ name: "Pricing", id: "pricing" },
|
||||||
|
{ name: "Reviews", id: "testimonials" },
|
||||||
|
{ name: "Contact", id: "contact" }
|
||||||
|
]}
|
||||||
|
button={{
|
||||||
|
text: "Shop Now", href: "products"
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="hero" data-section="hero">
|
||||||
|
<HeroSplitDualMedia
|
||||||
|
title="Experience iPhone Innovation"
|
||||||
|
description="Discover the latest iPhone models with cutting-edge technology, stunning cameras, and all-day battery life. Premium design meets powerful performance."
|
||||||
|
tag="Latest Technology"
|
||||||
|
tagIcon={Sparkles}
|
||||||
|
background={{ variant: "plain" }}
|
||||||
|
mediaItems={[
|
||||||
|
{
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-psd/new-smartphone-17-pro-social-media-banner-design-template_47987-33087.jpg", imageAlt: "iPhone Pro main view"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-psd/new-smartphone-17-pro-social-media-banner-design-template_47987-32600.jpg", imageAlt: "iPhone Pro side angle"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
rating={5}
|
||||||
|
ratingText="Trusted by millions worldwide"
|
||||||
|
buttons={[
|
||||||
|
{ text: "Explore Models", href: "products" },
|
||||||
|
{ text: "Learn More", href: "features" }
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="products" data-section="products">
|
||||||
|
<ProductCardOne
|
||||||
|
title="Featured iPhone Models"
|
||||||
|
description="Choose from our curated selection of premium iPhone devices with exceptional performance and design."
|
||||||
|
tag="Shop Now"
|
||||||
|
tagIcon={ShoppingBag}
|
||||||
|
products={[
|
||||||
|
{
|
||||||
|
id: "iphone-pro-max", name: "iPhone Pro Max", price: "$1,199", imageSrc: "https://img.b2bpic.net/free-psd/smartphone-16-pro-discount-sale-banner-social-media-design-template_47987-25305.jpg", imageAlt: "iPhone Pro Max with premium display"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "iphone-pro", name: "iPhone Pro", price: "$999", imageSrc: "https://img.b2bpic.net/free-photo/mockup-mobile-phone-screen_53876-63379.jpg", imageAlt: "iPhone Pro with advanced features"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "iphone-plus", name: "iPhone Plus", price: "$799", imageSrc: "https://img.b2bpic.net/free-psd/new-smartphone-17-pro-social-media-banner-design-template_47987-33075.jpg", imageAlt: "iPhone Plus large screen"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
gridVariant="three-columns-all-equal-width"
|
||||||
|
animationType="slide-up"
|
||||||
|
textboxLayout="default"
|
||||||
|
useInvertedBackground="invertDefault"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="features" data-section="features">
|
||||||
|
<FeatureCardTen
|
||||||
|
title="Why Choose iPhone"
|
||||||
|
description="Industry-leading technology and innovation combined with timeless design and exceptional build quality."
|
||||||
|
tag="Premium Features"
|
||||||
|
tagIcon={Award}
|
||||||
|
features={[
|
||||||
|
{
|
||||||
|
id: "1", title: "Advanced Camera System", description: "Capture stunning photos and videos with our pro-level camera system featuring advanced computational photography.", media: {
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-photo/closeup-shot-black-camera-lens_181624-24125.jpg"
|
||||||
|
},
|
||||||
|
items: [
|
||||||
|
{ icon: Camera, text: "Pro 48MP main camera" },
|
||||||
|
{ icon: Zap, text: "Night mode photography" },
|
||||||
|
{ icon: Film, text: "4K video recording" }
|
||||||
|
],
|
||||||
|
reverse: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "2", title: "Exceptional Performance", description: "Powered by the latest A-series chip for blazing-fast performance and efficient multitasking.", media: {
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-photo/optical-lens-technology-background-purple-blue-gradient_53876-124678.jpg"
|
||||||
|
},
|
||||||
|
items: [
|
||||||
|
{ icon: Zap, text: "Ultra-fast processor" },
|
||||||
|
{ icon: Cpu, text: "6-core architecture" },
|
||||||
|
{ icon: Wind, text: "Efficient power usage" }
|
||||||
|
],
|
||||||
|
reverse: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "3", title: "All-Day Battery Life", description: "Advanced battery technology keeps you powered through your busiest days with extended battery life.", media: {
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-photo/still-life-shot-dslr-camera-lens_1401-329.jpg"
|
||||||
|
},
|
||||||
|
items: [
|
||||||
|
{ icon: Battery, text: "Extended battery life" },
|
||||||
|
{ icon: Zap, text: "Fast charging support" },
|
||||||
|
{ icon: Sun, text: "Wireless charging" }
|
||||||
|
],
|
||||||
|
reverse: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "4", title: "Premium Design & Build", description: "Crafted from premium materials with precision engineering for a device that feels as good as it performs.", media: {
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-photo/close-up-professional-camera-lens_23-2150720442.jpg"
|
||||||
|
},
|
||||||
|
items: [
|
||||||
|
{ icon: Sparkles, text: "Aerospace-grade aluminum" },
|
||||||
|
{ icon: Shield, text: "Ceramic Shield protection" },
|
||||||
|
{ icon: Droplets, text: "Water resistant design" }
|
||||||
|
],
|
||||||
|
reverse: true
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
textboxLayout="default"
|
||||||
|
animationType="slide-up"
|
||||||
|
useInvertedBackground="noInvert"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="pricing" data-section="pricing">
|
||||||
|
<PricingCardThree
|
||||||
|
title="Simple, Transparent Pricing"
|
||||||
|
description="Choose the iPhone model that fits your needs and budget."
|
||||||
|
tag="Pricing Plans"
|
||||||
|
tagIcon={CreditCard}
|
||||||
|
plans={[
|
||||||
|
{
|
||||||
|
id: "iphone-standard", price: "$799", name: "iPhone Standard", buttons: [
|
||||||
|
{ text: "Buy Now", href: "#" },
|
||||||
|
{ text: "Learn More", href: "#" }
|
||||||
|
],
|
||||||
|
features: [
|
||||||
|
"6.1-inch display", "A-series chip", "Dual camera system", "All-day battery", "Water resistant"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "iphone-pro", badge: "Most Popular", badgeIcon: Star,
|
||||||
|
price: "$999", name: "iPhone Pro", buttons: [
|
||||||
|
{ text: "Buy Now", href: "#" },
|
||||||
|
{ text: "Learn More", href: "#" }
|
||||||
|
],
|
||||||
|
features: [
|
||||||
|
"6.1-inch ProMotion display", "A-series Pro chip", "Pro triple camera", "Night mode & cinematic", "ProRAW support"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "iphone-pro-max", price: "$1,199", name: "iPhone Pro Max", buttons: [
|
||||||
|
{ text: "Buy Now", href: "#" },
|
||||||
|
{ text: "Learn More", href: "#" }
|
||||||
|
],
|
||||||
|
features: [
|
||||||
|
"6.7-inch largest display", "A-series Pro Max chip", "Advanced quad cameras", "Extended battery life", "Professional video tools"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
textboxLayout="default"
|
||||||
|
animationType="slide-up"
|
||||||
|
useInvertedBackground="invertDefault"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="testimonials" data-section="testimonials">
|
||||||
|
<TestimonialCardThirteen
|
||||||
|
title="Loved by Customers"
|
||||||
|
description="See what iPhone users around the world have to say about their experience."
|
||||||
|
tag="Customer Reviews"
|
||||||
|
tagIcon={Heart}
|
||||||
|
testimonials={[
|
||||||
|
{
|
||||||
|
id: "1", name: "Sarah Johnson", handle: "@sarahj", testimonial: "The iPhone Pro has completely transformed my photography game. The camera quality is simply outstanding and the night mode is incredible.", rating: 5,
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-photo/close-up-portrait-young-handsome-successful-man_1163-5475.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "2", name: "Michael Chen", handle: "@mchen", testimonial: "Best phone I've ever owned. The performance is lightning fast and the battery life easily lasts a full day of heavy use.", rating: 5,
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-photo/happy-businessman-smiling-camera_1163-4660.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "3", name: "Emily Rodriguez", handle: "@emilyrod", testimonial: "The design is absolutely gorgeous and feels premium in hand. Worth every penny for the quality and durability.", rating: 5,
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-photo/portrait-smiley-business-man_23-2148514859.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "4", name: "David Kim", handle: "@davidkim", testimonial: "Switched from Android and couldn't be happier. The ecosystem integration is seamless and everything just works.", rating: 5,
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-photo/happy-young-professional-posing-office_1262-21170.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "5", name: "Jessica White", handle: "@jessw", testimonial: "The iPhone Pro Max screen is absolutely stunning. Perfect for watching videos and editing content on the go.", rating: 5,
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-photo/smiling-young-handsome-guy-wearing-green-shirt_141793-122624.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "6", name: "Thomas Park", handle: "@tpark", testimonial: "Outstanding customer service and the build quality is exceptional. This phone has exceeded all my expectations.", rating: 5,
|
||||||
|
imageSrc: "https://img.b2bpic.net/free-photo/young-businesswoman-portrait-office_1262-1506.jpg"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
showRating={true}
|
||||||
|
textboxLayout="default"
|
||||||
|
animationType="slide-up"
|
||||||
|
useInvertedBackground="noInvert"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="contact" data-section="contact">
|
||||||
|
<ContactFaq
|
||||||
|
ctaTitle="Get in Touch"
|
||||||
|
ctaDescription="Have questions about our iPhone models? Our team is here to help you find the perfect device."
|
||||||
|
ctaIcon={MessageCircle}
|
||||||
|
ctaButton={{
|
||||||
|
text: "Contact Us", href: "#"
|
||||||
|
}}
|
||||||
|
faqs={[
|
||||||
|
{
|
||||||
|
id: "1", title: "What is the warranty coverage?", content: "All iPhone models come with a standard 1-year limited warranty covering hardware defects. AppleCare+ extends coverage to 2 years with accidental damage protection."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "2", title: "Can I trade in my old iPhone?", content: "Yes! We offer competitive trade-in values for your existing device. Trade-in credit can be applied toward your new iPhone purchase."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "3", title: "What payment options are available?", content: "We accept all major credit cards, digital payment options, and offer flexible financing plans through our partners for qualified buyers."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "4", title: "How long does shipping take?", content: "Standard shipping typically takes 5-7 business days. Express shipping options are available for faster delivery to your location."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "5", title: "Are the phones unlocked?", content: "All our iPhone models are unlocked and work with any carrier. You can activate with your preferred network immediately."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "6", title: "What storage options are available?", content: "iPhones are available in multiple storage capacities: 128GB, 256GB, 512GB, and 1TB, depending on the model."
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
useInvertedBackground="invertDefault"
|
||||||
|
animationType="slide-up"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterSimple
|
||||||
|
columns={[
|
||||||
|
{
|
||||||
|
title: "Shop", items: [
|
||||||
|
{ label: "iPhone Models", href: "#products" },
|
||||||
|
{ label: "Accessories", href: "#" },
|
||||||
|
{ label: "AppleCare+", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Support", items: [
|
||||||
|
{ label: "Contact Us", href: "#contact" },
|
||||||
|
{ label: "FAQ", href: "#contact" },
|
||||||
|
{ label: "Warranty", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Company", items: [
|
||||||
|
{ label: "About Us", href: "#" },
|
||||||
|
{ label: "Blog", href: "#" },
|
||||||
|
{ label: "Careers", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Legal", items: [
|
||||||
|
{ label: "Privacy Policy", href: "#" },
|
||||||
|
{ label: "Terms of Service", href: "#" },
|
||||||
|
{ label: "Cookie Policy", href: "#" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
bottomLeftText="© 2025 iPhone Store. All rights reserved."
|
||||||
|
bottomRightText="Made with excellence"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
123
src/app/shop/page.tsx
Normal file
123
src/app/shop/page.tsx
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||||
|
import ProductCardFour from '@/components/sections/product/ProductCardFour';
|
||||||
|
import FooterSimple from '@/components/sections/footer/FooterSimple';
|
||||||
|
import { ShoppingBag } from 'lucide-react';
|
||||||
|
|
||||||
|
export default function ShopPage() {
|
||||||
|
const products = [
|
||||||
|
{
|
||||||
|
id: "1", name: "iPhone 15 Pro Max", price: "$1,199", variant: "Titanium Blue • 4 Colors", imageSrc: "/api/placeholder/400/300", imageAlt: "iPhone 15 Pro Max in Titanium Blue", isFavorited: false,
|
||||||
|
onFavorite: () => console.log('favorited iPhone 15 Pro Max'),
|
||||||
|
onProductClick: () => window.open('/product/iphone-15-pro-max', '_blank')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "2", name: "iPhone 15 Pro", price: "$999", variant: "Natural Titanium • 4 Colors", imageSrc: "/api/placeholder/400/300", imageAlt: "iPhone 15 Pro in Natural Titanium", isFavorited: false,
|
||||||
|
onFavorite: () => console.log('favorited iPhone 15 Pro'),
|
||||||
|
onProductClick: () => window.open('/product/iphone-15-pro', '_blank')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "3", name: "iPhone 15", price: "$799", variant: "Pink • 5 Colors", imageSrc: "/api/placeholder/400/300", imageAlt: "iPhone 15 in Pink", isFavorited: false,
|
||||||
|
onFavorite: () => console.log('favorited iPhone 15'),
|
||||||
|
onProductClick: () => window.open('/product/iphone-15', '_blank')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "4", name: "iPhone 14", price: "$699", variant: "Midnight • 6 Colors", imageSrc: "/api/placeholder/400/300", imageAlt: "iPhone 14 in Midnight", isFavorited: false,
|
||||||
|
onFavorite: () => console.log('favorited iPhone 14'),
|
||||||
|
onProductClick: () => window.open('/product/iphone-14', '_blank')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "5", name: "iPhone SE", price: "$429", variant: "Starlight • 3 Colors", imageSrc: "/api/placeholder/400/300", imageAlt: "iPhone SE in Starlight", isFavorited: false,
|
||||||
|
onFavorite: () => console.log('favorited iPhone SE'),
|
||||||
|
onProductClick: () => window.open('/product/iphone-se', '_blank')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "6", name: "MagSafe Charger", price: "$39", variant: "White • Wireless Charging", imageSrc: "/api/placeholder/400/300", imageAlt: "MagSafe Charger in White", isFavorited: false,
|
||||||
|
onFavorite: () => console.log('favorited MagSafe Charger'),
|
||||||
|
onProductClick: () => window.open('/product/magsafe-charger', '_blank')
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="hover-bubble"
|
||||||
|
defaultTextAnimation="background-highlight"
|
||||||
|
borderRadius="rounded"
|
||||||
|
contentWidth="mediumSmall"
|
||||||
|
sizing="medium"
|
||||||
|
background="aurora"
|
||||||
|
cardStyle="elevated"
|
||||||
|
primaryButtonStyle="diagonal-gradient"
|
||||||
|
secondaryButtonStyle="solid"
|
||||||
|
headingFontWeight="medium"
|
||||||
|
>
|
||||||
|
<NavbarStyleCentered
|
||||||
|
brandName="iPhone Store"
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Shop", id: "/shop" }
|
||||||
|
]}
|
||||||
|
button={{
|
||||||
|
text: "Shop Now", href: "products"
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<ProductCardFour
|
||||||
|
products={products}
|
||||||
|
title="iPhone Collection"
|
||||||
|
description="Discover our complete range of iPhones and accessories with the latest technology and premium design"
|
||||||
|
tag="Latest Models"
|
||||||
|
tagIcon={ShoppingBag}
|
||||||
|
textboxLayout="default"
|
||||||
|
gridVariant="three-columns-all-equal-width"
|
||||||
|
animationType="slide-up"
|
||||||
|
useInvertedBackground="noInvert"
|
||||||
|
buttons={[
|
||||||
|
{
|
||||||
|
text: "View All Products", href: "#products"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: "Contact Sales", href: "/contact"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
|
||||||
|
<FooterSimple
|
||||||
|
columns={[
|
||||||
|
{
|
||||||
|
title: "Shop", items: [
|
||||||
|
{ label: "iPhone Models", href: "#products" },
|
||||||
|
{ label: "Accessories", href: "#" },
|
||||||
|
{ label: "AppleCare+", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Support", items: [
|
||||||
|
{ label: "Contact Us", href: "#contact" },
|
||||||
|
{ label: "FAQ", href: "#contact" },
|
||||||
|
{ label: "Warranty", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Company", items: [
|
||||||
|
{ label: "About Us", href: "#" },
|
||||||
|
{ label: "Blog", href: "#" },
|
||||||
|
{ label: "Careers", href: "#" }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Legal", items: [
|
||||||
|
{ label: "Privacy Policy", href: "#" },
|
||||||
|
{ label: "Terms of Service", href: "#" },
|
||||||
|
{ label: "Cookie Policy", href: "#" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
bottomLeftText="© 2025 iPhone Store. All rights reserved."
|
||||||
|
bottomRightText="Made with excellence"
|
||||||
|
/>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
5
vercel.json
Normal file
5
vercel.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"installCommand": "npm ci",
|
||||||
|
"buildCommand": "npm run build",
|
||||||
|
"outputDirectory": ".next"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user