diff --git a/Frontend/env-example b/Frontend/env-example
deleted file mode 100644
index 4ce57da..0000000
--- a/Frontend/env-example
+++ /dev/null
@@ -1,3 +0,0 @@
-VITE_SUPABASE_URL=https://your-project.supabase.co
-VITE_SUPABASE_ANON_KEY=your-anon-key-here
-VITE_YOUTUBE_API_KEY=your-youtube-api-key-here
\ No newline at end of file
diff --git a/Frontend/src/components/dashboard-header.tsx b/Frontend/src/components/dashboard-header.tsx
new file mode 100644
index 0000000..8ed90bc
--- /dev/null
+++ b/Frontend/src/components/dashboard-header.tsx
@@ -0,0 +1,97 @@
+import React from "react";
+import { Link } from "react-router-dom";
+import type { LucideIcon } from "lucide-react";
+import {
+ BarChart3,
+ Briefcase,
+ FileText,
+ LayoutDashboard,
+ LogOut,
+ MessageSquare,
+ Rocket,
+ Search,
+ Users,
+} from "lucide-react";
+
+import { ModeToggle } from "./mode-toggle";
+import { UserNav } from "./user-nav";
+import { Button } from "./ui/button";
+import { Input } from "./ui/input";
+
+type NavItem = {
+ to: string;
+ icon: LucideIcon;
+ label: string;
+};
+
+const DASHBOARD_NAV_ITEMS: NavItem[] = [
+ { to: "/dashboard", icon: LayoutDashboard, label: "Dashboard" },
+ { to: "/dashboard/sponsorships", icon: Briefcase, label: "Sponsorships" },
+ { to: "/dashboard/collaborations", icon: Users, label: "Collaborations" },
+ { to: "/dashboard/contracts", icon: FileText, label: "Contracts" },
+ { to: "/dashboard/analytics", icon: BarChart3, label: "Analytics" },
+ { to: "/dashboard/messages", icon: MessageSquare, label: "Messages" },
+];
+
+export type DashboardHeaderProps = {
+ showSearch?: boolean;
+ showQuickLogout?: boolean;
+ onLogout?: () => void;
+};
+
+export default function DashboardHeader({
+ showSearch = true,
+ showQuickLogout = false,
+ onLogout,
+}: DashboardHeaderProps) {
+ return (
+
+ );
+}
diff --git a/Frontend/src/pages/CollaborationDetails.tsx b/Frontend/src/pages/CollaborationDetails.tsx
index f0c29f9..aec120b 100644
--- a/Frontend/src/pages/CollaborationDetails.tsx
+++ b/Frontend/src/pages/CollaborationDetails.tsx
@@ -1,5 +1,5 @@
import React, { useState, useEffect } from "react";
-import { useParams, useNavigate, Link } from "react-router-dom";
+import { useParams, useNavigate } from "react-router-dom";
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "../components/ui/card";
import { Button } from "../components/ui/button";
import { Avatar, AvatarFallback, AvatarImage } from "../components/ui/avatar";
@@ -8,8 +8,7 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from "../components/ui/tabs"
import { Input } from "../components/ui/input";
import { Textarea } from "../components/ui/textarea";
import { Separator } from "../components/ui/separator";
-import { ModeToggle } from "../components/mode-toggle";
-import { UserNav } from "../components/user-nav";
+import DashboardHeader from "../components/dashboard-header";
import {
ArrowLeft,
MessageSquare,
@@ -17,7 +16,6 @@ import {
CheckCircle,
Clock,
FileText,
- Users,
BarChart3,
Send,
Edit,
@@ -31,10 +29,6 @@ import {
Star,
TrendingUp,
Activity,
- LayoutDashboard,
- Briefcase,
- Search,
- Rocket,
X
} from "lucide-react";
import { activeCollabsMock } from "../components/collaboration-hub/activeCollabsMockData";
@@ -315,49 +309,7 @@ export default function CollaborationDetails() {
return (
{/* Main Header */}
-
-
-
-
-
Inpact
-
-
- {[
- { to: "/dashboard", icon: LayoutDashboard, label: "Dashboard" },
- { to: "/dashboard/sponsorships", icon: Briefcase, label: "Sponsorships" },
- { to: "/dashboard/collaborations", icon: Users, label: "Collaborations" },
- { to: "/dashboard/contracts", icon: FileText, label: "Contracts" },
- { to: "/dashboard/analytics", icon: BarChart3, label: "Analytics" },
- { to: "/dashboard/messages", icon: MessageSquare, label: "Messages" },
- ].map(({ to, icon: Icon, label }) => (
-
- ))}
-
-
-
-
+
{/* Page Header */}
diff --git a/Frontend/src/pages/Collaborations.tsx b/Frontend/src/pages/Collaborations.tsx
index dbbbbc8..30e7367 100644
--- a/Frontend/src/pages/Collaborations.tsx
+++ b/Frontend/src/pages/Collaborations.tsx
@@ -1,10 +1,6 @@
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "../components/ui/card"
-import { ModeToggle } from "../components/mode-toggle"
-import { UserNav } from "../components/user-nav"
import { Button } from "../components/ui/button"
-import { Input } from "../components/ui/input"
-import { BarChart3, Briefcase, FileText, LayoutDashboard, MessageSquare, Rocket, Search, Users } from "lucide-react"
-import {Link} from "react-router-dom"
+import DashboardHeader from "../components/dashboard-header"
import { Avatar, AvatarFallback, AvatarImage } from "../components/ui/avatar"
import { Badge } from "../components/ui/badge"
import { Tabs, TabsContent, TabsList, TabsTrigger } from "../components/ui/tabs"
@@ -45,51 +41,7 @@ export default function CollaborationsPage({ showHeader = true }: { showHeader?:
};
return (
- {showHeader && (
-
-
-
-
-
Inpact
-
-
- {[
- { to: "/dashboard", icon: LayoutDashboard, label: "Dashboard" },
- { to: "/dashboard/sponsorships", icon: Briefcase, label: "Sponsorships" },
- { to: "/dashboard/collaborations", icon: Users, label: "Collaborations" },
- { to: "/dashboard/contracts", icon: FileText, label: "Contracts" },
- { to: "/dashboard/analytics", icon: BarChart3, label: "Analytics" },
- { to: "/dashboard/messages", icon: MessageSquare, label: "Messages" },
- ].map(({ to, icon: Icon, label }) => (
-
- ))}
-
-
-
-
- )}
+ {showHeader &&
}
{/* Filter Sidebar */}
diff --git a/Frontend/src/pages/DashboardPage.tsx b/Frontend/src/pages/DashboardPage.tsx
index e5a8fc2..987bb95 100644
--- a/Frontend/src/pages/DashboardPage.tsx
+++ b/Frontend/src/pages/DashboardPage.tsx
@@ -1,21 +1,11 @@
-import { Link } from "react-router-dom"
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "../components/ui/card"
import { Tabs, TabsContent, TabsList, TabsTrigger } from "../components/ui/tabs"
-import { ModeToggle } from "../components/mode-toggle"
-import { UserNav } from "../components/user-nav"
import { Button } from "../components/ui/button"
-import { Input } from "../components/ui/input"
+import DashboardHeader from "../components/dashboard-header"
import {
BarChart3,
Briefcase,
DollarSign,
- FileText,
- Icon,
- LayoutDashboard,
- LogOut,
- MessageSquare,
- Rocket,
- Search,
Users,
} from "lucide-react"
import { PerformanceMetrics } from "../components/dashboard/performance-metrics"
@@ -29,52 +19,7 @@ export default function DashboardPage() {
return (
-
-
-
-
-
Inpact
-
-
- {[
- { to: "/dashboard", icon: LayoutDashboard, label: "Dashboard" },
- { to: "/dashboard/sponsorships", icon: Briefcase, label: "Sponsorships" },
- { to: "/dashboard/collaborations", icon: Users, label: "Collaborations" },
- { to: "/dashboard/contracts", icon: FileText, label: "Contracts" },
- { to: "/dashboard/analytics", icon: BarChart3, label: "Analytics" },
- { to: "/dashboard/messages", icon: MessageSquare, label: "Messages" },
- ].map(({ to, icon: Icon, label }) => (
-
- ))}
-
-
-
-
+
Dashboard
diff --git a/Frontend/src/pages/Messages.tsx b/Frontend/src/pages/Messages.tsx
index 332b854..ca63289 100644
--- a/Frontend/src/pages/Messages.tsx
+++ b/Frontend/src/pages/Messages.tsx
@@ -1,22 +1,10 @@
import { useState } from "react";
import { Button } from "../components/ui/button";
import { Input } from "../components/ui/input";
-import {
- BarChart3,
- Briefcase,
- FileText,
- LayoutDashboard,
- MessageSquare,
- Rocket,
- Search,
- Send,
- Users,
-} from "lucide-react";
-import { Link } from "react-router-dom";
+import DashboardHeader from "../components/dashboard-header";
+import { Search, Send } from "lucide-react";
import { Avatar, AvatarFallback, AvatarImage } from "../components/ui/avatar";
import { Badge } from "../components/ui/badge";
-import { ModeToggle } from "../components/mode-toggle";
-import { UserNav } from "../components/user-nav";
import { ScrollArea } from "../components/ui/scroll-area";
import { Separator } from "../components/ui/separator";
import { Tabs, TabsList, TabsTrigger } from "../components/ui/tabs";
@@ -168,71 +156,7 @@ export default function MessagesPage() {
return (
-
-
-
-
-
- Inpact
-
-
-
- {[
- { to: "/dashboard", icon: LayoutDashboard, label: "Dashboard" },
- {
- to: "/dashboard/sponsorships",
- icon: Briefcase,
- label: "Sponsorships",
- },
- {
- to: "/dashboard/collaborations",
- icon: Users,
- label: "Collaborations",
- },
- {
- to: "/dashboard/contracts",
- icon: FileText,
- label: "Contracts",
- },
- {
- to: "/dashboard/analytics",
- icon: BarChart3,
- label: "Analytics",
- },
- {
- to: "/dashboard/messages",
- icon: MessageSquare,
- label: "Messages",
- },
- ].map(({ to, icon: Icon, label }) => (
-
- ))}
-
-
-
-
+
{/* Old Code */}
{/* Sidebar */}
diff --git a/Frontend/src/pages/Sponsorships.tsx b/Frontend/src/pages/Sponsorships.tsx
index 67e813e..29a0752 100644
--- a/Frontend/src/pages/Sponsorships.tsx
+++ b/Frontend/src/pages/Sponsorships.tsx
@@ -1,21 +1,10 @@
import React from "react"
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "../components/ui/card"
-import { ModeToggle } from "../components/mode-toggle"
-import { UserNav } from "../components/user-nav"
+import DashboardHeader from "../components/dashboard-header"
import { Button } from "../components/ui/button"
-import { Input } from "../components/ui/input"
import {
- BarChart3,
- Briefcase,
DollarSign,
- FileText,
- LayoutDashboard,
- MessageSquare,
- Rocket,
- Search,
- Users,
} from "lucide-react"
-import { Link } from "react-router-dom"
import { Avatar, AvatarFallback, AvatarImage } from "../components/ui/avatar"
import { Badge } from "../components/ui/badge"
import { Tabs, TabsContent, TabsList, TabsTrigger } from "../components/ui/tabs"
@@ -26,64 +15,7 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from ".
export default function SponsorshipsPage() {
return (
-
+
AI-Driven Sponsorship Matchmaking