Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e5cd01e3fa | |||
| 9747f7295e | |||
| a8bd9bd53b | |||
| d63365a65c | |||
| c4d0be80f2 | |||
| 519af619a2 | |||
| 8a4dd7dd34 | |||
| 60c2c21c5d | |||
| d55ad4236e | |||
| a1fc95b22f | |||
| a855fa11ad |
182
src/app/about/page.tsx
Normal file
182
src/app/about/page.tsx
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||||
|
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
|
||||||
|
import TextSplitAbout from '@/components/sections/about/TextSplitAbout';
|
||||||
|
import FeatureCardThree from '@/components/sections/feature/featureCardThree/FeatureCardThree';
|
||||||
|
import TeamCardFive from '@/components/sections/team/TeamCardFive';
|
||||||
|
import ContactText from '@/components/sections/contact/ContactText';
|
||||||
|
import FooterCard from '@/components/sections/footer/FooterCard';
|
||||||
|
import { Info, Leaf, Target, Award, Users, Heart, Phone, MessageCircle, MapPin } from "lucide-react";
|
||||||
|
|
||||||
|
export default function AboutPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="icon-arrow"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="pill"
|
||||||
|
contentWidth="compact"
|
||||||
|
sizing="largeSmallSizeMediumTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="inset"
|
||||||
|
primaryButtonStyle="shadow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="extrabold"
|
||||||
|
>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleCentered
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Menu", id: "/menu" },
|
||||||
|
{ name: "About", id: "/about" },
|
||||||
|
{ name: "Reviews", id: "reviews" },
|
||||||
|
{ name: "Contact", id: "contact" }
|
||||||
|
]}
|
||||||
|
button={{ text: "Call Now", href: "tel:+923139554161" }}
|
||||||
|
brandName="OBAID Nursery"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="hero" data-section="hero">
|
||||||
|
<HeroBillboard
|
||||||
|
title="About OBAID Nursery"
|
||||||
|
description="Your trusted partner for premium plants and exceptional agricultural excellence. Serving KPK with passion and quality for years."
|
||||||
|
background={{ variant: "plain" }}
|
||||||
|
tag="Our Story"
|
||||||
|
tagIcon={Info}
|
||||||
|
tagAnimation="slide-up"
|
||||||
|
buttons={[
|
||||||
|
{ text: "Get in Touch", href: "contact" },
|
||||||
|
{ text: "Visit Us", href: "https://maps.google.com/?q=Baloo,+Tehsil+Nowshera,+KPK,+Pakistan" }
|
||||||
|
]}
|
||||||
|
buttonAnimation="slide-up"
|
||||||
|
imageSrc="http://img.b2bpic.net/free-photo/beautiful-view-field-covered-green-grass-captured-canggu-bali_181624-7666.jpg"
|
||||||
|
imageAlt="OBAID Nursery Farm landscape"
|
||||||
|
mediaAnimation="slide-up"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="about-text" data-section="about-text">
|
||||||
|
<TextSplitAbout
|
||||||
|
title="Who We Are"
|
||||||
|
description={[
|
||||||
|
"OBAID Nursery is a family-run agricultural enterprise based in Baloo, Tehsil Nowshera, KPK. We are dedicated to providing the highest quality plants and trees to farmers, gardeners, and businesses across the region.", "With years of expertise in plant cultivation and a commitment to sustainable farming practices, we have established ourselves as a trusted name in the nursery business. Our team of skilled horticulturists works tirelessly to ensure every plant meets our rigorous quality standards.", "We believe in building long-term relationships with our customers by providing exceptional products, competitive pricing, and personalized agricultural guidance. Your success is our success."
|
||||||
|
]}
|
||||||
|
buttons={[
|
||||||
|
{ text: "Browse Our Menu", href: "/menu" },
|
||||||
|
{ text: "Contact Us", href: "contact" }
|
||||||
|
]}
|
||||||
|
buttonAnimation="slide-up"
|
||||||
|
showBorder={false}
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="values" data-section="values">
|
||||||
|
<FeatureCardThree
|
||||||
|
features={[
|
||||||
|
{
|
||||||
|
id: "01", title: "Quality Excellence", description: "Every plant is meticulously inspected and grown using premium farming techniques. We guarantee disease-free, healthy specimens.", imageSrc: "http://img.b2bpic.net/free-photo/two-workers-communicating-while-checking-growth-plants-plant-nursery_637285-1526.jpg", imageAlt: "Quality control process"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "02", title: "Customer First", description: "Your satisfaction is our priority. We provide expert guidance, competitive pricing, and reliable delivery services.", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-holding-watering-can_23-2149098282.jpg", imageAlt: "Customer service excellence"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "03", title: "Sustainability", description: "We practice eco-friendly farming methods and are committed to protecting the environment for future generations.", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-shot-green-plants-with-waterdrops-leaves-garden_181624-14346.jpg", imageAlt: "Sustainable farming practices"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "04", title: "Innovation", description: "We continuously explore new plant varieties and farming techniques to stay at the forefront of the industry.", imageSrc: "http://img.b2bpic.net/free-photo/woman-arranging-flower-pots-greenhouse_23-2148396836.jpg", imageAlt: "Modern farming innovation"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
title="Our Core Values"
|
||||||
|
description="These principles guide everything we do at OBAID Nursery."
|
||||||
|
tag="What We Stand For"
|
||||||
|
tagIcon={Target}
|
||||||
|
textboxLayout="default"
|
||||||
|
gridVariant="four-items-2x2-equal-grid"
|
||||||
|
animationType="slide-up"
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="achievements" data-section="achievements">
|
||||||
|
<FeatureCardThree
|
||||||
|
features={[
|
||||||
|
{
|
||||||
|
id: "01", title: "1000+ Satisfied Customers", description: "Trusted by farmers, gardeners, and businesses across Peshawar, Nowshera, and KPK region.", imageSrc: "http://img.b2bpic.net/free-photo/confident-handsome-middle-aged-entrepreneur_1262-4871.jpg", imageAlt: "Happy customer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "02", title: "4.9 Google Rating", description: "Our reputation is built on consistent quality and exceptional customer service with verified reviews.", imageSrc: "http://img.b2bpic.net/free-photo/stylish-woman-spending-time-spring-park_1157-37061.jpg", imageAlt: "Highly rated nursery"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "03", title: "500+ Plant Varieties", description: "Offering one of the largest collections of fruit trees, ornamental plants, and specialty species in KPK.", imageSrc: "http://img.b2bpic.net/free-photo/man-picking-up-organic-carrot-right-from-field_329181-16477.jpg", imageAlt: "Diverse plant collection"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "04", title: "Expert Team", description: "Our experienced horticulturists are ready to provide guidance and support for all your agricultural needs.", imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-cutting-leaves_23-2148579928.jpg", imageAlt: "Expert nursery team"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
title="Our Achievements"
|
||||||
|
description="Milestones that define our commitment to excellence."
|
||||||
|
tag="By The Numbers"
|
||||||
|
tagIcon={Award}
|
||||||
|
textboxLayout="default"
|
||||||
|
gridVariant="four-items-2x2-equal-grid"
|
||||||
|
animationType="slide-up"
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="team" data-section="team">
|
||||||
|
<TeamCardFive
|
||||||
|
team={[
|
||||||
|
{
|
||||||
|
id: "1", name: "Obaid Khan", role: "Founder & Owner", imageSrc: "http://img.b2bpic.net/free-photo/confident-handsome-middle-aged-entrepreneur_1262-4871.jpg", imageAlt: "Obaid Khan - Founder"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "2", name: "Aisha Khan", role: "Operations Manager", imageSrc: "http://img.b2bpic.net/free-photo/stylish-woman-spending-time-spring-park_1157-37061.jpg", imageAlt: "Aisha Khan - Operations Manager"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "3", name: "Muhammad Hassan", role: "Head Horticulturist", imageSrc: "http://img.b2bpic.net/free-photo/man-picking-up-organic-carrot-right-from-field_329181-16477.jpg", imageAlt: "Muhammad Hassan - Horticulturist"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "4", name: "Fatima Ahmed", role: "Customer Care", imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-cutting-leaves_23-2148579928.jpg", imageAlt: "Fatima Ahmed - Customer Care"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
animationType="slide-up"
|
||||||
|
title="Meet Our Team"
|
||||||
|
description="Passionate professionals dedicated to delivering excellence."
|
||||||
|
textboxLayout="default"
|
||||||
|
useInvertedBackground={false}
|
||||||
|
tag="Our People"
|
||||||
|
tagIcon={Users}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="cta-contact" data-section="cta-contact">
|
||||||
|
<ContactText
|
||||||
|
text="Interested in learning more about OBAID Nursery? We'd love to hear from you. Contact us today to discuss your plant needs or to visit our farm."
|
||||||
|
animationType="entrance-slide"
|
||||||
|
buttons={[
|
||||||
|
{ text: "Call Now", href: "tel:+923139554161" },
|
||||||
|
{ text: "Visit Us", href: "https://maps.google.com/?q=Baloo,+Tehsil+Nowshera,+KPK,+Pakistan" }
|
||||||
|
]}
|
||||||
|
background={{ variant: "plain" }}
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterCard
|
||||||
|
logoText="OBAID Nursery"
|
||||||
|
copyrightText="© 2025 OBAID Nursery Farm Baloo. All rights reserved."
|
||||||
|
socialLinks={[
|
||||||
|
{ icon: Phone, href: "tel:+923139554161", ariaLabel: "Call OBAID Nursery" },
|
||||||
|
{ icon: MessageCircle, href: "https://wa.me/923139554161", ariaLabel: "WhatsApp OBAID Nursery" },
|
||||||
|
{ icon: MapPin, href: "https://maps.google.com/?q=Baloo,+Tehsil+Nowshera,+KPK,+Pakistan", ariaLabel: "Get directions to OBAID Nursery" }
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
373
src/app/admin/page.tsx
Normal file
373
src/app/admin/page.tsx
Normal file
@@ -0,0 +1,373 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import { useState } from "react";
|
||||||
|
import { LayoutDashboard, Menu, ShoppingCart, BarChart3, LogOut } from "lucide-react";
|
||||||
|
|
||||||
|
interface MenuItem {
|
||||||
|
id: string;
|
||||||
|
name: string;
|
||||||
|
description: string;
|
||||||
|
price: string;
|
||||||
|
category: string;
|
||||||
|
available: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Order {
|
||||||
|
id: string;
|
||||||
|
customerName: string;
|
||||||
|
items: string;
|
||||||
|
status: string;
|
||||||
|
totalAmount: string;
|
||||||
|
timestamp: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const initialMenuItems: MenuItem[] = [
|
||||||
|
{
|
||||||
|
id: "1", name: "Biryani Special", description: "Fragrant rice with tender meat", price: "450", category: "Main Course", available: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "2", name: "Seekh Kebab", description: "Spiced minced meat kebab", price: "350", category: "Appetizers", available: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "3", name: "Chicken Karahi", description: "Spicy chicken with peppers and tomatoes", price: "400", category: "Main Course", available: false
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
const initialOrders: Order[] = [
|
||||||
|
{
|
||||||
|
id: "ORD001", customerName: "Ahmed Khan", items: "Biryani x2, Seekh Kebab x3", status: "Completed", totalAmount: "1250", timestamp: "2025-01-15 14:30"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "ORD002", customerName: "Fatima Hassan", items: "Chicken Karahi x1, Naan x2", status: "In Progress", totalAmount: "550", timestamp: "2025-01-15 14:45"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "ORD003", customerName: "Muhammad Ali", items: "Biryani x1", status: "Pending", totalAmount: "450", timestamp: "2025-01-15 15:00"
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
export default function AdminPanel() {
|
||||||
|
const [activeTab, setActiveTab] = useState<"dashboard" | "menu" | "orders">("dashboard");
|
||||||
|
const [menuItems, setMenuItems] = useState<MenuItem[]>(initialMenuItems);
|
||||||
|
const [orders, setOrders] = useState<Order[]>(initialOrders);
|
||||||
|
const [selectedMenuItem, setSelectedMenuItem] = useState<MenuItem | null>(null);
|
||||||
|
const [editForm, setEditForm] = useState<Partial<MenuItem>>({});
|
||||||
|
const [showForm, setShowForm] = useState(false);
|
||||||
|
|
||||||
|
const toggleItemAvailability = (id: string) => {
|
||||||
|
setMenuItems(menuItems.map(item =>
|
||||||
|
item.id === id ? { ...item, available: !item.available } : item
|
||||||
|
));
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleEditItem = (item: MenuItem) => {
|
||||||
|
setSelectedMenuItem(item);
|
||||||
|
setEditForm(item);
|
||||||
|
setShowForm(true);
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleSaveItem = () => {
|
||||||
|
if (selectedMenuItem) {
|
||||||
|
setMenuItems(menuItems.map(item =>
|
||||||
|
item.id === selectedMenuItem.id ? { ...item, ...editForm } : item
|
||||||
|
));
|
||||||
|
}
|
||||||
|
setShowForm(false);
|
||||||
|
setSelectedMenuItem(null);
|
||||||
|
setEditForm({});
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleAddItem = () => {
|
||||||
|
const newItem: MenuItem = {
|
||||||
|
id: String(menuItems.length + 1),
|
||||||
|
name: editForm.name || "", description: editForm.description || "", price: editForm.price || "", category: editForm.category || "", available: true
|
||||||
|
};
|
||||||
|
setMenuItems([...menuItems, newItem]);
|
||||||
|
setShowForm(false);
|
||||||
|
setEditForm({});
|
||||||
|
};
|
||||||
|
|
||||||
|
const updateOrderStatus = (id: string, newStatus: string) => {
|
||||||
|
setOrders(orders.map(order =>
|
||||||
|
order.id === id ? { ...order, status: newStatus } : order
|
||||||
|
));
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="hover-magnetic"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="rounded"
|
||||||
|
contentWidth="compact"
|
||||||
|
sizing="largeSmallSizeMediumTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="glass-elevated"
|
||||||
|
primaryButtonStyle="gradient"
|
||||||
|
secondaryButtonStyle="glass"
|
||||||
|
headingFontWeight="bold"
|
||||||
|
>
|
||||||
|
<div className="min-h-screen bg-background text-foreground">
|
||||||
|
{/* Header */}
|
||||||
|
<div className="border-b border-accent bg-card p-4">
|
||||||
|
<div className="max-w-7xl mx-auto flex items-center justify-between">
|
||||||
|
<div className="flex items-center gap-3">
|
||||||
|
<LayoutDashboard className="w-8 h-8 text-primary-cta" />
|
||||||
|
<h1 className="text-2xl font-bold">Baidar G Restaurant Admin</h1>
|
||||||
|
</div>
|
||||||
|
<button className="flex items-center gap-2 text-sm bg-secondary-cta px-4 py-2 rounded-lg hover:opacity-80 transition">
|
||||||
|
<LogOut className="w-4 h-4" />
|
||||||
|
Logout
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Navigation Tabs */}
|
||||||
|
<div className="border-b border-accent bg-card">
|
||||||
|
<div className="max-w-7xl mx-auto flex items-center gap-8 px-4">
|
||||||
|
<button
|
||||||
|
onClick={() => setActiveTab("dashboard")}
|
||||||
|
className={`py-4 font-medium transition flex items-center gap-2 ${
|
||||||
|
activeTab === "dashboard"
|
||||||
|
? "text-primary-cta border-b-2 border-primary-cta"
|
||||||
|
: "text-foreground/60 hover:text-foreground"
|
||||||
|
}`}
|
||||||
|
>
|
||||||
|
<BarChart3 className="w-4 h-4" />
|
||||||
|
Dashboard
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
onClick={() => setActiveTab("menu")}
|
||||||
|
className={`py-4 font-medium transition flex items-center gap-2 ${
|
||||||
|
activeTab === "menu"
|
||||||
|
? "text-primary-cta border-b-2 border-primary-cta"
|
||||||
|
: "text-foreground/60 hover:text-foreground"
|
||||||
|
}`}
|
||||||
|
>
|
||||||
|
<Menu className="w-4 h-4" />
|
||||||
|
Menu Management
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
onClick={() => setActiveTab("orders")}
|
||||||
|
className={`py-4 font-medium transition flex items-center gap-2 ${
|
||||||
|
activeTab === "orders"
|
||||||
|
? "text-primary-cta border-b-2 border-primary-cta"
|
||||||
|
: "text-foreground/60 hover:text-foreground"
|
||||||
|
}`}
|
||||||
|
>
|
||||||
|
<ShoppingCart className="w-4 h-4" />
|
||||||
|
Order Management
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Main Content */}
|
||||||
|
<div className="max-w-7xl mx-auto p-6">
|
||||||
|
{/* Dashboard Tab */}
|
||||||
|
{activeTab === "dashboard" && (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<h2 className="text-2xl font-bold">Dashboard Overview</h2>
|
||||||
|
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
|
||||||
|
<div className="bg-card rounded-lg p-6 border border-accent">
|
||||||
|
<p className="text-foreground/60 text-sm">Total Orders Today</p>
|
||||||
|
<p className="text-4xl font-bold text-primary-cta mt-2">{orders.length}</p>
|
||||||
|
<p className="text-sm text-foreground/50 mt-2">Active and completed</p>
|
||||||
|
</div>
|
||||||
|
<div className="bg-card rounded-lg p-6 border border-accent">
|
||||||
|
<p className="text-foreground/60 text-sm">Menu Items</p>
|
||||||
|
<p className="text-4xl font-bold text-primary-cta mt-2">{menuItems.length}</p>
|
||||||
|
<p className="text-sm text-foreground/50 mt-2">{menuItems.filter(i => i.available).length} available</p>
|
||||||
|
</div>
|
||||||
|
<div className="bg-card rounded-lg p-6 border border-accent">
|
||||||
|
<p className="text-foreground/60 text-sm">Total Revenue</p>
|
||||||
|
<p className="text-4xl font-bold text-primary-cta mt-2">PKR {orders.reduce((sum, o) => sum + parseInt(o.totalAmount), 0).toLocaleString()}</p>
|
||||||
|
<p className="text-sm text-foreground/50 mt-2">Today's earnings</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="mt-8">
|
||||||
|
<h3 className="text-lg font-bold mb-4">Recent Orders</h3>
|
||||||
|
<div className="space-y-2 max-h-80 overflow-y-auto">
|
||||||
|
{orders.map(order => (
|
||||||
|
<div key={order.id} className="flex items-center justify-between bg-card rounded-lg p-4 border border-accent hover:border-primary-cta transition">
|
||||||
|
<div className="flex-1">
|
||||||
|
<p className="font-semibold">{order.customerName}</p>
|
||||||
|
<p className="text-sm text-foreground/60">{order.items}</p>
|
||||||
|
<p className="text-xs text-foreground/50 mt-1">{order.timestamp}</p>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center gap-4">
|
||||||
|
<span className={`px-3 py-1 rounded text-xs font-medium ${
|
||||||
|
order.status === "Completed" ? "bg-green-500/20 text-green-600" :
|
||||||
|
order.status === "In Progress" ? "bg-blue-500/20 text-blue-600" :
|
||||||
|
"bg-yellow-500/20 text-yellow-600"
|
||||||
|
}`}>
|
||||||
|
{order.status}
|
||||||
|
</span>
|
||||||
|
<p className="font-semibold">PKR {order.totalAmount}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{/* Menu Management Tab */}
|
||||||
|
{activeTab === "menu" && (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<div className="flex items-center justify-between">
|
||||||
|
<h2 className="text-2xl font-bold">Menu Management</h2>
|
||||||
|
<button
|
||||||
|
onClick={() => {
|
||||||
|
setSelectedMenuItem(null);
|
||||||
|
setEditForm({});
|
||||||
|
setShowForm(true);
|
||||||
|
}}
|
||||||
|
className="bg-primary-cta text-white px-4 py-2 rounded-lg hover:opacity-90 transition"
|
||||||
|
>
|
||||||
|
Add New Item
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{/* Add/Edit Form */}
|
||||||
|
{showForm && (
|
||||||
|
<div className="bg-card rounded-lg p-6 border border-accent space-y-4">
|
||||||
|
<h3 className="text-lg font-bold">{selectedMenuItem ? "Edit Item" : "Add New Item"}</h3>
|
||||||
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
placeholder="Item Name"
|
||||||
|
value={editForm.name || ""}
|
||||||
|
onChange={(e) => setEditForm({ ...editForm, name: e.target.value })}
|
||||||
|
className="bg-background border border-accent rounded px-3 py-2 text-foreground placeholder:text-foreground/50"
|
||||||
|
/>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
placeholder="Price"
|
||||||
|
value={editForm.price || ""}
|
||||||
|
onChange={(e) => setEditForm({ ...editForm, price: e.target.value })}
|
||||||
|
className="bg-background border border-accent rounded px-3 py-2 text-foreground placeholder:text-foreground/50"
|
||||||
|
/>
|
||||||
|
<select
|
||||||
|
value={editForm.category || ""}
|
||||||
|
onChange={(e) => setEditForm({ ...editForm, category: e.target.value })}
|
||||||
|
className="bg-background border border-accent rounded px-3 py-2 text-foreground"
|
||||||
|
>
|
||||||
|
<option value="">Select Category</option>
|
||||||
|
<option value="Main Course">Main Course</option>
|
||||||
|
<option value="Appetizers">Appetizers</option>
|
||||||
|
<option value="Desserts">Desserts</option>
|
||||||
|
<option value="Beverages">Beverages</option>
|
||||||
|
</select>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
placeholder="Description"
|
||||||
|
value={editForm.description || ""}
|
||||||
|
onChange={(e) => setEditForm({ ...editForm, description: e.target.value })}
|
||||||
|
className="bg-background border border-accent rounded px-3 py-2 text-foreground placeholder:text-foreground/50 md:col-span-2"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div className="flex gap-2">
|
||||||
|
<button
|
||||||
|
onClick={selectedMenuItem ? handleSaveItem : handleAddItem}
|
||||||
|
className="bg-primary-cta text-white px-4 py-2 rounded-lg hover:opacity-90 transition"
|
||||||
|
>
|
||||||
|
{selectedMenuItem ? "Save Changes" : "Add Item"}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
onClick={() => {
|
||||||
|
setShowForm(false);
|
||||||
|
setSelectedMenuItem(null);
|
||||||
|
setEditForm({});
|
||||||
|
}}
|
||||||
|
className="bg-secondary-cta text-foreground px-4 py-2 rounded-lg hover:opacity-90 transition"
|
||||||
|
>
|
||||||
|
Cancel
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{/* Menu Items List */}
|
||||||
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
||||||
|
{menuItems.map(item => (
|
||||||
|
<div key={item.id} className="bg-card rounded-lg p-4 border border-accent hover:border-primary-cta transition">
|
||||||
|
<div className="flex items-start justify-between mb-3">
|
||||||
|
<div>
|
||||||
|
<h4 className="font-semibold text-lg">{item.name}</h4>
|
||||||
|
<p className="text-sm text-foreground/60">{item.category}</p>
|
||||||
|
</div>
|
||||||
|
<span className={`px-2 py-1 rounded text-xs font-medium ${
|
||||||
|
item.available ? "bg-green-500/20 text-green-600" : "bg-red-500/20 text-red-600"
|
||||||
|
}`}>
|
||||||
|
{item.available ? "Available" : "Unavailable"}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<p className="text-sm text-foreground/70 mb-4">{item.description}</p>
|
||||||
|
<div className="flex items-center justify-between">
|
||||||
|
<p className="text-xl font-bold text-primary-cta">PKR {item.price}</p>
|
||||||
|
<div className="flex gap-2">
|
||||||
|
<button
|
||||||
|
onClick={() => toggleItemAvailability(item.id)}
|
||||||
|
className="bg-secondary-cta px-3 py-1 rounded text-sm hover:opacity-90 transition"
|
||||||
|
>
|
||||||
|
{item.available ? "Mark Unavailable" : "Mark Available"}
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
onClick={() => handleEditItem(item)}
|
||||||
|
className="bg-primary-cta text-white px-3 py-1 rounded text-sm hover:opacity-90 transition"
|
||||||
|
>
|
||||||
|
Edit
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
|
||||||
|
{/* Order Management Tab */}
|
||||||
|
{activeTab === "orders" && (
|
||||||
|
<div className="space-y-6">
|
||||||
|
<h2 className="text-2xl font-bold">Order Management</h2>
|
||||||
|
<div className="space-y-3">
|
||||||
|
{orders.map(order => (
|
||||||
|
<div key={order.id} className="bg-card rounded-lg p-4 border border-accent hover:border-primary-cta transition">
|
||||||
|
<div className="flex items-start justify-between mb-3">
|
||||||
|
<div>
|
||||||
|
<h4 className="font-semibold text-lg">{order.id}</h4>
|
||||||
|
<p className="text-sm text-foreground/60">{order.customerName}</p>
|
||||||
|
</div>
|
||||||
|
<span className={`px-3 py-1 rounded text-xs font-medium ${
|
||||||
|
order.status === "Completed" ? "bg-green-500/20 text-green-600" :
|
||||||
|
order.status === "In Progress" ? "bg-blue-500/20 text-blue-600" :
|
||||||
|
"bg-yellow-500/20 text-yellow-600"
|
||||||
|
}`}>
|
||||||
|
{order.status}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<p className="text-sm text-foreground/70 mb-3">{order.items}</p>
|
||||||
|
<div className="flex items-center justify-between">
|
||||||
|
<div>
|
||||||
|
<p className="text-xs text-foreground/50">{order.timestamp}</p>
|
||||||
|
<p className="text-lg font-bold text-primary-cta mt-1">PKR {order.totalAmount}</p>
|
||||||
|
</div>
|
||||||
|
<select
|
||||||
|
value={order.status}
|
||||||
|
onChange={(e) => updateOrderStatus(order.id, e.target.value)}
|
||||||
|
className="bg-background border border-accent rounded px-3 py-2 text-foreground text-sm"
|
||||||
|
>
|
||||||
|
<option value="Pending">Pending</option>
|
||||||
|
<option value="In Progress">In Progress</option>
|
||||||
|
<option value="Completed">Completed</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
))}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
90
src/app/contact/page.tsx
Normal file
90
src/app/contact/page.tsx
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||||
|
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
|
||||||
|
import ContactSplit from '@/components/sections/contact/ContactSplit';
|
||||||
|
import FooterCard from '@/components/sections/footer/FooterCard';
|
||||||
|
import { Phone, MessageCircle, MapPin, Mail } from "lucide-react";
|
||||||
|
|
||||||
|
export default function ContactPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="icon-arrow"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="pill"
|
||||||
|
contentWidth="compact"
|
||||||
|
sizing="largeSmallSizeMediumTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="inset"
|
||||||
|
primaryButtonStyle="shadow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="extrabold"
|
||||||
|
>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleCentered
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Plants", id: "plants" },
|
||||||
|
{ name: "About", id: "about" },
|
||||||
|
{ name: "Reviews", id: "/reviews" },
|
||||||
|
{ name: "Contact", id: "/contact" }
|
||||||
|
]}
|
||||||
|
button={{ text: "Call Now", href: "tel:+923139554161" }}
|
||||||
|
brandName="OBAID Nursery"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="hero" data-section="hero">
|
||||||
|
<HeroBillboard
|
||||||
|
title="Get In Touch With OBAID Nursery"
|
||||||
|
description="Have questions about our plants or services? We're here to help! Contact us via phone, WhatsApp, or email. Our team responds quickly to all inquiries."
|
||||||
|
background={{ variant: "plain" }}
|
||||||
|
tag="Contact Us"
|
||||||
|
tagIcon={Mail}
|
||||||
|
tagAnimation="slide-up"
|
||||||
|
buttons={[
|
||||||
|
{ text: "Call Now", href: "tel:+923139554161" },
|
||||||
|
{ text: "WhatsApp", href: "https://wa.me/923139554161" }
|
||||||
|
]}
|
||||||
|
buttonAnimation="slide-up"
|
||||||
|
imageSrc="http://img.b2bpic.net/free-photo/beautiful-view-field-covered-green-grass-captured-canggu-bali_181624-7666.jpg"
|
||||||
|
imageAlt="OBAID Nursery contact and location"
|
||||||
|
mediaAnimation="slide-up"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="contact-form" data-section="contact-form">
|
||||||
|
<ContactSplit
|
||||||
|
tag="Newsletter"
|
||||||
|
title="Stay Updated With Our Latest Plants"
|
||||||
|
description="Subscribe to our newsletter to receive updates about new plant arrivals, seasonal offers, and expert gardening tips delivered to your inbox."
|
||||||
|
tagIcon={Mail}
|
||||||
|
tagAnimation="slide-up"
|
||||||
|
background={{ variant: "plain" }}
|
||||||
|
useInvertedBackground={false}
|
||||||
|
imageSrc="http://img.b2bpic.net/free-photo/beautiful-shot-green-plants-with-waterdrops-leaves-garden_181624-14346.jpg"
|
||||||
|
imageAlt="Green plants at OBAID Nursery"
|
||||||
|
mediaAnimation="slide-up"
|
||||||
|
mediaPosition="right"
|
||||||
|
inputPlaceholder="Enter your email address"
|
||||||
|
buttonText="Subscribe"
|
||||||
|
termsText="We respect your privacy. Unsubscribe at any time. We send updates about new arrivals and special offers."
|
||||||
|
onSubmit={(email) => console.log('Subscribed with email:', email)}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterCard
|
||||||
|
logoText="OBAID Nursery"
|
||||||
|
copyrightText="© 2025 OBAID Nursery Farm Baloo. All rights reserved."
|
||||||
|
socialLinks={[
|
||||||
|
{ icon: Phone, href: "tel:+923139554161", ariaLabel: "Call OBAID Nursery" },
|
||||||
|
{ icon: MessageCircle, href: "https://wa.me/923139554161", ariaLabel: "WhatsApp OBAID Nursery" },
|
||||||
|
{ icon: MapPin, href: "https://maps.google.com/?q=Baloo,+Tehsil+Nowshera,+KPK,+Pakistan", ariaLabel: "Get directions to OBAID Nursery" }
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -1,62 +1,28 @@
|
|||||||
import type { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
import { Manrope } from "next/font/google";
|
import { Geist, Geist_Mono } from "next/font/google";
|
||||||
import { DM_Sans } from "next/font/google";
|
|
||||||
import { Halant } from "next/font/google";
|
|
||||||
import { Inter } from "next/font/google";
|
|
||||||
import "./globals.css";
|
import "./globals.css";
|
||||||
import { ServiceWrapper } from "@/components/ServiceWrapper";
|
|
||||||
import Tag from "@/tag/Tag";
|
|
||||||
|
|
||||||
const manrope = Manrope({
|
const geist = Geist({
|
||||||
variable: "--font-manrope", subsets: ["latin"],
|
variable: "--font-geist-sans", subsets: ["latin"],
|
||||||
});
|
});
|
||||||
|
|
||||||
const dmSans = DM_Sans({
|
const geistMono = Geist_Mono({
|
||||||
variable: "--font-dm-sans", subsets: ["latin"],
|
variable: "--font-geist-mono", subsets: ["latin"],
|
||||||
});
|
|
||||||
|
|
||||||
const halant = Halant({
|
|
||||||
variable: "--font-halant", subsets: ["latin"],
|
|
||||||
weight: ["300", "400", "500", "600", "700"],
|
|
||||||
});
|
|
||||||
|
|
||||||
const inter = Inter({
|
|
||||||
variable: "--font-inter", subsets: ["latin"],
|
|
||||||
});
|
});
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "OBAID Nursery Farm Baloo | Premium Plants & Fruit Trees", description: "High-quality plants, persimmon trees, and fruit saplings in Nowshera. Trusted by farmers and plant lovers. ⭐4.9 rated. Call +92 313 9554161", keywords: "plant nursery Nowshera, fruit trees Pakistan, persimmon plants, nursery farm Peshawar, plants Baloo, garden plants KPK", metadataBase: new URL("https://obaidnursery.com"),
|
title: "Baidar G Restaurant Admin Panel", description: "Admin dashboard for managing restaurant menu, orders, and operations"};
|
||||||
alternates: {
|
|
||||||
canonical: "https://obaidnursery.com"
|
|
||||||
},
|
|
||||||
openGraph: {
|
|
||||||
title: "OBAID Nursery Farm Baloo | Premium Plants & Fruit Trees", description: "High-quality plants, persimmon trees, and fruit saplings in Nowshera. Trusted by farmers and plant lovers.", url: "https://obaidnursery.com", siteName: "OBAID Nursery Farm", type: "website", images: [{
|
|
||||||
url: "http://img.b2bpic.net/free-photo/beautiful-view-field-covered-green-grass-captured-canggu-bali_181624-7666.jpg", alt: "OBAID Nursery Farm Premium Plants"
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
twitter: {
|
|
||||||
card: "summary_large_image", title: "OBAID Nursery Farm Baloo | Premium Plants & Fruit Trees", description: "High-quality plants and fruit trees. Call +92 313 9554161", images: ["http://img.b2bpic.net/free-photo/beautiful-view-field-covered-green-grass-captured-canggu-bali_181624-7666.jpg"]
|
|
||||||
},
|
|
||||||
robots: {
|
|
||||||
index: true,
|
|
||||||
follow: true
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
children,
|
children,
|
||||||
}: Readonly<{
|
}: {
|
||||||
children: React.ReactNode;
|
children: React.ReactNode;
|
||||||
}>) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<html lang="en" suppressHydrationWarning>
|
<html lang="en" suppressHydrationWarning>
|
||||||
<ServiceWrapper>
|
<body className={`${geist.variable} ${geistMono.variable}`}>
|
||||||
<body
|
{children}
|
||||||
className={`${manrope.variable} ${dmSans.variable} ${halant.variable} ${inter.variable} antialiased`}
|
|
||||||
>
|
|
||||||
<Tag />
|
|
||||||
{children}
|
|
||||||
|
|
||||||
<script
|
<script
|
||||||
dangerouslySetInnerHTML={{
|
dangerouslySetInnerHTML={{
|
||||||
__html: `
|
__html: `
|
||||||
@@ -1424,7 +1390,6 @@ export default function RootLayout({
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</body>
|
</body>
|
||||||
</ServiceWrapper>
|
|
||||||
</html>
|
</html>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
165
src/app/menu/page.tsx
Normal file
165
src/app/menu/page.tsx
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||||
|
import HeroBillboard from '@/components/sections/hero/HeroBillboard';
|
||||||
|
import FeatureCardThree from '@/components/sections/feature/featureCardThree/FeatureCardThree';
|
||||||
|
import ContactText from '@/components/sections/contact/ContactText';
|
||||||
|
import FooterCard from '@/components/sections/footer/FooterCard';
|
||||||
|
import { Menu, Sprout, Leaf, Phone, MessageCircle, MapPin } from "lucide-react";
|
||||||
|
|
||||||
|
export default function MenuPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="icon-arrow"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="pill"
|
||||||
|
contentWidth="compact"
|
||||||
|
sizing="largeSmallSizeMediumTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="inset"
|
||||||
|
primaryButtonStyle="shadow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="extrabold"
|
||||||
|
>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleCentered
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Menu", id: "/menu" },
|
||||||
|
{ name: "About", id: "/about" },
|
||||||
|
{ name: "Reviews", id: "reviews" },
|
||||||
|
{ name: "Contact", id: "contact" }
|
||||||
|
]}
|
||||||
|
button={{ text: "Call Now", href: "tel:+923139554161" }}
|
||||||
|
brandName="OBAID Nursery"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="hero" data-section="hero">
|
||||||
|
<HeroBillboard
|
||||||
|
title="Our Complete Plant Menu"
|
||||||
|
description="Explore our full catalog of premium plants, fruit trees, and ornamental species. All items available for purchase and delivery across KPK."
|
||||||
|
background={{ variant: "plain" }}
|
||||||
|
tag="Complete Catalog"
|
||||||
|
tagIcon={Menu}
|
||||||
|
tagAnimation="slide-up"
|
||||||
|
buttons={[
|
||||||
|
{ text: "Order Now", href: "tel:+923139554161" },
|
||||||
|
{ text: "WhatsApp", href: "https://wa.me/923139554161" }
|
||||||
|
]}
|
||||||
|
buttonAnimation="slide-up"
|
||||||
|
imageSrc="http://img.b2bpic.net/free-photo/beautiful-view-field-covered-green-grass-captured-canggu-bali_181624-7666.jpg"
|
||||||
|
imageAlt="Complete plant catalog at OBAID Nursery"
|
||||||
|
mediaAnimation="slide-up"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="fruit-trees" data-section="fruit-trees">
|
||||||
|
<FeatureCardThree
|
||||||
|
features={[
|
||||||
|
{
|
||||||
|
id: "01", title: "Apple Trees", description: "High-yield apple varieties suitable for KPK climate. Disease-resistant rootstock with 2-3 year maturity period.", imageSrc: "http://img.b2bpic.net/free-photo/fresh-healthy-organic-apples-nature_23-2148853371.jpg", imageAlt: "Premium apple tree seedlings"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "02", title: "Mango Trees", description: "Authentic Pakistani mango varieties including Chaunsa, Sindhri, and Langra. Grafted trees for faster fruiting.", imageSrc: "http://img.b2bpic.net/free-photo/ripe-fresh-mangoes-white-background_23-2148825532.jpg", imageAlt: "Quality mango tree saplings"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "03", title: "Citrus Trees", description: "Orange, lemon, and grapefruit trees. High-quality grafted varieties with excellent disease resistance.", imageSrc: "http://img.b2bpic.net/free-photo/fresh-organic-oranges-leaves_23-2148780551.jpg", imageAlt: "Healthy citrus tree saplings"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "04", title: "Persimmon Trees", description: "Premium persimmon varieties ideal for commercial orchards. Fast-growing with high fruit yield potential.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-organic-unripe-persimmon-fruits-bucket-checked-cloth-wooden-table_141793-88811.jpg", imageAlt: "Premium persimmon tree plants"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
title="Fruit Tree Selection"
|
||||||
|
description="Choose from our wide range of fruit trees, all suitable for the KPK climate and soil conditions."
|
||||||
|
tag="Fruit Trees"
|
||||||
|
tagIcon={Leaf}
|
||||||
|
textboxLayout="default"
|
||||||
|
gridVariant="bento-grid"
|
||||||
|
animationType="slide-up"
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="ornamental" data-section="ornamental">
|
||||||
|
<FeatureCardThree
|
||||||
|
features={[
|
||||||
|
{
|
||||||
|
id: "01", title: "Flowering Plants", description: "Colorful flowering varieties including roses, sunflowers, and chrysanthemums. Perfect for gardens and landscaping.", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-bouquet-of-fresh-colorful-flowers-on-wooden-table_23-2148830269.jpg", imageAlt: "Vibrant flowering plant collection"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "02", title: "Foliage Plants", description: "Green foliage plants for indoor and outdoor spaces. Includes ferns, ivies, and decorative leaf plants.", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-shot-green-plants-with-waterdrops-leaves-garden_181624-14346.jpg", imageAlt: "Lush green foliage plants"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "03", title: "Succulent & Cacti", description: "Low-maintenance succulents and cacti varieties. Perfect for decorative planters and xeriscaping.", imageSrc: "http://img.b2bpic.net/free-photo/little-cactus-aloe-small-pots_1153-5761.jpg", imageAlt: "Beautiful succulent and cactus collection"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "04", title: "Shrubs & Hedging", description: "Dense shrubs and hedging plants for privacy and landscaping borders. Various sizes and colors available.", imageSrc: "http://img.b2bpic.net/free-photo/woman-arranging-flower-pots-greenhouse_23-2148396836.jpg", imageAlt: "Premium shrub and hedging plants"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
title="Ornamental Plants"
|
||||||
|
description="Beautify your space with our premium ornamental plants and landscaping options."
|
||||||
|
tag="Decorative Plants"
|
||||||
|
tagIcon={Sprout}
|
||||||
|
textboxLayout="default"
|
||||||
|
gridVariant="bento-grid"
|
||||||
|
animationType="slide-up"
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="specialty" data-section="specialty">
|
||||||
|
<FeatureCardThree
|
||||||
|
features={[
|
||||||
|
{
|
||||||
|
id: "01", title: "Imported Specimens", description: "Rare imported plants for collectors and premium landscaping. Limited availability with authentication.", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-shot-green-plants-with-waterdrops-leaves-garden_181624-14346.jpg", imageAlt: "Exotic imported plants"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "02", title: "Medicinal Plants", description: "Organic medicinal and herbal plants. Fresh tulsi, neem, mint, and other therapeutic herbs.", imageSrc: "http://img.b2bpic.net/free-photo/top-view-gardening-tools-wooden-floor_23-2148200442.jpg", imageAlt: "Premium medicinal herb plants"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "03", title: "Vegetable Seedlings", description: "Quality vegetable seedlings for home and commercial gardening. Seasonal varieties available.", imageSrc: "http://img.b2bpic.net/free-photo/gardening_23-2148020427.jpg", imageAlt: "Fresh vegetable seedlings"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "04", title: "Grafted Trees", description: "Premium grafted fruit trees with faster fruiting and higher yield. Guaranteed quality specimens.", imageSrc: "http://img.b2bpic.net/free-photo/two-workers-communicating-while-checking-growth-plants-plant-nursery_637285-1526.jpg", imageAlt: "Expert grafted fruit trees"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
title="Specialty Items"
|
||||||
|
description="Discover our specialty collection including imported varieties, medicinal plants, and premium grafted trees."
|
||||||
|
tag="Special Collection"
|
||||||
|
tagIcon={Leaf}
|
||||||
|
textboxLayout="default"
|
||||||
|
gridVariant="bento-grid"
|
||||||
|
animationType="slide-up"
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="cta-contact" data-section="cta-contact">
|
||||||
|
<ContactText
|
||||||
|
text="Find the perfect plants for your needs. Contact us today to place your order. We offer delivery across KPK and expert gardening advice."
|
||||||
|
animationType="entrance-slide"
|
||||||
|
buttons={[
|
||||||
|
{ text: "Call Now", href: "tel:+923139554161" },
|
||||||
|
{ text: "WhatsApp Order", href: "https://wa.me/923139554161" }
|
||||||
|
]}
|
||||||
|
background={{ variant: "plain" }}
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterCard
|
||||||
|
logoText="OBAID Nursery"
|
||||||
|
copyrightText="© 2025 OBAID Nursery Farm Baloo. All rights reserved."
|
||||||
|
socialLinks={[
|
||||||
|
{ icon: Phone, href: "tel:+923139554161", ariaLabel: "Call OBAID Nursery" },
|
||||||
|
{ icon: MessageCircle, href: "https://wa.me/923139554161", ariaLabel: "WhatsApp OBAID Nursery" },
|
||||||
|
{ icon: MapPin, href: "https://maps.google.com/?q=Baloo,+Tehsil+Nowshera,+KPK,+Pakistan", ariaLabel: "Get directions to OBAID Nursery" }
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -27,11 +27,11 @@ export default function LandingPage() {
|
|||||||
<div id="nav" data-section="nav">
|
<div id="nav" data-section="nav">
|
||||||
<NavbarStyleCentered
|
<NavbarStyleCentered
|
||||||
navItems={[
|
navItems={[
|
||||||
{ name: "Home", id: "home" },
|
{ name: "Home", id: "/" },
|
||||||
{ name: "Plants", id: "plants" },
|
{ name: "Plants", id: "plants" },
|
||||||
{ name: "About", id: "about" },
|
{ name: "About", id: "about" },
|
||||||
{ name: "Reviews", id: "reviews" },
|
{ name: "Reviews", id: "/reviews" },
|
||||||
{ name: "Contact", id: "contact" }
|
{ name: "Contact", id: "/contact" }
|
||||||
]}
|
]}
|
||||||
button={{ text: "Call Now", href: "tel:+923139554161" }}
|
button={{ text: "Call Now", href: "tel:+923139554161" }}
|
||||||
brandName="OBAID Nursery"
|
brandName="OBAID Nursery"
|
||||||
|
|||||||
95
src/app/reviews/page.tsx
Normal file
95
src/app/reviews/page.tsx
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
"use client";
|
||||||
|
|
||||||
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
|
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||||
|
import TestimonialCardTen from '@/components/sections/testimonial/TestimonialCardTen';
|
||||||
|
import ContactText from '@/components/sections/contact/ContactText';
|
||||||
|
import FooterCard from '@/components/sections/footer/FooterCard';
|
||||||
|
import { Star, Phone, MessageCircle, MapPin } from "lucide-react";
|
||||||
|
|
||||||
|
export default function ReviewsPage() {
|
||||||
|
return (
|
||||||
|
<ThemeProvider
|
||||||
|
defaultButtonVariant="icon-arrow"
|
||||||
|
defaultTextAnimation="entrance-slide"
|
||||||
|
borderRadius="pill"
|
||||||
|
contentWidth="compact"
|
||||||
|
sizing="largeSmallSizeMediumTitles"
|
||||||
|
background="fluid"
|
||||||
|
cardStyle="inset"
|
||||||
|
primaryButtonStyle="shadow"
|
||||||
|
secondaryButtonStyle="radial-glow"
|
||||||
|
headingFontWeight="extrabold"
|
||||||
|
>
|
||||||
|
<div id="nav" data-section="nav">
|
||||||
|
<NavbarStyleCentered
|
||||||
|
navItems={[
|
||||||
|
{ name: "Home", id: "/" },
|
||||||
|
{ name: "Plants", id: "plants" },
|
||||||
|
{ name: "About", id: "about" },
|
||||||
|
{ name: "Reviews", id: "/reviews" },
|
||||||
|
{ name: "Contact", id: "/contact" }
|
||||||
|
]}
|
||||||
|
button={{ text: "Call Now", href: "tel:+923139554161" }}
|
||||||
|
brandName="OBAID Nursery"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="testimonials" data-section="testimonials">
|
||||||
|
<TestimonialCardTen
|
||||||
|
testimonials={[
|
||||||
|
{
|
||||||
|
id: "1", title: "Exceptional Quality Plants", quote: "I purchased persimmon plants from OBAID Nursery and they have grown beautifully. The quality is outstanding and the plants came in perfect condition. Highly recommended!", name: "Ahmad Khan", role: "Farmer, Nowshera", imageSrc: "http://img.b2bpic.net/free-photo/man-picking-up-organic-carrot-right-from-field_329181-16477.jpg", imageAlt: "Ahmad Khan testimonial"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "2", title: "Beautiful Garden Transformation", quote: "The ornamental plants from OBAID Nursery transformed my garden. The staff provided excellent guidance on plant care and selection. My family loves the green space now.", name: "Fatima Hassan", role: "Homeowner, Peshawar", imageSrc: "http://img.b2bpic.net/free-photo/stylish-woman-spending-time-spring-park_1157-37061.jpg", imageAlt: "Fatima Hassan testimonial"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "3", title: "Trusted Nursery for Years", quote: "Been buying plants from OBAID Nursery for the past 3 years. Their consistency in quality and affordable pricing is unbeatable. They truly care about their customers.", name: "Muhammad Ali", role: "Commercial Landscaper", imageSrc: "http://img.b2bpic.net/free-photo/confident-handsome-middle-aged-entrepreneur_1262-4871.jpg", imageAlt: "Muhammad Ali testimonial"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "4", title: "Best Fruit Trees Around", quote: "Purchased fruit trees for my orchard from OBAID Nursery. The quality and health of the trees exceeded my expectations. Their expert knowledge is invaluable.", name: "Khalid Ahmed", role: "Orchard Owner, KPK", imageSrc: "http://img.b2bpic.net/free-photo/side-view-woman-cutting-leaves_23-2148579928.jpg", imageAlt: "Khalid Ahmed testimonial"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "5", title: "Reliable and Professional", quote: "Ordering from OBAID Nursery was a smooth experience. Delivery was timely, packaging was excellent, and all plants arrived healthy. Will definitely order again!", name: "Sara Malik", role: "Garden Enthusiast", imageSrc: "http://img.b2bpic.net/free-photo/nature-woman-outdoor-smiling-portrait_1328-5043.jpg", imageAlt: "Sara Malik testimonial"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: "6", title: "Excellent Customer Service", quote: "The team at OBAID Nursery goes above and beyond. They answered all my questions about plant care and helped me choose the right plants for my space.", name: "Hassan Raza", role: "Office Manager", imageSrc: "http://img.b2bpic.net/free-photo/happy-man-showing-thumbs-up_1421-4396.jpg", imageAlt: "Hassan Raza testimonial"
|
||||||
|
}
|
||||||
|
]}
|
||||||
|
title="Customer Reviews & Testimonials"
|
||||||
|
description="Hear from our satisfied customers who trust OBAID Nursery for premium plants and exceptional service."
|
||||||
|
textboxLayout="default"
|
||||||
|
useInvertedBackground={false}
|
||||||
|
tag="Customer Testimonials"
|
||||||
|
tagIcon={Star}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="cta-contact" data-section="cta-contact">
|
||||||
|
<ContactText
|
||||||
|
text="Ready to experience the same quality and service? Visit OBAID Nursery today or call us to discuss your plant needs."
|
||||||
|
animationType="entrance-slide"
|
||||||
|
buttons={[
|
||||||
|
{ text: "Call Now", href: "tel:+923139554161" },
|
||||||
|
{ text: "WhatsApp Us", href: "https://wa.me/923139554161" }
|
||||||
|
]}
|
||||||
|
background={{ variant: "plain" }}
|
||||||
|
useInvertedBackground={false}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="footer" data-section="footer">
|
||||||
|
<FooterCard
|
||||||
|
logoText="OBAID Nursery"
|
||||||
|
copyrightText="© 2025 OBAID Nursery Farm Baloo. All rights reserved."
|
||||||
|
socialLinks={[
|
||||||
|
{ icon: Phone, href: "tel:+923139554161", ariaLabel: "Call OBAID Nursery" },
|
||||||
|
{ icon: MessageCircle, href: "https://wa.me/923139554161", ariaLabel: "WhatsApp OBAID Nursery" },
|
||||||
|
{ icon: MapPin, href: "https://maps.google.com/?q=Baloo,+Tehsil+Nowshera,+KPK,+Pakistan", ariaLabel: "Get directions to OBAID Nursery" }
|
||||||
|
]}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</ThemeProvider>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user