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=49f930ed-5b57-4e04-b162-fa10eb33caab
|
||||
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"
|
||||
93
src/app/blog/page.tsx
Normal file
93
src/app/blog/page.tsx
Normal file
@@ -0,0 +1,93 @@
|
||||
"use client";
|
||||
|
||||
import ReactLenis from "lenis/react";
|
||||
import BlogCardTwo from '@/components/sections/blog/BlogCardTwo';
|
||||
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
|
||||
import { useBlogPosts } from "@/hooks/useBlogPosts";
|
||||
|
||||
export default function BlogPage() {
|
||||
const { posts, isLoading } = useBlogPosts();
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="bounce-effect"
|
||||
defaultTextAnimation="background-highlight"
|
||||
borderRadius="rounded"
|
||||
contentWidth="compact"
|
||||
sizing="largeSmall"
|
||||
background="aurora"
|
||||
cardStyle="gradient-mesh"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="glass"
|
||||
headingFontWeight="extrabold"
|
||||
>
|
||||
<ReactLenis root>
|
||||
<div className="min-h-screen bg-background">
|
||||
<NavbarLayoutFloatingInline
|
||||
brandName="iPhone"
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Products", id: "products" },
|
||||
{ name: "Features", id: "features" },
|
||||
{ name: "Pricing", id: "pricing" },
|
||||
{ name: "Reviews", id: "testimonials" }
|
||||
]}
|
||||
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>
|
||||
) : (
|
||||
<BlogCardTwo
|
||||
blogs={posts}
|
||||
title="Latest iPhone News"
|
||||
description="Stay updated with the latest iPhone insights, reviews, and technology updates"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="noInvert"
|
||||
animationType="slide-up"
|
||||
carouselMode="buttons"
|
||||
/>
|
||||
)}
|
||||
|
||||
<FooterLogoEmphasis
|
||||
logoText="iPhone"
|
||||
columns={[
|
||||
{
|
||||
items: [
|
||||
{ label: "iPhone 15", href: "products" },
|
||||
{ label: "iPhone 15 Pro", href: "products" },
|
||||
{ label: "Compare Models", href: "products" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Features", href: "features" },
|
||||
{ label: "Camera", href: "features" },
|
||||
{ label: "Performance", href: "features" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Support", href: "#" },
|
||||
{ label: "Contact Us", href: "contact" },
|
||||
{ label: "Warranty", href: "#" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "About", href: "#" },
|
||||
{ label: "Press", href: "#" },
|
||||
{ label: "Careers", href: "#" }
|
||||
]
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</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";
|
||||
1272
src/app/layout.tsx
Normal file
1272
src/app/layout.tsx
Normal file
File diff suppressed because it is too large
Load Diff
243
src/app/page.tsx
Normal file
243
src/app/page.tsx
Normal file
@@ -0,0 +1,243 @@
|
||||
"use client"
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
|
||||
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
|
||||
import ProductCardThree from '@/components/sections/product/ProductCardThree';
|
||||
import FeatureCardTwentyThree from '@/components/sections/feature/FeatureCardTwentyThree';
|
||||
import MetricCardEleven from '@/components/sections/metrics/MetricCardEleven';
|
||||
import TestimonialCardSix from '@/components/sections/testimonial/TestimonialCardSix';
|
||||
import PricingCardOne from '@/components/sections/pricing/PricingCardOne';
|
||||
import ContactSplit from '@/components/sections/contact/ContactSplit';
|
||||
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
|
||||
import { Zap, Sparkles, Star, Mail } from "lucide-react";
|
||||
|
||||
export default function LandingPage() {
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="bounce-effect"
|
||||
defaultTextAnimation="background-highlight"
|
||||
borderRadius="rounded"
|
||||
contentWidth="compact"
|
||||
sizing="largeSmall"
|
||||
background="aurora"
|
||||
cardStyle="gradient-mesh"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="glass"
|
||||
headingFontWeight="extrabold"
|
||||
>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarLayoutFloatingInline
|
||||
brandName="iPhone"
|
||||
navItems={[
|
||||
{ name: "Products", id: "products" },
|
||||
{ name: "Features", id: "features" },
|
||||
{ name: "Pricing", id: "pricing" },
|
||||
{ name: "Reviews", id: "testimonials" }
|
||||
]}
|
||||
button={{
|
||||
text: "Shop Now", href: "products"
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroBillboard
|
||||
title="The Future of Mobile Technology"
|
||||
description="Experience the latest iPhone with revolutionary camera technology, ultra-fast processor, and all-day battery life. Designed with precision. Built to last."
|
||||
background={{ variant: "plain" }}
|
||||
tag="iPhone 15 Pro"
|
||||
tagIcon={Zap}
|
||||
buttons={[
|
||||
{ text: "Explore Now", href: "products" },
|
||||
{ text: "Learn More", href: "features" }
|
||||
]}
|
||||
imageSrc="https://img.b2bpic.net/free-psd/new-smartphone-a18-bionic-social-media-banner-design-template_47987-33085.jpg"
|
||||
imageAlt="Latest iPhone with premium design"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="products" data-section="products">
|
||||
<ProductCardThree
|
||||
title="Our Latest iPhone Lineup"
|
||||
description="Choose from our premium selection of iPhones, each engineered for performance and elegance."
|
||||
products={[
|
||||
{
|
||||
id: "1", name: "iPhone 15 Pro Max", price: "$1,199", imageSrc: "https://img.b2bpic.net/free-psd/new-smartphone-17-pro-social-media-banner-design-template_47987-33075.jpg", imageAlt: "iPhone 15 Pro Max with stunning 6.7-inch display"
|
||||
},
|
||||
{
|
||||
id: "2", name: "iPhone 15 Pro", price: "$999", imageSrc: "https://img.b2bpic.net/free-photo/mockup-mobile-phone-screen_53876-63379.jpg", imageAlt: "iPhone 15 Pro with advanced camera system"
|
||||
},
|
||||
{
|
||||
id: "3", name: "iPhone 15", price: "$799", imageSrc: "https://img.b2bpic.net/free-photo/view-electronic-product-balancing-podium_23-2150141321.jpg", imageAlt: "iPhone 15 with powerful performance"
|
||||
}
|
||||
]}
|
||||
gridVariant="three-columns-all-equal-width"
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="noInvert"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<FeatureCardTwentyThree
|
||||
title="Industry-Leading Features"
|
||||
description="Discover what makes iPhone the most advanced smartphone in the world."
|
||||
tag="Technology"
|
||||
tagIcon={Sparkles}
|
||||
features={[
|
||||
{
|
||||
id: "1", title: "Advanced Camera System", tags: ["Pro Features", "Photography"],
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/vertical-shot-person-taking-photo-leaf-with-cellphone-camera_181624-59213.jpg", imageAlt: "Professional camera technology"
|
||||
},
|
||||
{
|
||||
id: "2", title: "Lightning-Fast Performance", tags: ["A17 Pro Chip", "Speed"],
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/girl-taking-photo-yellow-house_23-2147615270.jpg", imageAlt: "High-performance processor chip"
|
||||
},
|
||||
{
|
||||
id: "3", title: "All-Day Battery Life", tags: ["Long Battery", "Efficiency"],
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/senior-woman-traveling-areound-world_23-2149172097.jpg", imageAlt: "Extended battery technology"
|
||||
},
|
||||
{
|
||||
id: "4", title: "Stunning Display Technology", tags: ["OLED Screen", "120Hz"],
|
||||
imageSrc: "https://img.b2bpic.net/free-photo/woman-s-hand-taking-picture-her-friend-holding-camera_23-2147847167.jpg", imageAlt: "Advanced OLED display technology"
|
||||
}
|
||||
]}
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="noInvert"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="metrics" data-section="metrics">
|
||||
<MetricCardEleven
|
||||
title="Trusted by Millions Worldwide"
|
||||
description="See the numbers behind iPhone's success and innovation."
|
||||
metrics={[
|
||||
{
|
||||
id: "1", value: "2B+", title: "Active Users", description: "Global iPhone user base growing every day", imageSrc: "https://img.b2bpic.net/free-photo/girl-taking-photo-yellow-house_23-2147615270.jpg", imageAlt: "Global user statistics"
|
||||
},
|
||||
{
|
||||
id: "2", value: "98%", title: "Satisfaction Rate", description: "Customer satisfaction with iPhone products", imageSrc: "https://img.b2bpic.net/free-photo/vertical-shot-person-taking-photo-leaf-with-cellphone-camera_181624-59213.jpg", imageAlt: "Customer satisfaction metrics"
|
||||
}
|
||||
]}
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="noInvert"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="testimonials" data-section="testimonials">
|
||||
<TestimonialCardSix
|
||||
title="What Our Customers Say"
|
||||
description="Real experiences from iPhone users around the world."
|
||||
testimonials={[
|
||||
{
|
||||
id: "1", name: "Sarah Chen", handle: "@sarahchen", testimonial: "The iPhone 15 Pro has completely transformed my photography workflow. The camera system is absolutely incredible.", imageSrc: "https://img.b2bpic.net/free-photo/selfie-portrait-videocall_23-2149186122.jpg", imageAlt: "Sarah Chen"
|
||||
},
|
||||
{
|
||||
id: "2", name: "Marcus Johnson", handle: "@mjohnson", testimonial: "Best smartphone I've ever owned. The performance, design, and battery life are unmatched.", imageSrc: "https://img.b2bpic.net/free-photo/portrait-man-laughing_23-2148859448.jpg", imageAlt: "Marcus Johnson"
|
||||
},
|
||||
{
|
||||
id: "3", name: "Emma Rodriguez", handle: "@emmarod", testimonial: "The display quality is stunning. Everything looks crisp and vibrant. Worth every penny.", imageSrc: "https://img.b2bpic.net/free-photo/closeup-young-female-professional-making-eye-contact-against-colored-background_662251-651.jpg", imageAlt: "Emma Rodriguez"
|
||||
},
|
||||
{
|
||||
id: "4", name: "David Kim", handle: "@davidkim", testimonial: "Fast, reliable, and beautifully designed. iPhone continues to set the standard for smartphones.", imageSrc: "https://img.b2bpic.net/free-photo/portrait-smiley-woman_23-2148827181.jpg", imageAlt: "David Kim"
|
||||
},
|
||||
{
|
||||
id: "5", name: "Lisa Wong", handle: "@lisawong", testimonial: "The ecosystem integration is seamless. Works perfectly with my Mac and iPad.", imageSrc: "https://img.b2bpic.net/free-photo/smiling-millennial-man-looking-camera-cafe-headshot-portrait_1163-5163.jpg", imageAlt: "Lisa Wong"
|
||||
},
|
||||
{
|
||||
id: "6", name: "James Sullivan", handle: "@jsullivan", testimonial: "Premium quality at its finest. The craftsmanship and attention to detail are exceptional.", imageSrc: "https://img.b2bpic.net/free-photo/close-up-young-person-barbeque_23-2149271990.jpg", imageAlt: "James Sullivan"
|
||||
}
|
||||
]}
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="noInvert"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="pricing" data-section="pricing">
|
||||
<PricingCardOne
|
||||
title="Simple, Transparent Pricing"
|
||||
description="Choose the iPhone that fits your needs and budget."
|
||||
plans={[
|
||||
{
|
||||
id: "1", badge: "Best Value", badgeIcon: Sparkles,
|
||||
price: "$799", subtitle: "Perfect for everyday excellence", features: [
|
||||
"6.1-inch display", "A16 Bionic chip", "Dual camera system", "All-day battery life", "Water resistant"
|
||||
]
|
||||
},
|
||||
{
|
||||
id: "2", badge: "Most Popular", badgeIcon: Star,
|
||||
price: "$999", subtitle: "Premium performance and camera", features: [
|
||||
"6.1-inch ProMotion display", "A17 Pro chip", "Advanced triple camera", "Extended battery life", "Titanium design"
|
||||
]
|
||||
},
|
||||
{
|
||||
id: "3", badge: "Ultimate", badgeIcon: Zap,
|
||||
price: "$1,199", subtitle: "Maximum screen and power", features: [
|
||||
"6.7-inch ProMotion display", "A17 Pro chip", "Professional camera system", "All-day+ battery", "Premium titanium build"
|
||||
]
|
||||
}
|
||||
]}
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground="noInvert"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactSplit
|
||||
tag="Newsletter"
|
||||
tagIcon={Mail}
|
||||
title="Stay Updated with iPhone News"
|
||||
description="Subscribe to get the latest product updates, exclusive offers, and innovative technology insights delivered to your inbox."
|
||||
background={{ variant: "sparkles-gradient" }}
|
||||
useInvertedBackground="noInvert"
|
||||
imageSrc="https://img.b2bpic.net/free-photo/close-up-woman-taking-photograph-mobile_23-2147862937.jpg"
|
||||
imageAlt="Newsletter signup section"
|
||||
inputPlaceholder="Enter your email address"
|
||||
buttonText="Subscribe"
|
||||
termsText="We respect your privacy. Unsubscribe at any time from our marketing emails."
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterLogoEmphasis
|
||||
logoText="iPhone"
|
||||
columns={[
|
||||
{
|
||||
items: [
|
||||
{ label: "iPhone 15", href: "products" },
|
||||
{ label: "iPhone 15 Pro", href: "products" },
|
||||
{ label: "Compare Models", href: "products" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Features", href: "features" },
|
||||
{ label: "Camera", href: "features" },
|
||||
{ label: "Performance", href: "features" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Support", href: "#" },
|
||||
{ label: "Contact Us", href: "contact" },
|
||||
{ label: "Warranty", href: "#" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "About", href: "#" },
|
||||
{ label: "Press", href: "#" },
|
||||
{ label: "Careers", href: "#" }
|
||||
]
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
101
src/app/shop/page.tsx
Normal file
101
src/app/shop/page.tsx
Normal file
@@ -0,0 +1,101 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarLayoutFloatingInline from '@/components/navbar/NavbarLayoutFloatingInline';
|
||||
import ProductCardOne from '@/components/sections/product/ProductCardOne';
|
||||
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
|
||||
|
||||
export default function ShopPage() {
|
||||
// Sample product data for iPhone shop
|
||||
const products = [
|
||||
{
|
||||
id: "1", name: "iPhone 15 Pro Max", price: "$1,199", imageSrc: "https://store.storeimages.cdn-apple.com/4982/as-images.apple.com/is/iphone-15-pro-finish-select-202309-6-1inch-naturaltitanium_AV1?wid=5120&hei=2880&fmt=webp&qlt=90&.v=1693009279821", imageAlt: "iPhone 15 Pro Max in Natural Titanium", onProductClick: () => console.log("Viewing iPhone 15 Pro Max")
|
||||
},
|
||||
{
|
||||
id: "2", name: "iPhone 15 Pro", price: "$999", imageSrc: "https://store.storeimages.cdn-apple.com/4982/as-images.apple.com/is/iphone-15-pro-finish-select-202309-6-1inch-bluetitanium_AV1?wid=5120&hei=2880&fmt=webp&qlt=90&.v=1693009279914", imageAlt: "iPhone 15 Pro in Blue Titanium", onProductClick: () => console.log("Viewing iPhone 15 Pro")
|
||||
},
|
||||
{
|
||||
id: "3", name: "iPhone 15 Plus", price: "$899", imageSrc: "https://store.storeimages.cdn-apple.com/4982/as-images.apple.com/is/iphone-15-finish-select-202309-6-7inch-pink_AV1?wid=5120&hei=2880&fmt=webp&qlt=90&.v=1692923780378", imageAlt: "iPhone 15 Plus in Pink", onProductClick: () => console.log("Viewing iPhone 15 Plus")
|
||||
},
|
||||
{
|
||||
id: "4", name: "iPhone 15", price: "$799", imageSrc: "https://store.storeimages.cdn-apple.com/4982/as-images.apple.com/is/iphone-15-finish-select-202309-6-1inch-blue_AV1?wid=5120&hei=2880&fmt=webp&qlt=90&.v=1692923777972", imageAlt: "iPhone 15 in Blue", onProductClick: () => console.log("Viewing iPhone 15")
|
||||
},
|
||||
{
|
||||
id: "5", name: "iPhone 14 Pro", price: "$899", imageSrc: "https://store.storeimages.cdn-apple.com/4982/as-images.apple.com/is/iphone-14-pro-finish-select-202209-6-1inch-deeppurple_AV1?wid=5120&hei=2880&fmt=webp&qlt=90&.v=1663703841896", imageAlt: "iPhone 14 Pro in Deep Purple", onProductClick: () => console.log("Viewing iPhone 14 Pro")
|
||||
},
|
||||
{
|
||||
id: "6", name: "iPhone 14", price: "$699", imageSrc: "https://store.storeimages.cdn-apple.com/4982/as-images.apple.com/is/iphone-14-finish-select-202209-6-1inch-purple_AV1?wid=5120&hei=2880&fmt=webp&qlt=90&.v=1661027532661", imageAlt: "iPhone 14 in Purple", onProductClick: () => console.log("Viewing iPhone 14")
|
||||
}
|
||||
];
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="bounce-effect"
|
||||
defaultTextAnimation="background-highlight"
|
||||
borderRadius="rounded"
|
||||
contentWidth="compact"
|
||||
sizing="largeSmall"
|
||||
background="aurora"
|
||||
cardStyle="gradient-mesh"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="glass"
|
||||
headingFontWeight="extrabold"
|
||||
>
|
||||
<NavbarLayoutFloatingInline
|
||||
brandName="iPhone"
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Shop", id: "/shop" }
|
||||
]}
|
||||
button={{
|
||||
text: "Shop Now", href: "/shop"
|
||||
}}
|
||||
/>
|
||||
|
||||
<main className="min-h-screen">
|
||||
<ProductCardOne
|
||||
products={products}
|
||||
title="iPhone Collection"
|
||||
description="Discover the latest iPhone models with cutting-edge technology and innovative features"
|
||||
tag="Latest Models"
|
||||
textboxLayout="default"
|
||||
gridVariant="three-columns-all-equal-width"
|
||||
animationType="slide-up"
|
||||
useInvertedBackground="noInvert"
|
||||
buttons={[
|
||||
{
|
||||
text: "View All Products", href: "/shop"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</main>
|
||||
|
||||
<FooterLogoEmphasis
|
||||
logoText="iPhone"
|
||||
columns={[
|
||||
{
|
||||
items: [
|
||||
{ label: "iPhone 15", href: "/shop" },
|
||||
{ label: "iPhone 15 Pro", href: "/shop" },
|
||||
{ label: "Compare Models", href: "/shop" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "Support" },
|
||||
{ label: "Contact Us" },
|
||||
{ label: "Warranty" }
|
||||
]
|
||||
},
|
||||
{
|
||||
items: [
|
||||
{ label: "About" },
|
||||
{ label: "Press" },
|
||||
{ label: "Careers" }
|
||||
]
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</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