10 Commits

Author SHA1 Message Date
90dbbc9ea2 Update src/middleware.ts 2026-06-11 20:59:52 +00:00
5a8f69db2c Update src/app/i18n.ts 2026-06-11 20:59:52 +00:00
a607b2502e Update src/middleware.ts 2026-06-11 20:58:54 +00:00
3d5ad55a36 Add src/middleware.ts 2026-06-11 20:58:13 +00:00
a47c4eccbd Update src/app/page.tsx 2026-06-11 20:58:12 +00:00
736804753a Add src/app/i18n.ts 2026-06-11 20:58:12 +00:00
745f9eb7f4 Add src/app/faq/page.tsx 2026-06-11 20:58:11 +00:00
ad881e038d Add src/app/contact/page.tsx 2026-06-11 20:58:11 +00:00
5fa5984e67 Add src/app/about/page.tsx 2026-06-11 20:58:10 +00:00
d88d063d86 Merge version_1 into main
Merge version_1 into main
2026-06-11 20:50:27 +00:00
6 changed files with 236 additions and 2 deletions

66
src/app/about/page.tsx Normal file
View File

@@ -0,0 +1,66 @@
"use client";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
import SplitAbout from '@/components/sections/about/SplitAbout';
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
export default function AboutPage() {
const navItems = [
{ name: "Home", id: "/" },
{ name: "Products", id: "/products" },
{ name: "About Us", id: "/about" },
{ name: "Contact", id: "/contact" },
{ name: "FAQ", id: "/faq" }
];
const footerColumns = [
{ items: [{ label: "Urban Bikes", href: "/products" }, { label: "Mountain Bikes", href: "/products" }, { label: "Folding Bikes", href: "/products" }, { label: "Accessories", href: "/products" }] },
{ items: [{ label: "About Us", href: "/about" }, { label: "Our Story", href: "/about" }, { label: "Careers", href: "#" }, { label: "Blog", href: "#" }] },
{ items: [{ label: "FAQ", href: "/faq" }, { label: "Support", href: "/contact" }, { label: "Warranty", href: "#" }, { label: "Privacy Policy", href: "#" }] }
];
return (
<ThemeProvider
defaultButtonVariant="shift-hover"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="mediumSmall"
sizing="largeSmallSizeMediumTitles"
background="noiseDiagonalGradient"
cardStyle="gradient-radial"
primaryButtonStyle="double-inset"
secondaryButtonStyle="radial-glow"
headingFontWeight="medium"
>
<div id="nav" data-section="nav">
<NavbarStyleApple
brandName="E-Bike Emporium"
navItems={navItems}
/>
</div>
<div id="about-section" data-section="about-section">
<SplitAbout
title="Our Story: Powering Your Journey"
description="At E-Bike Emporium, we believe in a greener, more active future. Since 20XX, we've been dedicated to providing high-quality electric bikes that blend innovative technology with sustainable urban and adventure mobility. Our passion drives us to curate the best e-bikes on the market, ensuring every ride is exhilarating and eco-conscious."
bulletPoints={[
{ title: "Innovation", description: "Leading the charge with cutting-edge e-bike technology." },
{ title: "Sustainability", description: "Committed to eco-friendly transport solutions." },
{ title: "Community", description: "Building a network of passionate riders worldwide." }
]}
imageSrc="http://img.b2bpic.net/free-photo/group-business-people-office_23-2147775510.jpg?_wi=1"
imageAlt="Team working on bikes"
mediaAnimation="slide-up"
imagePosition="right"
textboxLayout="default"
useInvertedBackground={false}
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoEmphasis
logoSrc="http://img.b2bpic.net/free-photo/adorable-illustration-animal-bike_23-2151850288.jpg"
logoAlt="E-Bike Emporium Logo"
logoText="E-Bike Emporium"
columns={footerColumns}
/>
</div>
</ThemeProvider>
);
}

70
src/app/contact/page.tsx Normal file
View File

