From 80baf0194f16149f25652c6d056ed3ecc807b904 Mon Sep 17 00:00:00 2001 From: Saahi30 Date: Sat, 19 Jul 2025 06:40:51 +0530 Subject: [PATCH 01/10] feat: revamped ui --- Frontend/public/aossielogo.png | Bin 0 -> 81050 bytes Frontend/src/components/user-nav.tsx | 14 +- Frontend/src/index.css | 1 + Frontend/src/pages/Brand/Dashboard.tsx | 857 +++++++++++++++---------- 4 files changed, 519 insertions(+), 353 deletions(-) create mode 100644 Frontend/public/aossielogo.png diff --git a/Frontend/public/aossielogo.png b/Frontend/public/aossielogo.png new file mode 100644 index 0000000000000000000000000000000000000000..b2421da64a920fb55c96ac5685ed8896a604e008 GIT binary patch literal 81050 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 literal 0 HcmV?d00001 diff --git a/Frontend/src/components/user-nav.tsx b/Frontend/src/components/user-nav.tsx index 9c4939f..e771848 100644 --- a/Frontend/src/components/user-nav.tsx +++ b/Frontend/src/components/user-nav.tsx @@ -14,7 +14,11 @@ import { import { useAuth } from "../context/AuthContext"; import { Link } from "react-router-dom"; -export function UserNav() { +interface UserNavProps { + showDashboard?: boolean; +} + +export function UserNav({ showDashboard = true }: UserNavProps) { const { user, isAuthenticated, logout } = useAuth(); const [avatarError, setAvatarError] = useState(false); @@ -60,9 +64,11 @@ export function UserNav() { - - Dashboard - + {showDashboard && ( + + Dashboard + + )} Profile Settings diff --git a/Frontend/src/index.css b/Frontend/src/index.css index f2a93bb..55feb25 100644 --- a/Frontend/src/index.css +++ b/Frontend/src/index.css @@ -1,5 +1,6 @@ @import "tailwindcss"; @import "tw-animate-css"; +@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@700&display=swap'); @custom-variant dark (&:is(.dark *)); diff --git a/Frontend/src/pages/Brand/Dashboard.tsx b/Frontend/src/pages/Brand/Dashboard.tsx index 023c77b..3614a87 100644 --- a/Frontend/src/pages/Brand/Dashboard.tsx +++ b/Frontend/src/pages/Brand/Dashboard.tsx @@ -1,380 +1,539 @@ -import Chat from "@/components/chat/chat"; -import { Button } from "../../components/ui/button"; -import { - Card, - CardContent, - CardHeader, - CardTitle, -} from "../../components/ui/card"; -import { Input } from "../../components/ui/input"; -import { - Tabs, - TabsContent, - TabsList, - TabsTrigger, -} from "../../components/ui/tabs"; -import { - BarChart3, - Users, - MessageSquareMore, - TrendingUp, - Search, - Bell, - UserCircle, - FileText, - Send, - Clock, - CheckCircle2, - XCircle, - BarChart, - ChevronRight, - FileSignature, - LineChart, - Activity, - Rocket, -} from "lucide-react"; -import { CreatorMatches } from "../../components/dashboard/creator-matches"; -import { useState } from "react"; +import React, { useState } from "react"; +import { Menu, Settings, Search, Plus, Home, BarChart3, MessageSquare, FileText, ChevronLeft, ChevronRight, User } from "lucide-react"; +import { useNavigate, useLocation } from "react-router-dom"; +import { UserNav } from "../../components/user-nav"; -const Dashboard = () => { - // Mock sponsorships for selection (replace with real API call if needed) - const sponsorships = [ - { id: "1", title: "Summer Collection" }, - { id: "2", title: "Tech Launch" }, - { id: "3", title: "Fitness Drive" }, +const PRIMARY = "#0B00CF"; +const SECONDARY = "#300A6E"; +const ACCENT = "#FF2D2B"; + +const TABS = [ + { label: "Discover", route: "/brand/dashboard", icon: Home }, + { label: "Contracts", route: "/brand/contracts", icon: FileText }, + { label: "Messages", route: "/brand/messages", icon: MessageSquare }, + { label: "Tracking", route: "/brand/tracking", icon: BarChart3 }, ]; - const [selectedSponsorship, setSelectedSponsorship] = useState(""); + +export default function BrandDashboard() { + const navigate = useNavigate(); + const location = useLocation(); + const [sidebarCollapsed, setSidebarCollapsed] = useState(false); return ( - <> -
- {/* Navigation */} - - -
- {/* Header */} -
-

- Brand Dashboard -

-

- Discover and collaborate with creators that match your brand -

- {/* Search */} -
- - + {/* New Button */} +
+
- {/* Main Content */} - - - Discover - Contracts - Messages - Tracking - - - {/* Discover Tab */} - - {/* Stats */} -
- - - - Active Creators - - - - -
12,234
-

- +180 from last month -

-
-
- - - - Avg. Engagement - - - - -
4.5%
-

- +0.3% from last month -

-
-
- - - - Active Campaigns - - - - -
24
-

- 8 pending approval -

-
-
- - - - Messages - - - - -
12
-

- 3 unread messages -

-
-
+ {/* Navigation */} +
+ {TABS.map((tab) => { + const isActive = location.pathname === tab.route; + const Icon = tab.icon; + return ( + + ); + })}
- {/* Creator Recommendations */} -
-
-

- Matched Creators for Your Campaign -

-
-
- - + {/* Bottom Section - Profile and Settings */} +
+ {/* Profile */} + - {/* Contracts Tab */} - -
-

- Active Contracts -

- + {/* Settings */} +
-
- {[1, 2, 3].map((i) => ( -
-
-
- Creator -
-

- Summer Collection Campaign -

-

- with Alex Rivera -

-
- - - Due in 12 days - + {/* Collapse Toggle */} + +
+ + {/* Main Content */} +
+ {/* Top Bar */} +
+
+ INPACT Brands
+
+ {/* Settings button removed from top bar since it's now in sidebar */}
-
- - Active + + {/* Content Area */} +
+ {/* INPACT AI Title with animated gradient */} +

+ INPACT + + AI -

- $2,400 -

-

-
-
-
- - -
- -
-
- ))} -
- + - {/* Messages Tab */} - +
{ + e.currentTarget.style.borderColor = "#87CEEB"; + e.currentTarget.style.background = "rgba(26, 26, 26, 0.8)"; + e.currentTarget.style.backdropFilter = "blur(10px)"; + e.currentTarget.style.padding = "12px 16px"; + e.currentTarget.style.gap = "8px"; + e.currentTarget.style.width = "110%"; + e.currentTarget.style.transform = "translateX(-5%)"; + // Remove glass texture + const overlay = e.currentTarget.querySelector('[data-glass-overlay]'); + if (overlay) overlay.style.opacity = "0"; + }} + onBlur={(e) => { + e.currentTarget.style.borderColor = "rgba(255, 255, 255, 0.1)"; + e.currentTarget.style.background = "rgba(26, 26, 26, 0.6)"; + e.currentTarget.style.backdropFilter = "blur(20px)"; + e.currentTarget.style.padding = "16px 20px"; + e.currentTarget.style.gap = "12px"; + e.currentTarget.style.width = "100%"; + e.currentTarget.style.transform = "translateX(0)"; + // Restore glass texture + const overlay = e.currentTarget.querySelector('[data-glass-overlay]'); + if (overlay) overlay.style.opacity = "1"; + }} > - - - - {/* Tracking Tab */} - -
- - - - Total Reach - - - - -
2.4M
-

- Across all campaigns -

-
-
- - - - Engagement Rate - - - - -
5.2%
-

- Average across creators -

-
-
- - - ROI - - - -
3.8x
-

- Last 30 days -

-
-
- - - - Active Posts - - - - -
156
-

- Across platforms -

-
-
-
- -
-

- Campaign Performance -

-
- {[1, 2, 3].map((i) => ( -
-
-
- Creator -
-

Summer Collection

-

- with Sarah Parker -

+ {/* Glass texture overlay */} +
+ + +
-
-

458K Reach

-

- 6.2% Engagement -

-
-
-
-
- - 12 Posts Live -
-
- - 2 Pending -
-
-
+ + {/* Quick Actions */} +
+ {[ + { label: "Find Creators", icon: "👥", color: "#3b82f6" }, + { label: "Campaign Stats", icon: "📊", color: "#10b981" }, + { label: "Draft Contract", icon: "📄", color: "#f59e0b" }, + { label: "Analytics", icon: "📈", color: "#8b5cf6" }, + { label: "Messages", icon: "💬", color: "#ef4444" }, + ].map((action, index) => ( + ))}
- - -
- - ); -}; -export default Dashboard; + {/* CSS for gradient animation */} + + + ); +} From 55edfa7837f2da8d4756c5d902154089f5bbbeec Mon Sep 17 00:00:00 2001 From: Saahi30 Date: Tue, 23 Sep 2025 08:26:39 +0530 Subject: [PATCH 02/10] feat(brand): Brand dashboard ui change --- Frontend/src/components/ui/checkbox.tsx | 28 +++ Frontend/src/components/ui/empty-state.tsx | 226 +++++++++++++++++++++ Frontend/src/components/ui/error-state.tsx | 184 +++++++++++++++++ Frontend/src/components/ui/progress.tsx | 26 +++ 4 files changed, 464 insertions(+) create mode 100644 Frontend/src/components/ui/checkbox.tsx create mode 100644 Frontend/src/components/ui/empty-state.tsx create mode 100644 Frontend/src/components/ui/error-state.tsx create mode 100644 Frontend/src/components/ui/progress.tsx diff --git a/Frontend/src/components/ui/checkbox.tsx b/Frontend/src/components/ui/checkbox.tsx new file mode 100644 index 0000000..43ac6c4 --- /dev/null +++ b/Frontend/src/components/ui/checkbox.tsx @@ -0,0 +1,28 @@ +import * as React from "react" +import * as CheckboxPrimitive from "@radix-ui/react-checkbox" +import { Check } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Checkbox = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + + + +)) +Checkbox.displayName = CheckboxPrimitive.Root.displayName + +export { Checkbox } \ No newline at end of file diff --git a/Frontend/src/components/ui/empty-state.tsx b/Frontend/src/components/ui/empty-state.tsx new file mode 100644 index 0000000..513ddf3 --- /dev/null +++ b/Frontend/src/components/ui/empty-state.tsx @@ -0,0 +1,226 @@ +import React from 'react'; +import { Button } from '@/components/ui/button'; +import { Card, CardContent } from '@/components/ui/card'; +import { + Plus, + BarChart3, + Users, + FileText, + Settings, + Link, + TrendingUp, + Calendar, + Search, + Database +} from 'lucide-react'; + +export interface EmptyStateProps { + type?: 'analytics' | 'content' | 'contracts' | 'audience' | 'exports' | 'alerts' | 'search' | 'generic'; + title?: string; + message?: string; + actionLabel?: string; + onAction?: () => void; + secondaryActionLabel?: string; + onSecondaryAction?: () => void; + className?: string; + size?: 'sm' | 'md' | 'lg'; + showIllustration?: boolean; +} + +const EmptyState: React.FC = ({ + type = 'generic', + title, + message, + actionLabel, + onAction, + secondaryActionLabel, + onSecondaryAction, + className = '', + size = 'md', + showIllustration = true +}) => { + const getEmptyStateConfig = () => { + switch (type) { + case 'analytics': + return { + icon: , + defaultTitle: 'No Analytics Data', + defaultMessage: 'Connect your social media accounts and link content to start tracking performance metrics.', + iconBg: 'bg-blue-100', + actionLabel: 'Connect Accounts', + actionIcon: , + secondaryActionLabel: 'Learn More' + }; + case 'content': + return { + icon: , + defaultTitle: 'No Content Linked', + defaultMessage: 'Link your social media content to contracts to start tracking performance and ROI.', + iconBg: 'bg-green-100', + actionLabel: 'Link Content', + actionIcon: , + secondaryActionLabel: 'View Guide' + }; + case 'contracts': + return { + icon: , + defaultTitle: 'No Contracts Yet', + defaultMessage: 'Create your first sponsorship contract to start collaborating with brands and creators.', + iconBg: 'bg-purple-100', + actionLabel: 'Create Contract', + actionIcon: , + secondaryActionLabel: 'Browse Templates' + }; + case 'audience': + return { + icon: , + defaultTitle: 'No Audience Data', + defaultMessage: 'Connect your social accounts and link content to view detailed audience demographics and insights.', + iconBg: 'bg-orange-100', + actionLabel: 'Connect Accounts', + actionIcon: , + secondaryActionLabel: 'Link Content' + }; + case 'exports': + return { + icon: , + defaultTitle: 'No Exports Yet', + defaultMessage: 'Export your analytics data to create custom reports and share insights with stakeholders.', + iconBg: 'bg-indigo-100', + actionLabel: 'Create Export', + actionIcon: , + secondaryActionLabel: 'View Samples' + }; + case 'alerts': + return { + icon: , + defaultTitle: 'No Alerts Configured', + defaultMessage: 'Set up performance alerts to get notified when your campaigns need attention or are performing well.', + iconBg: 'bg-red-100', + actionLabel: 'Create Alert', + actionIcon: , + secondaryActionLabel: 'Learn About Alerts' + }; + case 'search': + return { + icon: , + defaultTitle: 'No Results Found', + defaultMessage: 'Try adjusting your search criteria or filters to find what you\'re looking for.', + iconBg: 'bg-gray-100', + actionLabel: 'Clear Filters', + actionIcon: null, + secondaryActionLabel: 'Reset Search' + }; + default: + return { + icon: , + defaultTitle: 'No Data Available', + defaultMessage: 'There\'s no data to display at the moment. Try refreshing or check back later.', + iconBg: 'bg-gray-100', + actionLabel: 'Refresh', + actionIcon: null, + secondaryActionLabel: 'Get Help' + }; + } + }; + + const config = getEmptyStateConfig(); + const displayTitle = title || config.defaultTitle; + const displayMessage = message || config.defaultMessage; + const displayActionLabel = actionLabel || config.actionLabel; + const displaySecondaryActionLabel = secondaryActionLabel || config.secondaryActionLabel; + + const sizeClasses = { + sm: 'p-4', + md: 'p-8', + lg: 'p-12' + }; + + const iconSizes = { + sm: 'h-8 w-8', + md: 'h-12 w-12', + lg: 'h-16 w-16' + }; + + const containerSizes = { + sm: 'w-12 h-12', + md: 'w-20 h-20', + lg: 'w-24 h-24' + }; + + const textSizes = { + sm: { + title: 'text-base', + message: 'text-sm' + }, + md: { + title: 'text-xl', + message: 'text-base' + }, + lg: { + title: 'text-2xl', + message: 'text-lg' + } + }; + + const Illustration: React.FC = () => { + if (!showIllustration) return null; + + return ( +
+
+ {React.cloneElement(config.icon, { + className: `${iconSizes[size]} ${config.icon.props.className}` + })} +
+ + {/* Optional decorative elements */} +
+
+
+
+
+
+ ); + }; + + return ( + + + + +

+ {displayTitle} +

+ +

+ {displayMessage} +

+ +
+ {onAction && ( + + )} + + {onSecondaryAction && ( + + )} +
+
+
+ ); +}; + +export default EmptyState; \ No newline at end of file diff --git a/Frontend/src/components/ui/error-state.tsx b/Frontend/src/components/ui/error-state.tsx new file mode 100644 index 0000000..02b04cc --- /dev/null +++ b/Frontend/src/components/ui/error-state.tsx @@ -0,0 +1,184 @@ +import React from 'react'; +import { Button } from '@/components/ui/button'; +import { Card, CardContent } from '@/components/ui/card'; +import { + AlertTriangle, + Wifi, + RefreshCw, + Settings, + ExternalLink, + AlertCircle, + XCircle +} from 'lucide-react'; + +export interface ErrorStateProps { + type?: 'network' | 'api' | 'auth' | 'permission' | 'not-found' | 'rate-limit' | 'generic'; + title?: string; + message?: string; + actionLabel?: string; + onAction?: () => void; + showRetry?: boolean; + onRetry?: () => void; + retryLoading?: boolean; + className?: string; + size?: 'sm' | 'md' | 'lg'; +} + +const ErrorState: React.FC = ({ + type = 'generic', + title, + message, + actionLabel, + onAction, + showRetry = true, + onRetry, + retryLoading = false, + className = '', + size = 'md' +}) => { + const getErrorConfig = () => { + switch (type) { + case 'network': + return { + icon: , + defaultTitle: 'Connection Error', + defaultMessage: 'Unable to connect to the server. Please check your internet connection and try again.', + iconBg: 'bg-red-100', + actionLabel: 'Check Connection', + actionIcon: + }; + case 'api': + return { + icon: , + defaultTitle: 'Service Error', + defaultMessage: 'We encountered an issue while processing your request. Please try again in a moment.', + iconBg: 'bg-orange-100', + actionLabel: 'Contact Support', + actionIcon: + }; + case 'auth': + return { + icon: , + defaultTitle: 'Authentication Required', + defaultMessage: 'Your session has expired. Please sign in again to continue.', + iconBg: 'bg-red-100', + actionLabel: 'Sign In', + actionIcon: + }; + case 'permission': + return { + icon: , + defaultTitle: 'Access Denied', + defaultMessage: 'You don\'t have permission to access this resource. Please contact your administrator.', + iconBg: 'bg-yellow-100', + actionLabel: 'Go Back', + actionIcon: null + }; + case 'not-found': + return { + icon: , + defaultTitle: 'Not Found', + defaultMessage: 'The requested resource could not be found.', + iconBg: 'bg-gray-100', + actionLabel: 'Go Home', + actionIcon: null + }; + case 'rate-limit': + return { + icon: , + defaultTitle: 'Rate Limit Exceeded', + defaultMessage: 'Too many requests. Please wait a moment before trying again.', + iconBg: 'bg-orange-100', + actionLabel: 'Learn More', + actionIcon: + }; + default: + return { + icon: , + defaultTitle: 'Something went wrong', + defaultMessage: 'An unexpected error occurred. Please try again.', + iconBg: 'bg-red-100', + actionLabel: 'Get Help', + actionIcon: + }; + } + }; + + const config = getErrorConfig(); + const displayTitle = title || config.defaultTitle; + const displayMessage = message || config.defaultMessage; + const displayActionLabel = actionLabel || config.actionLabel; + + const sizeClasses = { + sm: 'p-4', + md: 'p-6', + lg: 'p-8' + }; + + const iconSizes = { + sm: 'h-6 w-6', + md: 'h-8 w-8', + lg: 'h-10 w-10' + }; + + const textSizes = { + sm: { + title: 'text-base', + message: 'text-sm' + }, + md: { + title: 'text-lg', + message: 'text-sm' + }, + lg: { + title: 'text-xl', + message: 'text-base' + } + }; + + return ( + + +
+ {React.cloneElement(config.icon, { + className: `${iconSizes[size]} ${config.icon.props.className}` + })} +
+ +

+ {displayTitle} +

+ +

+ {displayMessage} +

+ +
+ {showRetry && onRetry && ( + + )} + + {onAction && ( + + )} +
+
+
+ ); +}; + +export default ErrorState; \ No newline at end of file diff --git a/Frontend/src/components/ui/progress.tsx b/Frontend/src/components/ui/progress.tsx new file mode 100644 index 0000000..e5ae975 --- /dev/null +++ b/Frontend/src/components/ui/progress.tsx @@ -0,0 +1,26 @@ +import * as React from "react" +import * as ProgressPrimitive from "@radix-ui/react-progress" + +import { cn } from "@/lib/utils" + +const Progress = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, value, ...props }, ref) => ( + + + +)) +Progress.displayName = ProgressPrimitive.Root.displayName + +export { Progress } \ No newline at end of file From 4b999833223015c4cc8f3cbe33a5fa983b14526d Mon Sep 17 00:00:00 2001 From: Saahi30 Date: Wed, 24 Sep 2025 03:49:30 +0530 Subject: [PATCH 03/10] chore(auth): expose user role in AuthContext --- Frontend/src/components/user-nav.tsx | 17 +++++++++++++++-- Frontend/src/context/AuthContext.tsx | 17 ++++++++++++++++- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/Frontend/src/components/user-nav.tsx b/Frontend/src/components/user-nav.tsx index e771848..5bd49c3 100644 --- a/Frontend/src/components/user-nav.tsx +++ b/Frontend/src/components/user-nav.tsx @@ -19,8 +19,9 @@ interface UserNavProps { } export function UserNav({ showDashboard = true }: UserNavProps) { - const { user, isAuthenticated, logout } = useAuth(); + const { user, isAuthenticated, logout, role } = useAuth(); const [avatarError, setAvatarError] = useState(false); + const [dashboardPath, setDashboardPath] = useState("/dashboard"); if (!isAuthenticated || !user) { return ( @@ -39,6 +40,18 @@ export function UserNav({ showDashboard = true }: UserNavProps) { setAvatarError(true); }; + // Determine which dashboard path to use based on user metadata or role from AuthContext + React.useEffect(() => { + if (!user) return; + + const roleFromUser = (user as any)?.user_metadata?.role || (user as any)?.role; + if (roleFromUser === "brand" || role === "brand") { + setDashboardPath("/brand/dashboard"); + } else { + setDashboardPath("/dashboard"); + } + }, [user, role]); + return ( @@ -66,7 +79,7 @@ export function UserNav({ showDashboard = true }: UserNavProps) { {showDashboard && ( - Dashboard + Dashboard )} Profile diff --git a/Frontend/src/context/AuthContext.tsx b/Frontend/src/context/AuthContext.tsx index 8588c41..0337aac 100644 --- a/Frontend/src/context/AuthContext.tsx +++ b/Frontend/src/context/AuthContext.tsx @@ -14,8 +14,10 @@ interface AuthContextType { login: () => void; logout: () => void; checkUserOnboarding: (userToCheck?: User | null) => Promise<{ hasOnboarding: boolean; role: string | null }>; + role: string | null; } + const AuthContext = createContext(undefined); interface AuthProviderProps { @@ -64,6 +66,7 @@ async function ensureUserInTable(user: any) { export const AuthProvider = ({ children }: AuthProviderProps) => { const [user, setUser] = useState(null); const [isAuthenticated, setIsAuthenticated] = useState(false); + const [role, setRole] = useState(null); const [loading, setLoading] = useState(true); const [lastRequest, setLastRequest] = useState(0); const navigate = useNavigate(); @@ -131,6 +134,15 @@ export const AuthProvider = ({ children }: AuthProviderProps) => { setUser(data.session?.user || null); setIsAuthenticated(!!data.session?.user); + // Determine role once at startup + if (data.session?.user) { + try { + const res = await checkUserOnboarding(data.session.user); + setRole(res.role || null); + } catch (err) { + console.error("AuthContext: error determining role", err); + } + } if (data.session?.user) { console.log("AuthContext: Ensuring user in table"); try { @@ -161,12 +173,15 @@ export const AuthProvider = ({ children }: AuthProviderProps) => { console.log("AuthContext: User authenticated"); try { await ensureUserInTable(session.user); + const res = await checkUserOnboarding(session.user); + setRole(res.role || null); } catch (error) { console.error("AuthContext: Error ensuring user in table", error); } setLoading(false); } else { // User logged out + setRole(null); console.log("AuthContext: User logged out"); setLoading(false); } @@ -208,7 +223,7 @@ export const AuthProvider = ({ children }: AuthProviderProps) => { } return ( - + {children} ); From 1e2c991d885d89dc1f28d83ffe855245e20751e4 Mon Sep 17 00:00:00 2001 From: Saahi30 Date: Thu, 25 Sep 2025 11:20:40 +0530 Subject: [PATCH 04/10] fix: Responsive and theme-aware sidebar --- Frontend/src/pages/Brand/Dashboard.tsx | 137 ++++++++++++++++--------- 1 file changed, 88 insertions(+), 49 deletions(-) diff --git a/Frontend/src/pages/Brand/Dashboard.tsx b/Frontend/src/pages/Brand/Dashboard.tsx index 3614a87..5d08885 100644 --- a/Frontend/src/pages/Brand/Dashboard.tsx +++ b/Frontend/src/pages/Brand/Dashboard.tsx @@ -3,9 +3,9 @@ import { Menu, Settings, Search, Plus, Home, BarChart3, MessageSquare, FileText, import { useNavigate, useLocation } from "react-router-dom"; import { UserNav } from "../../components/user-nav"; -const PRIMARY = "#0B00CF"; -const SECONDARY = "#300A6E"; -const ACCENT = "#FF2D2B"; +const PRIMARY = "var(--primary)"; +const SECONDARY = "var(--secondary)"; +const ACCENT = "var(--accent)"; const TABS = [ { label: "Discover", route: "/brand/dashboard", icon: Home }, @@ -19,33 +19,50 @@ export default function BrandDashboard() { const location = useLocation(); const [sidebarCollapsed, setSidebarCollapsed] = useState(false); + // Auto-collapse sidebar for viewports < 1024px + React.useEffect(() => { + const handleResize = () => { + if (window.innerWidth < 1024) { + setSidebarCollapsed(true); + } else { + setSidebarCollapsed(false); + } + }; + handleResize(); + window.addEventListener("resize", handleResize); + return () => window.removeEventListener("resize", handleResize); + }, []); + return (
{/* Left Sidebar */} -
+
{/* Logo */}
- I + I
{!sidebarCollapsed && ( - INPACT AI
- + for BRANDS @@ -91,7 +108,7 @@ export default function BrandDashboard() { border: "none", borderRadius: "12px", padding: sidebarCollapsed ? "12px" : "12px 16px", - color: "#fff", + color: "var(--text-default)", fontSize: "14px", fontWeight: 500, cursor: "pointer", @@ -101,7 +118,7 @@ export default function BrandDashboard() { gap: "8px", transition: "background-color 0.2s ease", }} - onMouseEnter={(e) => e.currentTarget.style.background = "#0a00b3"} + onMouseEnter={(e) => e.currentTarget.style.background = "var(--primary-hover)"} onMouseLeave={(e) => e.currentTarget.style.background = PRIMARY} > @@ -120,11 +137,11 @@ export default function BrandDashboard() { onClick={() => navigate(tab.route)} style={{ width: "100%", - background: isActive ? "rgba(42, 42, 42, 0.8)" : "transparent", + background: isActive ? "var(--sidebar-active)" : "transparent", border: "none", borderRadius: "8px", padding: sidebarCollapsed ? "12px" : "12px 16px", - color: isActive ? "#fff" : "#a0a0a0", + color: isActive ? "var(--text-default)" : "var(--muted-text)", fontSize: "14px", fontWeight: 500, cursor: "pointer", @@ -138,14 +155,14 @@ export default function BrandDashboard() { }} onMouseEnter={(e) => { if (!isActive) { - e.currentTarget.style.background = "rgba(42, 42, 42, 0.8)"; - e.currentTarget.style.color = "#fff"; + e.currentTarget.style.background = "var(--sidebar-active)"; + e.currentTarget.style.color = "var(--text-default)"; } }} onMouseLeave={(e) => { if (!isActive) { e.currentTarget.style.background = "transparent"; - e.currentTarget.style.color = "#a0a0a0"; + e.currentTarget.style.color = "var(--muted-text)"; } }} > @@ -159,17 +176,17 @@ export default function BrandDashboard() { {/* Bottom Section - Profile and Settings */}
{/* Profile */} @@ -246,16 +263,16 @@ export default function BrandDashboard() {
{/* Collapse Toggle */} -
From 1e2fcca251b910487186e86633cd9bb9d715790e Mon Sep 17 00:00:00 2001 From: Saahi30 Date: Thu, 25 Sep 2025 11:24:03 +0530 Subject: [PATCH 05/10] fix: add keyboard focus states --- Frontend/src/pages/Brand/Dashboard.tsx | 69 +++++++++++++++----------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/Frontend/src/pages/Brand/Dashboard.tsx b/Frontend/src/pages/Brand/Dashboard.tsx index 5d08885..b25566b 100644 --- a/Frontend/src/pages/Brand/Dashboard.tsx +++ b/Frontend/src/pages/Brand/Dashboard.tsx @@ -135,36 +135,8 @@ export default function BrandDashboard() {
{/* CSS for gradient animation */} + {/* CSS for gradient animation and nav button styles */}