Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 704f308cac | |||
| 1f70f9c349 | |||
| 46d248b354 | |||
| 7c685efcb0 | |||
| ef71150c09 | |||
| ed9424958d | |||
| d3f6e58d1d | |||
| 5a1973550d | |||
| 71c91f6391 | |||
| 5231631713 | |||
| f2a584ca61 |
59
src/app/admin/page.tsx
Normal file
59
src/app/admin/page.tsx
Normal file
@@ -0,0 +1,59 @@
|
||||
"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';
|
||||
|
||||
export default function AdminDashboardPage() {
|
||||
const [activeTab, setActiveTab] = useState('appointments');
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="hover-magnetic"
|
||||
defaultTextAnimation="background-highlight"
|
||||
borderRadius="rounded"
|
||||
contentWidth="smallMedium"
|
||||
sizing="large"
|
||||
background="floatingGradient"
|
||||
cardStyle="gradient-bordered"
|
||||
primaryButtonStyle="radial-glow"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="normal"
|
||||
>
|
||||
<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>
|
||||
</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>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
71
src/app/book-appointment/page.tsx
Normal file
71
src/app/book-appointment/page.tsx
Normal file
@@ -0,0 +1,71 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
|
||||
import FooterBase from '@/components/sections/footer/FooterBase';
|
||||
|
||||
export default function BookAppointmentPage() {
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="hover-magnetic"
|
||||
defaultTextAnimation="background-highlight"
|
||||
borderRadius="rounded"
|
||||
contentWidth="smallMedium"
|
||||
sizing="large"
|
||||
background="floatingGradient"
|
||||
cardStyle="gradient-bordered"
|
||||
primaryButtonStyle="radial-glow"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="normal"
|
||||
>
|
||||
<ReactLenis root>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleFullscreen
|
||||
navItems={[
|
||||
{ name: "Home", id: "/" },
|
||||
{ name: "Services", id: "/" },
|
||||
{ name: "Gallery", id: "/" },
|
||||
{ name: "Contact", id: "/" },
|
||||
{ name: "Book", id: "/book-appointment" },
|
||||
{ name: "Admin", id: "/admin" }
|
||||
]}
|
||||
brandName="Elite Grooming"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="booking" data-section="booking" className="py-24">
|
||||
<ContactSplitForm
|
||||
title="Schedule Your Appointment"
|
||||
description="Select your preferred service and time. Our team will confirm your booking shortly."
|
||||
inputs={[
|
||||
{ name: "fullName", type: "text", placeholder: "Full Name", required: true },
|
||||
{ name: "email", type: "email", placeholder: "Email Address", required: true },
|
||||
{ name: "date", type: "date", placeholder: "Appointment Date", required: true }
|
||||
]}
|
||||
multiSelect={{
|
||||
name: "service",
|
||||
label: "Choose Service",
|
||||
options: ["Precision Fade", "Beard Sculpt", "Hot Towel Shave"]
|
||||
}}
|
||||
textarea={{ name: "notes", placeholder: "Any special instructions or requests?" }}
|
||||
buttonText="Confirm Booking"
|
||||
onSubmit={(data) => console.log("Booking submitted:", data)}
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBase
|
||||
logoText="Elite Grooming"
|
||||
columns={[
|
||||
{ title: "Navigation", items: [{ label: "Home", href: "/" }, { label: "Services", href: "/" }] },
|
||||
{ title: "Support", items: [{ label: "FAQ", href: "/" }, { label: "Book", href: "/book-appointment" }] }
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
@@ -34,7 +34,8 @@ export default function LandingPage() {
|
||||
{ name: "Home", id: "hero" },
|
||||
{ name: "Services", id: "services" },
|
||||
{ name: "Gallery", id: "gallery" },
|
||||
{ name: "Contact", id: "contact" }
|
||||
{ name: "Contact", id: "contact" },
|
||||
{ name: "Admin", id: "/admin" }
|
||||
]}
|
||||
brandName="Elite Grooming"
|
||||
/>
|
||||
@@ -155,4 +156,4 @@ export default function LandingPage() {
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user