@@ -0,0 +1,70 @@
"use client";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
export default function ContactPage() {
const navItems = [
{ name: "Home", id: "/" },
{ name: "Products", id: "/products" },
{ name: "About Us", id: "/about" },
{ name: "Contact", id: "/contact" },
{ name: "FAQ", id: "/faq" }
];
const footerColumns = [
{ items: [{ label: "Urban Bikes", href: "/products" }, { label: "Mountain Bikes", href: "/products" }, { label: "Folding Bikes", href: "/products" }, { label: "Accessories", href: "/products" }] },
{ items: [{ label: "About Us", href: "/about" }, { label: "Our Story", href: "/about" }, { label: "Careers", href: "#" }, { label: "Blog", href: "#" }] },
{ items: [{ label: "FAQ", href: "/faq" }, { label: "Support", href: "/contact" }, { label: "Warranty", href: "#" }, { label: "Privacy Policy", href: "#" }] }
];
return (
<ThemeProvider
defaultButtonVariant="shift-hover"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="mediumSmall"
sizing="largeSmallSizeMediumTitles"
background="noiseDiagonalGradient"
cardStyle="gradient-radial"
primaryButtonStyle="double-inset"
secondaryButtonStyle="radial-glow"
headingFontWeight="medium"
>
<div id="nav" data-section="nav">
<NavbarStyleApple
brandName="E-Bike Emporium"
navItems={navItems}
/>
</div>
<div id="contact-section" data-section="contact-section">
<ContactSplitForm
title="Get In Touch: We're Here to Help"
description="Have questions about our e-bikes, need support, or just want to chat? Fill out the form below and our team will get back to you promptly. We're committed to providing excellent service."
inputs={[
{ name: "name", type: "text", placeholder: "Your Name", required: true },
{ name: "email", type: "email", placeholder: "Your Email", required: true },
{ name: "subject", type: "text", placeholder: "Subject" }
]}
textarea={{
name: "message", placeholder: "Your Message", rows: 5,
required: true
}}
imageSrc="http://img.b2bpic.net/free-photo/view-white-phone-with-map-gps-system_23-2150348705.jpg?_wi=1"
imageAlt="Contact Us"
mediaAnimation="slide-up"
mediaPosition="right"
buttonText="Send Message"
useInvertedBackground={false}
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoEmphasis
logoSrc="http://img.b2bpic.net/free-photo/adorable-illustration-animal-bike_23-2151850288.jpg"
logoAlt="E-Bike Emporium Logo"
logoText="E-Bike Emporium"
columns={footerColumns}
/>
</div>
</ThemeProvider>
);
}

65
src/app/faq/page.tsx Normal file
View File

@@ -0,0 +1,65 @@
"use client";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import FooterLogoEmphasis from '@/components/sections/footer/FooterLogoEmphasis';
import FaqDouble from '@/components/sections/faq/FaqDouble';
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
export default function FAQPage() {
const navItems = [
{ name: "Home", id: "/" },
{ name: "Products", id: "/products" },
{ name: "About Us", id: "/about" },
{ name: "Contact", id: "/contact" },
{ name: "FAQ", id: "/faq" }
];
const footerColumns = [
{ items: [{ label: "Urban Bikes", href: "/products" }, { label: "Mountain Bikes", href: "/products" }, { label: "Folding Bikes", href: "/products" }, { label: "Accessories", href: "/products" }] },
{ items: [{ label: "About Us", href: "/about" }, { label: "Our Story", href: "/about" }, { label: "Careers", href: "#" }, { label: "Blog", href: "#" }] },
{ items: [{ label: "FAQ", href: "/faq" }, { label: "Support", href: "/contact" }, { label: "Warranty", href: "#" }, { label: "Privacy Policy", href: "#" }] }
];
return (
<ThemeProvider
defaultButtonVariant="shift-hover"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="mediumSmall"
sizing="largeSmallSizeMediumTitles"
background="noiseDiagonalGradient"
cardStyle="gradient-radial"
primaryButtonStyle="double-inset"
secondaryButtonStyle="radial-glow"
headingFontWeight="medium"
>
<div id="nav" data-section="nav">
<NavbarStyleApple
brandName="E-Bike Emporium"
navItems={navItems}
/>
</div>
<div id="faq-section" data-section="faq-section">
<FaqDouble
title="Frequently Asked Questions"
description="Find quick answers to the most common questions about our electric bikes, orders, and services."
faqs={[
{ id: "q1", title: "What is the range of your e-bikes?", content: "Our e-bikes typically offer a range of 40-80 miles on a single charge, depending on the model, terrain, and rider weight." },
{ id: "q2", title: "Do you offer international shipping?", content: "Currently, we ship within the United States and Canada. We are working to expand our international shipping options soon." },
{ id: "q3", title: "What is your return policy?", content: "We offer a 30-day return policy for unused e-bikes in their original packaging. Please see our full returns page for details." },
{ id: "q4", title: "How long does assembly take?", content: "Most of our e-bikes arrive 80% assembled. Final assembly usually takes about 30-60 minutes with basic tools and our detailed instructions." },
{ id: "q5", title: "What kind of warranty do you provide?", content: "All our e-bikes come with a 2-year warranty on the frame, motor, and battery, and a 1-year warranty on other components." }
]}
faqsAnimation="slide-up"
textboxLayout="default"
useInvertedBackground={false}
/>
</div>
<div id="footer" data-section="footer">
<FooterLogoEmphasis
logoSrc="http://img.b2bpic.net/free-photo/adorable-illustration-animal-bike_23-2151850288.jpg"
logoAlt="E-Bike Emporium Logo"
logoText="E-Bike Emporium"
columns={footerColumns}
/>
</div>
</ThemeProvider>
);
}

