Merge version_17 into main

Merge version_17 into main
This commit was merged in pull request #18.
This commit is contained in:
2026-03-18 22:51:25 +00:00

View File

@@ -1,19 +1,13 @@
"use client";
import { useState } from "react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleCentered from "@/components/navbar/NavbarStyleCentered/NavbarStyleCentered";
import HeroSplit from "@/components/sections/hero/HeroSplit";
import ProductCardFour from "@/components/sections/product/ProductCardFour";
import FooterMedia from "@/components/sections/footer/FooterMedia";
import { Flame, Lock, X } from "lucide-react";
import { Flame } from "lucide-react";
export default function FullMenuPage() {
const [isPasswordProtected, setIsPasswordProtected] = useState(true);
const [passwordInput, setPasswordInput] = useState("");
const [passwordError, setPasswordError] = useState(false);
const MENU_PASSWORD = "Caribbean2025";
const navItems = [
{ name: "Home", id: "home" },
{ name: "Menu", id: "menu" },
@@ -58,16 +52,6 @@ export default function FullMenuPage() {
},
];
const handlePasswordSubmit = () => {
if (passwordInput === MENU_PASSWORD) {
setIsPasswordProtected(false);
setPasswordError(false);
} else {
setPasswordError(true);
setPasswordInput("");
}
};
const allMenuItems = [
{
id: "jerk-chicken", name: "Jerk Chicken Platter", price: "$15.95", variant: "Full Rack", imageSrc: "http://img.b2bpic.net/free-photo/from-shrimps-batter-with-red-rice-greens-white-plate_176474-2654.jpg?_wi=1", imageAlt: "Jerk chicken grilled on foil with spices"},
@@ -126,101 +110,48 @@ export default function FullMenuPage() {
/>
</div>
{/* Password Protection Modal */}
{isPasswordProtected && (
<div className="fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4">
<div className="bg-white rounded-lg shadow-2xl max-w-md w-full p-8">
<div className="flex items-center justify-center mb-6">
<Lock className="w-8 h-8 text-orange-500 mr-2" />
<h2 className="text-2xl font-bold">Full Menu Access</h2>
</div>
<p className="text-gray-600 text-center mb-6">
This full menu is password protected. Please enter the password to continue.
</p>
<input
type="password"
value={passwordInput}
onChange={(e) => {
setPasswordInput(e.target.value);
setPasswordError(false);
}}
onKeyPress={(e) => {
if (e.key === "Enter") {
handlePasswordSubmit();
}
}}
placeholder="Enter password"
className={`w-full px-4 py-3 border-2 rounded-lg mb-4 focus:outline-none transition ${
passwordError
? "border-red-500 focus:border-red-600"
: "border-gray-300 focus:border-orange-500"
}`}
/>
{passwordError && (
<p className="text-red-600 text-sm mb-4">Incorrect password. Please try again.</p>
)}
<button
onClick={handlePasswordSubmit}
className="w-full bg-gradient-to-r from-orange-500 to-red-500 text-white font-semibold py-3 rounded-lg hover:opacity-90 transition mb-3"
>
Unlock Menu
</button>
<a
href="/"
className="block w-full bg-gray-200 hover:bg-gray-300 text-gray-800 font-semibold py-3 rounded-lg transition text-center"
>
Back to Home
</a>
</div>
</div>
)}
{/* Hero Section */}
{!isPasswordProtected && (
<div id="hero" data-section="hero">
<HeroSplit
title="Complete Island Menu"
description="Explore our full selection of authentic Caribbean dishes. Every item is crafted fresh and packed with island soul."
tag="Exclusive"
tagIcon={Flame}
tagAnimation="slide-up"
background={{ variant: "glowing-orb" }}
buttons={[
{
text: "Call to Order", href: "tel:2397850423"},
]}
buttonAnimation="slide-up"
imageSrc="http://img.b2bpic.net/free-vector/summer-label-collectio_23-2148160410.jpg?_wi=3"
imageAlt="Caribbean Flair Full Menu"
mediaAnimation="opacity"
imagePosition="right"
ariaLabel="Full menu page hero section"
/>
</div>
)}
<div id="hero" data-section="hero">
<HeroSplit
title="Complete Island Menu"
description="Explore our full selection of authentic Caribbean dishes. Every item is crafted fresh and packed with island soul."
tag="Exclusive"
tagIcon={Flame}
tagAnimation="slide-up"
background={{ variant: "glowing-orb" }}
buttons={[
{
text: "Call to Order", href: "tel:2397850423"},
]}
buttonAnimation="slide-up"
imageSrc="http://img.b2bpic.net/free-vector/summer-label-collectio_23-2148160410.jpg?_wi=3"
imageAlt="Caribbean Flair Full Menu"
mediaAnimation="opacity"
imagePosition="right"
ariaLabel="Full menu page hero section"
/>
</div>
{/* Full Menu Section */}
{!isPasswordProtected && (
<div id="full-menu" data-section="full-menu">
<ProductCardFour
title="All Menu Items"
description="Discover our complete selection of authentic Caribbean dishes, sides, drinks, and specials. All items are fresh and made to order."
tag="Complete Selection"
tagIcon={Flame}
tagAnimation="slide-up"
buttons={[
{
text: "Order Now", href: "/menu"},
]}
buttonAnimation="slide-up"
textboxLayout="default"
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
useInvertedBackground={false}
products={allMenuItems}
/>
</div>
)}
<div id="full-menu" data-section="full-menu">
<ProductCardFour
title="All Menu Items"
description="Discover our complete selection of authentic Caribbean dishes, sides, drinks, and specials. All items are fresh and made to order."
tag="Complete Selection"
tagIcon={Flame}
tagAnimation="slide-up"
buttons={[
{
text: "Order Now", href: "/menu"},
]}
buttonAnimation="slide-up"
textboxLayout="default"
gridVariant="three-columns-all-equal-width"
animationType="slide-up"
useInvertedBackground={false}
products={allMenuItems}
/>
</div>
{/* Footer */}
<div id="footer" data-section="footer">