13 Commits

Author SHA1 Message Date
e62ed12196 Update src/app/page.tsx 2026-04-28 02:08:06 +00:00
9b98c29c71 Merge version_8 into main
Merge version_8 into main
2026-04-28 02:07:10 +00:00
1d1a60214a Update src/app/admin/page.tsx 2026-04-28 02:07:04 +00:00
fb1fc9231d Merge version_7 into main
Merge version_7 into main
2026-04-28 02:05:07 +00:00
b28bb63675 Update src/app/booking/page.tsx 2026-04-28 02:05:04 +00:00
e7c1ec3512 Update src/app/admin/page.tsx 2026-04-28 02:05:03 +00:00
5903fb5260 Merge version_7 into main
Merge version_7 into main
2026-04-28 02:04:41 +00:00
0ec500e71b Add src/app/booking/page.tsx 2026-04-28 02:04:37 +00:00
a3e3b3fdc8 Update src/app/admin/page.tsx 2026-04-28 02:04:37 +00:00
686c1f1856 Merge version_6 into main
Merge version_6 into main
2026-04-28 02:03:42 +00:00
420716ed8f Update src/app/styles/variables.css 2026-04-28 02:03:39 +00:00
51e9681701 Update src/app/admin/page.tsx 2026-04-28 02:03:39 +00:00
e0984aa10b Merge version_5 into main
Merge version_5 into main
2026-04-28 01:59:52 +00:00
4 changed files with 87 additions and 51 deletions

View File

@@ -1,59 +1,53 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
import FooterBase from '@/components/sections/footer/FooterBase';
import { useState } from 'react';
import { useState } from "react";
export default function AdminDashboardPage() {
const [activeTab, setActiveTab] = useState('appointments');
export default function AdminDashboard() {
const [bookings, setBookings] = useState([
{ id: "1", client: "John Doe", service: "Precision Fade", status: "Pending" },
{ id: "2", client: "Mike Smith", service: "Beard Sculpt", status: "Confirmed" }
]);
return (
<ThemeProvider
defaultButtonVariant="hover-magnetic"
defaultTextAnimation="background-highlight"
borderRadius="rounded"
contentWidth="smallMedium"
sizing="large"
background="floatingGradient"
cardStyle="gradient-bordered"
primaryButtonStyle="radial-glow"
contentWidth="medium"
sizing="medium"
background="noise"
cardStyle="glass-elevated"
primaryButtonStyle="gradient"
secondaryButtonStyle="solid"
headingFontWeight="normal"
headingFontWeight="semibold"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Appointments", id: "appointments" },
{ name: "Schedule", id: "schedule" },
{ name: "Services", id: "services" },
{ name: "Customers", id: "customers" }
]}
brandName="Admin Panel"
/>
</div>
<main className="pt-32 pb-20 px-6 min-h-screen container mx-auto">
<h1 className="text-4xl font-bold mb-8">Dashboard: {activeTab.charAt(0).toUpperCase() + activeTab.slice(1)}</h1>
<div className="grid gap-8">
<div className="p-8 bg-card rounded-xl border border-border shadow-sm">
<p className="text-muted-foreground">Admin management tools for {activeTab} will be implemented here.</p>
<div className="min-h-screen p-8">
<h1 className="text-3xl font-bold mb-8">Booking Management Dashboard</h1>
<div className="grid gap-6">
{bookings.map((booking) => (
<div key={booking.id} className="p-6 flex justify-between items-center border rounded-lg">
<div>
<h2 className="text-xl font-bold">{booking.client}</h2>
<p className="text-muted-foreground">{booking.service}</p>
</div>
<div className="flex items-center gap-4">
<span className={`px-3 py-1 rounded-full text-sm font-medium ${booking.status === "Pending" ? "bg-yellow-100 text-yellow-800" : "bg-green-100 text-green-800"}`}>
{booking.status}
</span>
{booking.status === "Pending" && (
<button
className="px-4 py-2 bg-blue-600 text-white rounded-md cursor-pointer hover:bg-blue-700 transition-colors"
onClick={() => setBookings(prev => prev.map(b => b.id === booking.id ? {...b, status: "Confirmed"} : b))}
>
Process Booking
</button>
)}
</div>
</div>
</div>
</main>
<div id="footer" data-section="footer">
<FooterBase
logoText="Elite Grooming"
columns={[
{ title: "Navigation", items: [{ label: "Home", href: "/" }, { label: "Dashboard", href: "/admin" }] }
]}
/>
))}
</div>
</ReactLenis>
</div>
</ThemeProvider>
);
}
}

