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 ( +
+
+ + + Inpact + + +
+ {DASHBOARD_NAV_ITEMS.map(({ to, icon: Icon, label }) => ( + + ))} +
+ +
+ {showSearch && ( +
+ + +
+ )} + + + + {showQuickLogout && typeof onLogout === "function" && ( + + )} + + +
+
+
+ ); +} 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 (
-
-
- - - Inpact - -
- - - - - - -
-
-
- - -
- - -
-
-
+

AI-Driven Sponsorship Matchmaking