Merge version_2 into main #1
72
src/app/admin/dashboard/page.tsx
Normal file
72
src/app/admin/dashboard/page.tsx
Normal file
@@ -0,0 +1,72 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import ReactLenis from "lenis/react";
|
||||
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
||||
import MetricCardEleven from '@/components/sections/metrics/MetricCardEleven';
|
||||
import FooterSimple from '@/components/sections/footer/FooterSimple';
|
||||
import { Users, AlertCircle, CheckCircle, CreditCard } from "lucide-react";
|
||||
|
||||
export default function AdminDashboardPage() {
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="hover-magnetic"
|
||||
defaultTextAnimation="entrance-slide"
|
||||
borderRadius="soft"
|
||||
contentWidth="mediumSmall"
|
||||
sizing="large"
|
||||
background="circleGradient"
|
||||
cardStyle="layered-gradient"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="radial-glow"
|
||||
headingFontWeight="extrabold"
|
||||
>
|
||||
<ReactLenis root>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarLayoutFloatingOverlay
|
||||
navItems={[
|
||||
{ name: "Home", id: "hero" },
|
||||
{ name: "About", id: "about" },
|
||||
{ name: "Menu", id: "menu" },
|
||||
{ name: "Contact", id: "contact" },
|
||||
{ name: "Admin Dashboard", id: "dashboard" },
|
||||
]}
|
||||
brandName="Allah Ho"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="dashboard" data-section="dashboard" className="pt-32 pb-20">
|
||||
<MetricCardEleven
|
||||
title="Member Payment Status"
|
||||
description="Real-time overview of monthly membership payments and alerts."
|
||||
animationType="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
metrics={[
|
||||
{
|
||||
id: "p1", value: "$12,450", title: "Total Revenue", description: "Current month collection", imageSrc: "https://img.b2bpic.net/free-photo/calculator-financial-data-analysis_23-2148154148.jpg"
|
||||
},
|
||||
{
|
||||
id: "p2", value: "84", title: "Active Members", description: "Fully paid for the month", imageSrc: "https://img.b2bpic.net/free-photo/group-people-business-meeting_23-2148155981.jpg"
|
||||
},
|
||||
{
|
||||
id: "p3", value: "6", title: "Overdue Alerts", description: "Immediate attention needed", imageSrc: "https://img.b2bpic.net/free-photo/man-holding-overdue-bill_23-2148153457.jpg"
|
||||
}
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterSimple
|
||||
columns={[
|
||||
{ title: "System", items: [{ label: "Members", href: "#" }, { label: "Payments", href: "#" }, { label: "Reports", href: "#" }] },
|
||||
{ title: "Support", items: [{ label: "Help Center", href: "#" }, { label: "Account", href: "#" }] }
|
||||
]}
|
||||
bottomLeftText="© 2024 Allah Ho Admin."
|
||||
bottomRightText="All rights reserved."
|
||||
/>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
228
src/app/page.tsx
228
src/app/page.tsx
@@ -32,21 +32,15 @@ export default function LandingPage() {
|
||||
<NavbarLayoutFloatingOverlay
|
||||
navItems={[
|
||||
{
|
||||
name: "Home",
|
||||
id: "hero",
|
||||
},
|
||||
name: "Home", id: "hero"},
|
||||
{
|
||||
name: "About",
|
||||
id: "about",
|
||||
},
|
||||
name: "About", id: "about"},
|
||||
{
|
||||
name: "Menu",
|
||||
id: "menu",
|
||||
},
|
||||
name: "Menu", id: "menu"},
|
||||
{
|
||||
name: "Contact",
|
||||
id: "contact",
|
||||
},
|
||||
name: "Contact", id: "contact"},
|
||||
{
|
||||
name: "Admin Dashboard", id: "/admin/dashboard"},
|
||||
]}
|
||||
brandName="Allah Ho"
|
||||
/>
|
||||
@@ -55,21 +49,16 @@ export default function LandingPage() {
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroBillboardScroll
|
||||
background={{
|
||||
variant: "plain",
|
||||
}}
|
||||
variant: "plain"}}
|
||||
title="An Experience of Authentic Flavor"
|
||||
description="Welcome to Allah Ho, where centuries-old traditions meet contemporary culinary finesse. Experience true hospitality and flavor."
|
||||
imageSrc="http://img.b2bpic.net/free-photo/luxury-meeting-dining-room-table-multiple-chairs_114579-2067.jpg"
|
||||
imageAlt="Luxurious restaurant interior"
|
||||
buttons={[
|
||||
{
|
||||
text: "Book a Table",
|
||||
href: "#contact",
|
||||
},
|
||||
text: "Book a Table", href: "#contact"},
|
||||
{
|
||||
text: "View Menu",
|
||||
href: "#menu",
|
||||
},
|
||||
text: "View Menu", href: "#menu"},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -81,17 +70,11 @@ export default function LandingPage() {
|
||||
description="Founded with the passion to bring authentic tastes to your table, Allah Ho has become a destination for true connoisseurs of fine dining."
|
||||
metrics={[
|
||||
{
|
||||
value: "15+",
|
||||
title: "Years Experience",
|
||||
},
|
||||
value: "15+", title: "Years Experience"},
|
||||
{
|
||||
value: "2k+",
|
||||
title: "Happy Guests",
|
||||
},
|
||||
value: "2k+", title: "Happy Guests"},
|
||||
{
|
||||
value: "50+",
|
||||
title: "Traditional Recipes",
|
||||
},
|
||||
value: "50+", title: "Traditional Recipes"},
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/bartender-preparing-cocktail_23-2147680729.jpg"
|
||||
mediaAnimation="slide-up"
|
||||
@@ -108,59 +91,23 @@ export default function LandingPage() {
|
||||
useInvertedBackground={false}
|
||||
products={[
|
||||
{
|
||||
id: "d1",
|
||||
brand: "Signature",
|
||||
name: "Royal Lamb Curry",
|
||||
price: "$28",
|
||||
rating: 5,
|
||||
reviewCount: "120",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/top-view-salmon-salad-with-avocado-wasabi-sauce-plate-plaid-fabric_141793-11665.jpg",
|
||||
},
|
||||
id: "d1", brand: "Signature", name: "Royal Lamb Curry", price: "$28", rating: 5,
|
||||
reviewCount: "120", imageSrc: "http://img.b2bpic.net/free-photo/top-view-salmon-salad-with-avocado-wasabi-sauce-plate-plaid-fabric_141793-11665.jpg"},
|
||||
{
|
||||
id: "d2",
|
||||
brand: "Signature",
|
||||
name: "Tandoori Special",
|
||||
price: "$24",
|
||||
rating: 5,
|
||||
reviewCount: "95",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beetroot-salad-with-carrots-corn-nuts-white-plate_140725-3541.jpg",
|
||||
},
|
||||
id: "d2", brand: "Signature", name: "Tandoori Special", price: "$24", rating: 5,
|
||||
reviewCount: "95", imageSrc: "http://img.b2bpic.net/free-photo/beetroot-salad-with-carrots-corn-nuts-white-plate_140725-3541.jpg"},
|
||||
{
|
||||
id: "d3",
|
||||
brand: "Signature",
|
||||
name: "Saffron Biryani",
|
||||
price: "$22",
|
||||
rating: 4,
|
||||
reviewCount: "88",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/indian-traditional-dish-with-rice-cashew-nuts-sauce-lemon-vegetables-coriander-leaf-wooden-tray_613910-21742.jpg",
|
||||
},
|
||||
id: "d3", brand: "Signature", name: "Saffron Biryani", price: "$22", rating: 4,
|
||||
reviewCount: "88", imageSrc: "http://img.b2bpic.net/free-photo/indian-traditional-dish-with-rice-cashew-nuts-sauce-lemon-vegetables-coriander-leaf-wooden-tray_613910-21742.jpg"},
|
||||
{
|
||||
id: "d4",
|
||||
brand: "Signature",
|
||||
name: "Mixed Grill Platter",
|
||||
price: "$35",
|
||||
rating: 5,
|
||||
reviewCount: "150",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/iskender-doner-table-top-view_140725-1156.jpg",
|
||||
},
|
||||
id: "d4", brand: "Signature", name: "Mixed Grill Platter", price: "$35", rating: 5,
|
||||
reviewCount: "150", imageSrc: "http://img.b2bpic.net/free-photo/iskender-doner-table-top-view_140725-1156.jpg"},
|
||||
{
|
||||
id: "d5",
|
||||
brand: "Signature",
|
||||
name: "Gourmet Halwa",
|
||||
price: "$12",
|
||||
rating: 5,
|
||||
reviewCount: "72",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/apple-pie-served-with-fruit-syrup_140725-1700.jpg",
|
||||
},
|
||||
id: "d5", brand: "Signature", name: "Gourmet Halwa", price: "$12", rating: 5,
|
||||
reviewCount: "72", imageSrc: "http://img.b2bpic.net/free-photo/apple-pie-served-with-fruit-syrup_140725-1700.jpg"},
|
||||
{
|
||||
id: "d6",
|
||||
brand: "Signature",
|
||||
name: "Garden Curry",
|
||||
price: "$18",
|
||||
rating: 4,
|
||||
reviewCount: "65",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/steaming-hot-curry-dish-with-fresh-herbs_84443-82590.jpg",
|
||||
},
|
||||
id: "d6", brand: "Signature", name: "Garden Curry", price: "$18", rating: 4,
|
||||
reviewCount: "65", imageSrc: "http://img.b2bpic.net/free-photo/steaming-hot-curry-dish-with-fresh-herbs_84443-82590.jpg"},
|
||||
]}
|
||||
title="Our Signature Dishes"
|
||||
description="Explore our carefully curated menu of traditional specialties."
|
||||
@@ -175,45 +122,20 @@ export default function LandingPage() {
|
||||
useInvertedBackground={false}
|
||||
testimonials={[
|
||||
{
|
||||
id: "1",
|
||||
name: "Sarah",
|
||||
role: "Food Critic",
|
||||
company: "Dining Daily",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/black-american-male-female-eating-vegan-food-restaurant_613910-7323.jpg",
|
||||
},
|
||||
id: "1", name: "Sarah", role: "Food Critic", company: "Dining Daily", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/black-american-male-female-eating-vegan-food-restaurant_613910-7323.jpg"},
|
||||
{
|
||||
id: "2",
|
||||
name: "James",
|
||||
role: "Regular",
|
||||
company: "Local Resident",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-brunette-woman-evening-dress-smiling-holding-wine-glass_176420-3783.jpg",
|
||||
},
|
||||
id: "2", name: "James", role: "Regular", company: "Local Resident", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/beautiful-brunette-woman-evening-dress-smiling-holding-wine-glass_176420-3783.jpg"},
|
||||
{
|
||||
id: "3",
|
||||
name: "Linda",
|
||||
role: "Visitor",
|
||||
company: "Traveler",
|
||||
rating: 4,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/friends-eating-restaurant_23-2148006619.jpg",
|
||||
},
|
||||
id: "3", name: "Linda", role: "Visitor", company: "Traveler", rating: 4,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/friends-eating-restaurant_23-2148006619.jpg"},
|
||||
{
|
||||
id: "4",
|
||||
name: "Robert",
|
||||
role: "Corporate",
|
||||
company: "Tech Firm",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-friends-having-laugh-together_23-2148395336.jpg",
|
||||
},
|
||||
id: "4", name: "Robert", role: "Corporate", company: "Tech Firm", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/young-friends-having-laugh-together_23-2148395336.jpg"},
|
||||
{
|
||||
id: "5",
|
||||
name: "Emily",
|
||||
role: "Foodie",
|
||||
company: "Blogger",
|
||||
rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/couple-together-romantic-dinner_23-2148060555.jpg",
|
||||
},
|
||||
id: "5", name: "Emily", role: "Foodie", company: "Blogger", rating: 5,
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/couple-together-romantic-dinner_23-2148060555.jpg"},
|
||||
]}
|
||||
title="Words from Our Guests"
|
||||
description="See why our guests return time and again."
|
||||
@@ -227,23 +149,14 @@ export default function LandingPage() {
|
||||
useInvertedBackground={false}
|
||||
metrics={[
|
||||
{
|
||||
id: "m1",
|
||||
icon: Utensils,
|
||||
title: "Cuisine Styles",
|
||||
value: "12",
|
||||
},
|
||||
id: "m1", icon: Utensils,
|
||||
title: "Cuisine Styles", value: "12"},
|
||||
{
|
||||
id: "m2",
|
||||
icon: Users,
|
||||
title: "Dedicated Staff",
|
||||
value: "45",
|
||||
},
|
||||
id: "m2", icon: Users,
|
||||
title: "Dedicated Staff", value: "45"},
|
||||
{
|
||||
id: "m3",
|
||||
icon: Star,
|
||||
title: "Star Rating",
|
||||
value: "4.9",
|
||||
},
|
||||
id: "m3", icon: Star,
|
||||
title: "Star Rating", value: "4.9"},
|
||||
]}
|
||||
title="Our Impact"
|
||||
description="Key achievements in our culinary journey."
|
||||
@@ -256,20 +169,11 @@ export default function LandingPage() {
|
||||
useInvertedBackground={false}
|
||||
faqs={[
|
||||
{
|
||||
id: "q1",
|
||||
title: "Do I need a reservation?",
|
||||
content: "Yes, we highly recommend making a reservation, especially for weekends.",
|
||||
},
|
||||
id: "q1", title: "Do I need a reservation?", content: "Yes, we highly recommend making a reservation, especially for weekends."},
|
||||
{
|
||||
id: "q2",
|
||||
title: "Are there vegetarian options?",
|
||||
content: "Absolutely, we have a diverse menu with many vegetarian and vegan choices.",
|
||||
},
|
||||
id: "q2", title: "Are there vegetarian options?", content: "Absolutely, we have a diverse menu with many vegetarian and vegan choices."},
|
||||
{
|
||||
id: "q3",
|
||||
title: "Is catering available?",
|
||||
content: "Yes, we offer professional catering for private events.",
|
||||
},
|
||||
id: "q3", title: "Is catering available?", content: "Yes, we offer professional catering for private events."},
|
||||
]}
|
||||
title="Common Inquiries"
|
||||
description="Answers to frequently asked questions about our service."
|
||||
@@ -283,8 +187,7 @@ export default function LandingPage() {
|
||||
<ContactSplit
|
||||
useInvertedBackground={false}
|
||||
background={{
|
||||
variant: "plain",
|
||||
}}
|
||||
variant: "plain"}}
|
||||
tag="Contact"
|
||||
title="Visit Us Soon"
|
||||
description="We look forward to welcoming you. Reserve your table or contact us for private event inquiries."
|
||||
@@ -298,50 +201,31 @@ export default function LandingPage() {
|
||||
<FooterSimple
|
||||
columns={[
|
||||
{
|
||||
title: "Menu",
|
||||
items: [
|
||||
title: "Menu", items: [
|
||||
{
|
||||
label: "Appetizers",
|
||||
href: "#",
|
||||
},
|
||||
label: "Appetizers", href: "#"},
|
||||
{
|
||||
label: "Main Course",
|
||||
href: "#",
|
||||
},
|
||||
label: "Main Course", href: "#"},
|
||||
{
|
||||
label: "Desserts",
|
||||
href: "#",
|
||||
},
|
||||
label: "Desserts", href: "#"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Info",
|
||||
items: [
|
||||
title: "Info", items: [
|
||||
{
|
||||
label: "About Us",
|
||||
href: "#",
|
||||
},
|
||||
label: "About Us", href: "#"},
|
||||
{
|
||||
label: "Location",
|
||||
href: "#",
|
||||
},
|
||||
label: "Location", href: "#"},
|
||||
{
|
||||
label: "Careers",
|
||||
href: "#",
|
||||
},
|
||||
label: "Careers", href: "#"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Legal",
|
||||
items: [
|
||||
title: "Legal", items: [
|
||||
{
|
||||
label: "Privacy Policy",
|
||||
href: "#",
|
||||
},
|
||||
label: "Privacy Policy", href: "#"},
|
||||
{
|
||||
label: "Terms of Use",
|
||||
href: "#",
|
||||
},
|
||||
label: "Terms of Use", href: "#"},
|
||||
],
|
||||
},
|
||||
]}
|
||||
@@ -352,4 +236,4 @@ export default function LandingPage() {
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
}
|
||||
68
src/app/signup/page.tsx
Normal file
68
src/app/signup/page.tsx
Normal file
@@ -0,0 +1,68 @@
|
||||
"use client";
|
||||
|
||||
import { useState } from 'react';
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
||||
import FooterSimple from '@/components/sections/footer/FooterSimple';
|
||||
import ReactLenis from 'lenis/react';
|
||||
|
||||
export default function SignupPage() {
|
||||
const [submitted, setSubmitted] = useState(false);
|
||||
|
||||
const handleSubmit = (e: React.FormEvent) => {
|
||||
e.preventDefault();
|
||||
setSubmitted(true);
|
||||
};
|
||||
|
||||
return (
|
||||
<ThemeProvider>
|
||||
<ReactLenis root>
|
||||
<NavbarLayoutFloatingOverlay navItems={[{name: "Home", id: "/"}, {name: "Signup", id: "/signup"}]} brandName="Allah Ho" />
|
||||
|
||||
<main className="min-h-screen pt-32 pb-20 px-4 md:px-8">
|
||||
<div className="max-w-xl mx-auto">
|
||||
{submitted ? (
|
||||
<div className="p-8 bg-card rounded-xl text-center">
|
||||
<h2 className="text-2xl font-bold mb-4">Welcome to the Club!</h2>
|
||||
<p>Thank you for registering. Your membership details have been received.</p>
|
||||
</div>
|
||||
) : (
|
||||
<form onSubmit={handleSubmit} className="p-8 bg-card rounded-xl shadow-lg">
|
||||
<h1 className="text-3xl font-bold mb-6">Member Registration</h1>
|
||||
<div className="space-y-4">
|
||||
<div>
|
||||
<label className="block mb-1">Full Name</label>
|
||||
<input required className="w-full p-2 border rounded" type="text" />
|
||||
</div>
|
||||
<div>
|
||||
<label className="block mb-1">Email Address</label>
|
||||
<input required className="w-full p-2 border rounded" type="email" />
|
||||
</div>
|
||||
<div>
|
||||
<label className="block mb-1">Membership Tier</label>
|
||||
<select className="w-full p-2 border rounded">
|
||||
<option>Silver - $50/mo</option>
|
||||
<option>Gold - $100/mo</option>
|
||||
<option>Platinum - $200/mo</option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<label className="block mb-1">Payment Method</label>
|
||||
<select className="w-full p-2 border rounded">
|
||||
<option>Credit Card</option>
|
||||
<option>PayPal</option>
|
||||
</select>
|
||||
</div>
|
||||
<button type="submit" className="w-full py-3 bg-primary text-white rounded font-bold hover:opacity-90">
|
||||
Complete Registration
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
)}
|
||||
</div>
|
||||
</main>
|
||||
<FooterSimple columns={[]} bottomLeftText="© 2024 Allah Ho" bottomRightText="All rights reserved." />
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user