16
src/app/i18n.ts Normal file
View File

@@ -0,0 +1,16 @@
import { notFound } from 'next/navigation';
// Removed: import { getRequestConfig } from 'next-intl/server'; // This line generated TS2307
export const locales = ['en', 'fr', 'de', 'sv'];
export const defaultLocale = 'en';
// Placeholder for getRequestConfig due to 'next-intl/server' module not found.
// Internationalization functionality will be disabled.
// To re-enable, ensure 'next-intl' is installed and configured as per its documentation.
export default async function getDummyRequestConfig({ locale }: { locale: string }) {
if (!locales.includes(locale as any)) notFound();
return {
messages: (await import(`../locales/${locale}.json`)).default
};
}

View File

@@ -114,7 +114,8 @@ export default function HomePage() {
columns={[ columns={[
{ items: [{ label: "Urban Bikes", href: "/products" }, { label: "Mountain Bikes", href: "/products" }, { label: "Folding Bikes", href: "/products" }, { label: "Accessories", href: "/products" }] }, { items: [{ label: "Urban Bikes", href: "/products" }, { label: "Mountain Bikes", href: "/products" }, { label: "Folding Bikes", href: "/products" }, { label: "Accessories", href: "/products" }] },
{ items: [{ label: "About Us", href: "/about" }, { label: "Our Story", href: "/about" }, { label: "Careers", href: "#" }, { label: "Blog", href: "#" }] }, { items: [{ label: "About Us", href: "/about" }, { label: "Our Story", href: "/about" }, { label: "Careers", href: "#" }, { label: "Blog", href: "#" }] },
{ items: [{ label: "FAQ", href: "/contact" }, { label: "Support", href: "/contact" }, { label: "Warranty", href: "#" }, { label: "Privacy Policy", href: "#" }] } { items: [{ label: "FAQ", href: "/contact" }, { label: "Support", href: "/contact" }, { label: "Warranty", href: "#" }, { label: "Privacy Policy", href: "#" }] },
{ items: [{ label: "English", href: "/en" }, { label: "Español", href: "/es" }, { label: "Français", href: "/fr" }] }
]} ]}
/> />
</div> </div>

16
src/middleware.ts Normal file
View File

@@ -0,0 +1,16 @@
import { locales, defaultLocale } from './app/i18n';
import { NextRequest, NextResponse } from 'next/server'; // Needed for a basic middleware
// Removed: import createMiddleware from 'next-intl/middleware'; // This line generated TS2307
// Placeholder for createMiddleware due to 'next-intl/middleware' module not found.
// Internationalization routing functionality will be disabled.
// To re-enable, ensure 'next-intl' is installed and configured as per its documentation.
export default function middleware(request: NextRequest) {
// Simple pass-through middleware, effectively disabling next-intl's routing
return NextResponse.next();
}
export const config = {
matcher: ['/', '/(fr|de|sv|en)/:path*']
};