42
src/app/booking/page.tsx Normal file
View File

@@ -0,0 +1,42 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ContactCenter from '@/components/sections/contact/ContactCenter';
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
export default function BookingPage() {
return (
<ThemeProvider
defaultButtonVariant="hover-magnetic"
defaultTextAnimation="background-highlight"
borderRadius="rounded"
contentWidth="medium"
sizing="medium"
background="none"
cardStyle="glass-elevated"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="normal"
>
<div id="nav" data-section="nav">
<NavbarStyleFullscreen
navItems={[
{ name: "Home", id: "/" },
{ name: "Services", id: "/services" },
{ name: "Book Online", id: "/booking" }
]}
brandName="Elite Grooming"
/>
</div>
<div id="contact" data-section="contact" className="pt-32 pb-20">
<ContactCenter
tag="Appointment"
title="Schedule Your Visit"
description="Select your preferred time and barber for your next grooming session."
background={{ variant: "plain" }}
useInvertedBackground={false}
/>
</div>
</ThemeProvider>
);
}

View File

@@ -47,7 +47,7 @@ export default function LandingPage() {
title="Elite Grooming for the Modern Gentleman"
description="Precision fades, classic hot towel shaves, and professional beard sculpting. Elevate your style at our premier barbershop."
tag="Since 2015"
buttons={[{ text: "Book Appointment", href: "#contact" }]}
buttons={[{ text: "Book Appointment", href: "/book-appointment" }]}
mediaItems={[
{ imageSrc: "http://img.b2bpic.net/free-photo/handsome-bearded-man-barbershop-barber-work_627829-7361.jpg", imageAlt: "modern barber shop interior" },
{ imageSrc: "http://img.b2bpic.net/free-photo/barbershop-close-up-barber-holds-razor-shaving-his-beard_1157-43556.jpg", imageAlt: "barber grooming detail" }
@@ -62,7 +62,7 @@ export default function LandingPage() {
<TextAbout
useInvertedBackground={false}
title="Refined Grooming in the Heart of the City"
buttons={[{ text: "Learn More", href: "#contact" }]}
buttons={[{ text: "Learn More", href: "/book-appointment" }]}
/>
</div>
@@ -72,9 +72,9 @@ export default function LandingPage() {
textboxLayout="split"
useInvertedBackground={false}
plans={[
{ id: "fade", price: "$35", name: "Precision Fade", features: ["Consultation", "Skin fade", "Hot towel finish"], buttons: [{ text: "Book Now", href: "#contact" }] },
{ id: "beard", price: "$25", name: "Beard Sculpt", features: ["Beard trim", "Lineup", "Conditioning balm"], buttons: [{ text: "Book Now", href: "#contact" }] },
{ id: "shave", price: "$45", name: "Hot Towel Shave", features: ["Steam treatment", "Straight razor shave", "Aftershave balm"], buttons: [{ text: "Book Now", href: "#contact" }] }
{ id: "fade", price: "$35", name: "Precision Fade", features: ["Consultation", "Skin fade", "Hot towel finish"], buttons: [{ text: "Book Now", href: "/book-appointment" }] },
{ id: "beard", price: "$25", name: "Beard Sculpt", features: ["Beard trim", "Lineup", "Conditioning balm"], buttons: [{ text: "Book Now", href: "/book-appointment" }] },
{ id: "shave", price: "$45", name: "Hot Towel Shave", features: ["Steam treatment", "Straight razor shave", "Aftershave balm"], buttons: [{ text: "Book Now", href: "/book-appointment" }] }
]}
title="Our Professional Services"
description="Expert grooming to keep you sharp."

View File

@@ -11,11 +11,11 @@
--background-accent: #ffffff; */
--background: #000000;
--card: #121212;
--foreground: #ffffff;
--card: #1A1A1A;
--foreground: #FFFFFF;
--primary-cta: #FFD700;
--primary-cta-text: #000000;
--secondary-cta: #1A1A1A;
--secondary-cta: #262626;
--secondary-cta-text: #FFFFFF;
--accent: #B8860B;
--background-accent: #262626;