9 Commits

Author SHA1 Message Date
30a6b48628 Update src/app/vendor-dashboard/page.tsx 2026-04-19 15:19:02 +00:00
2af4dac379 Update src/app/vendor-dashboard/page.tsx 2026-04-19 15:18:36 +00:00
aa3a29cad8 Add src/app/vendor-dashboard/page.tsx 2026-04-19 15:18:11 +00:00
31e7c1ea44 Add src/app/signin/page.tsx 2026-04-19 15:18:11 +00:00
c478e433f4 Update src/app/page.tsx 2026-04-19 15:18:10 +00:00
f308ab72e6 Add src/app/dashboard/page.tsx 2026-04-19 15:18:10 +00:00
c16765460d Merge version_3 into main
Merge version_3 into main
2026-04-19 15:16:06 +00:00
91a128d07c Update src/app/page.tsx 2026-04-19 15:16:03 +00:00
9d48dce859 Merge version_2 into main
Merge version_2 into main
2026-04-19 15:14:43 +00:00
4 changed files with 217 additions and 32 deletions

View File

@@ -0,0 +1,69 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
import { LayoutDashboard, ShoppingBag, Heart, Settings, User } from "lucide-react";
export default function DashboardPage() {
return (
<ThemeProvider
defaultButtonVariant="hover-magnetic"
defaultTextAnimation="entrance-slide"
borderRadius="pill"
contentWidth="small"
sizing="large"
background="blurBottom"
cardStyle="solid"
primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="radial-glow"
headingFontWeight="extrabold"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleCentered
navItems={[
{ name: "Home", id: "/" },
{ name: "Dashboard", id: "#" }
]}
brandName="ServiceConnect"
/>
</div>
<main className="container mx-auto py-20 px-4">
<h1 className="text-4xl font-extrabold mb-10">Customer Dashboard</h1>
<div className="grid grid-cols-1 md:grid-cols-2 gap-8">
<div className="p-6 border rounded-3xl bg-card shadow-sm">
<div className="flex items-center gap-3 mb-4"><User /> <h2 className="text-xl font-bold">Profile</h2></div>
<p>View and edit your personal information and preferences.</p>
</div>
<div className="p-6 border rounded-3xl bg-card shadow-sm">
<div className="flex items-center gap-3 mb-4"><ShoppingBag /> <h2 className="text-xl font-bold">Order History</h2></div>
<p>Track your current and past service bookings.</p>
</div>
<div className="p-6 border rounded-3xl bg-card shadow-sm">
<div className="flex items-center gap-3 mb-4"><Heart /> <h2 className="text-xl font-bold">Saved Items</h2></div>
<p>Manage your favorite services and companies.</p>
</div>
<div className="p-6 border rounded-3xl bg-card shadow-sm">
<div className="flex items-center gap-3 mb-4"><Settings /> <h2 className="text-xl font-bold">Settings</h2></div>
<p>Configure account security, notifications, and WhatsApp integration.</p>
</div>
</div>
</main>
<div id="footer" data-section="footer">
<FooterBaseReveal
logoText="ServiceConnect"
columns={[
{ title: "Marketplace", items: [{ label: "Home", href: "/" }] },
{ title: "Account", items: [{ label: "Dashboard", href: "/dashboard" }] },
{ title: "Legal", items: [{ label: "Privacy", href: "#" }] },
]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -9,7 +9,6 @@ import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
import HeroOverlay from '@/components/sections/hero/HeroOverlay';
import MetricCardSeven from '@/components/sections/metrics/MetricCardSeven';
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import ProductCardThree from '@/components/sections/product/ProductCardThree';
import TestimonialAboutCard from '@/components/sections/about/TestimonialAboutCard';
import TestimonialCardFifteen from '@/components/sections/testimonial/TestimonialCardFifteen';
import { Calendar } from "lucide-react";
@@ -36,12 +35,12 @@ export default function LandingPage() {
name: "Home", id: "hero"},
{
name: "Services", id: "features"},
{
name: "Vendors", id: "products"},
{
name: "Reviews", id: "testimonials"},
{
name: "Contact", id: "contact"},
{
name: "Dashboard", id: "/dashboard"},
]}
brandName="ServiceConnect"
/>
@@ -52,8 +51,6 @@ export default function LandingPage() {
title="Your Trusted Marketplace for Quality Local Services"
description="Connecting you with verified professional companies for home, health, and more in the US and UK. Seamless booking, real reviews, and guaranteed satisfaction."
buttons={[
{
text: "Browse Vendors", href: "#products"},
{
text: "Sign In", href: "/signin"},
]}
@@ -130,31 +127,6 @@ export default function LandingPage() {
/>
</div>
<div id="products" data-section="products">
<ProductCardThree
animationType="slide-up"
textboxLayout="default"
gridVariant="uniform-all-items-equal"
useInvertedBackground={false}
products={[
{
id: "v1", name: "London Dental Care", price: "TBD", imageSrc: "http://img.b2bpic.net/free-photo/giant-glass-bulding_1203-811.jpg"},
{
id: "v2", name: "Pro Plumbers UK", price: "$80/hr", imageSrc: "http://img.b2bpic.net/free-photo/carpentry-concept-with-windows_23-2147773331.jpg"},
{
id: "v3", name: "Green Thumb Landscaping", price: "$120/job", imageSrc: "http://img.b2bpic.net/free-photo/close-up-strong-man-gloves-cutting-leaves-his-garden-farmer-spending-summer-morning-working-garden-near-countryside-house_176420-19902.jpg"},
{
id: "v4", name: "Family Dental Group", price: "TBD", imageSrc: "http://img.b2bpic.net/free-photo/lady-receptionist-working-hospital-reception-desk-help-patients-with-medical-appointment-healthcare-employee-waiting-room-lobby-checkup-visit-report-with-medication_482257-47699.jpg"},
{
id: "v5", name: "Premier Roofing", price: "$250/quote", imageSrc: "http://img.b2bpic.net/free-photo/skateboard-rink-view_23-2148937901.jpg"},
{
id: "v6", name: "Apex Electrical", price: "$90/hr", imageSrc: "http://img.b2bpic.net/free-photo/male-electrician-uniform-working-switchboard-electricity_169016-67983.jpg"},
]}
title="Top-Rated Service Providers"
description="Book a top-rated company in your area today."
/>
</div>
<div id="testimonials" data-section="testimonials">
<TestimonialCardFifteen
useInvertedBackground={false}
@@ -215,8 +187,6 @@ export default function LandingPage() {
title: "Marketplace", items: [
{
label: "About", href: "#"},
{
label: "Vendors", href: "#products"},
{
label: "Categories", href: "#categories"},
],

67
src/app/signin/page.tsx Normal file
View File

@@ -0,0 +1,67 @@
"use client";
import { useState } from "react";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import ContactSplitForm from '@/components/sections/contact/ContactSplitForm';
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
export default function SignInPage() {
const [isLogin, setIsLogin] = useState(true);
return (
<ThemeProvider
defaultButtonVariant="hover-magnetic"
defaultTextAnimation="entrance-slide"
borderRadius="pill"
contentWidth="small"
sizing="large"
background="blurBottom"
cardStyle="solid"
primaryButtonStyle="diagonal-gradient"
secondaryButtonStyle="radial-glow"
headingFontWeight="extrabold"
>
<NavbarStyleCentered
navItems={[
{ name: "Home", id: "/" },
{ name: "Services", id: "/services" },
{ name: "Reviews", id: "/reviews" },
{ name: "Contact", id: "/contact" },
]}
brandName="ServiceConnect"
/>
<div className="pt-32 pb-20">
<ContactSplitForm
useInvertedBackground={false}
title={isLogin ? "Sign In" : "Create Account"}
description={isLogin ? "Welcome back to ServiceConnect." : "Join our community to start booking services today."}
inputs={[
{ name: "email", type: "email", placeholder: "Email Address", required: true },
{ name: "password", type: "password", placeholder: "Password", required: true },
]}
buttonText={isLogin ? "Sign In" : "Sign Up"}
onSubmit={(data) => console.log(data)}
/>
<div className="text-center mt-6">
<button onClick={() => setIsLogin(!isLogin)} className="text-sm text-gray-500 hover:underline">
{isLogin ? "Need an account? Sign Up" : "Already have an account? Sign In"}
</button>
<div className="mt-2">
<a href="#" className="text-sm text-gray-500 hover:underline">Forgot Password?</a>
</div>
</div>
</div>
<FooterBaseReveal
logoText="ServiceConnect"
columns={[
{ title: "Marketplace", items: [{ label: "About", href: "#" }, { label: "Categories", href: "#" }] },
{ title: "Support", items: [{ label: "FAQ", href: "#" }, { label: "Contact", href: "#" }] },
]}
/>
</ThemeProvider>
);
}

View File

@@ -0,0 +1,79 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
import MetricCardSeven from '@/components/sections/metrics/MetricCardSeven';
import FeatureCardSix from '@/components/sections/feature/FeatureCardSix';
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
export default function VendorDashboardPage() {
return (
<ThemeProvider
defaultButtonVariant="hover-magnetic"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="medium"
sizing="medium"
background="circleGradient"
cardStyle="glass-elevated"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="normal"
>
<ReactLenis root>
<div id="nav" data-section="nav">
<NavbarStyleCentered
navItems={[
{ name: "Home", id: "/" },
{ name: "Inventory", id: "#inventory" },
{ name: "Sales", id: "#sales" },
{ name: "Orders", id: "#orders" },
]}
brandName="Vendor Dashboard"
/>
</div>
<div id="metrics" data-section="metrics">
<MetricCardSeven
title="Vendor Performance"
description="An overview of your current performance metrics."
tag="Analytics"
animationType="slide-up"
textboxLayout="default"
useInvertedBackground={false}
metrics={[
{ id: "1", value: "$12,450", title: "Total Revenue", items: ["Monthly average"] },
{ id: "2", value: "48", title: "Active Orders", items: ["Pending shipment"] },
{ id: "3", value: "98%", title: "Satisfaction Rate", items: ["Customer feedback"] }
]}
/>
</div>
<div id="inventory" data-section="inventory">
<FeatureCardSix
title="Inventory Management"
description="Manage your product stock levels effectively."
textboxLayout="default"
useInvertedBackground={false}
features={[
{
title: "Product A", description: "Stock levels are healthy.", imageSrc: "https://images.unsplash.com/photo-1523275335684-37898b6baf30?q=80&w=600&auto=format&fit=crop"
},
{
title: "Product B", description: "Stock running low.", imageSrc: "https://images.unsplash.com/photo-1505740420928-5e560c06d30e?q=80&w=600&auto=format&fit=crop"
}
]}
/>
</div>
<div id="footer" data-section="footer">
<FooterBaseReveal
logoText="ServiceConnect"
columns={[]}
/>
</div>
</ReactLenis>
</ThemeProvider>
);
}