Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 3ffd479537 | |||
| 30a6b48628 | |||
| 139f8b7be7 | |||
| 2af4dac379 | |||
| ed32aa6239 | |||
| aa3a29cad8 | |||
| 31e7c1ea44 | |||
| c478e433f4 | |||
| f308ab72e6 | |||
| c16765460d | |||
| 91a128d07c | |||
| 9d48dce859 |
69
src/app/dashboard/page.tsx
Normal file
69
src/app/dashboard/page.tsx
Normal 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>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -9,7 +9,6 @@ import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
|||||||
import HeroOverlay from '@/components/sections/hero/HeroOverlay';
|
import HeroOverlay from '@/components/sections/hero/HeroOverlay';
|
||||||
import MetricCardSeven from '@/components/sections/metrics/MetricCardSeven';
|
import MetricCardSeven from '@/components/sections/metrics/MetricCardSeven';
|
||||||
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
import NavbarStyleCentered from '@/components/navbar/NavbarStyleCentered/NavbarStyleCentered';
|
||||||
import ProductCardThree from '@/components/sections/product/ProductCardThree';
|
|
||||||
import TestimonialAboutCard from '@/components/sections/about/TestimonialAboutCard';
|
import TestimonialAboutCard from '@/components/sections/about/TestimonialAboutCard';
|
||||||
import TestimonialCardFifteen from '@/components/sections/testimonial/TestimonialCardFifteen';
|
import TestimonialCardFifteen from '@/components/sections/testimonial/TestimonialCardFifteen';
|
||||||
import { Calendar } from "lucide-react";
|
import { Calendar } from "lucide-react";
|
||||||
@@ -36,12 +35,12 @@ export default function LandingPage() {
|
|||||||
name: "Home", id: "hero"},
|
name: "Home", id: "hero"},
|
||||||
{
|
{
|
||||||
name: "Services", id: "features"},
|
name: "Services", id: "features"},
|
||||||
{
|
|
||||||
name: "Vendors", id: "products"},
|
|
||||||
{
|
{
|
||||||
name: "Reviews", id: "testimonials"},
|
name: "Reviews", id: "testimonials"},
|
||||||
{
|
{
|
||||||
name: "Contact", id: "contact"},
|
name: "Contact", id: "contact"},
|
||||||
|
{
|
||||||
|
name: "Dashboard", id: "/dashboard"},
|
||||||
]}
|
]}
|
||||||
brandName="ServiceConnect"
|
brandName="ServiceConnect"
|
||||||
/>
|
/>
|
||||||
@@ -52,8 +51,6 @@ export default function LandingPage() {
|
|||||||
title="Your Trusted Marketplace for Quality Local Services"
|
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."
|
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={[
|
buttons={[
|
||||||
{
|
|
||||||
text: "Browse Vendors", href: "#products"},
|
|
||||||
{
|
{
|
||||||
text: "Sign In", href: "/signin"},
|
text: "Sign In", href: "/signin"},
|
||||||
]}
|
]}
|
||||||
@@ -130,31 +127,6 @@ export default function LandingPage() {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</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">
|
<div id="testimonials" data-section="testimonials">
|
||||||
<TestimonialCardFifteen
|
<TestimonialCardFifteen
|
||||||
useInvertedBackground={false}
|
useInvertedBackground={false}
|
||||||
@@ -215,8 +187,6 @@ export default function LandingPage() {
|
|||||||
title: "Marketplace", items: [
|
title: "Marketplace", items: [
|
||||||
{
|
{
|
||||||
label: "About", href: "#"},
|
label: "About", href: "#"},
|
||||||
{
|
|
||||||
label: "Vendors", href: "#products"},
|
|
||||||
{
|
{
|
||||||
label: "Categories", href: "#categories"},
|
label: "Categories", href: "#categories"},
|
||||||
],
|
],
|
||||||
|
|||||||
67
src/app/signin/page.tsx
Normal file
67
src/app/signin/page.tsx
Normal 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>
|
||||||
|
);
|
||||||
|
}
|
||||||
79
src/app/vendor-dashboard/page.tsx
Normal file
79
src/app/vendor-dashboard/page.tsx
Normal 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>
|
||||||
|
);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user