5 Commits

Author SHA1 Message Date
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
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
2 changed files with 76 additions and 51 deletions

View File

@@ -1,67 +1,50 @@
"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 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: "Admin", id: "/admin" }
]}
brandName="Elite Grooming"
/>
<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" onClick={() => setBookings(prev => prev.map(b => b.id === booking.id ? {...b, status: "Confirmed"} : b))}>
Process Booking
</button>
)}
</div>
</div>
))}
</div>
<main className="container mx-auto px-4 py-24 min-h-screen">
<h1 className="text-4xl font-bold mb-8">Admin Dashboard</h1>
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6">
<div className="p-6 border rounded-lg shadow-sm">
<h2 className="text-xl font-semibold">Scheduling</h2>
<p>Manage operating hours.</p>
</div>
<div className="p-6 border rounded-lg shadow-sm">
<h2 className="text-xl font-semibold">Calendar View</h2>
<p>View upcoming bookings.</p>
</div>
<div className="p-6 border rounded-lg shadow-sm">
<h2 className="text-xl font-semibold">Appointments</h2>
<p>Active booking requests.</p>
</div>
<div className="p-6 border rounded-lg shadow-sm">
<h2 className="text-xl font-semibold">Settings</h2>
<p>Booking administration.</p>
</div>
</div>
</main>
<div id="footer" data-section="footer">
<FooterBase
logoText="Elite Grooming"
columns={[
{ title: "Navigation", items: [{ label: "Home", href: "/" }] }
]}
/>
</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>
);
}