import { useAuth } from "@/hooks/useAuth"; import { useLocation } from "wouter"; import { useEffect, useState } from "react"; import Header from "@/components/layout/Header"; import Sidebar from "@/components/layout/Sidebar"; import TaskList from "@/components/tasks/TaskList"; import FinancialOverview from "@/components/financial/FinancialOverview"; import VoiceRecorder from "@/components/voice/VoiceRecorder"; import VoiceIndicator from "@/components/voice/VoiceIndicator"; import DailyJoke from "@/components/ai/DailyJoke"; import { CommandPalette } from "@/components/CommandPalette"; import { useVoiceContext } from "@/context/VoiceProvider"; import { useNotifications } from "@/context/NotificationProvider"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { Calendar, DollarSign, Mic, Brain, Activity, TrendingUp, Zap, HelpCircle } from "lucide-react"; import { useTourManager, getMainTourSteps } from "@/components/onboarding/TourManager"; export default function DashboardPage() { const { user, isLoading } = useAuth(); const [, setLocation] = useLocation(); const [commandPaletteOpen, setCommandPaletteOpen] = useState(false); const { isListening, speak } = useVoiceContext(); const { unreadCount } = useNotifications(); const { startTour } = useTourManager(); const handleStartTour = () => { startTour("main", getMainTourSteps()); }; useEffect(() => { if (!isLoading && !user) { setLocation("/login"); } }, [user, isLoading, setLocation]); useEffect(() => { if (user && !user.onboardingComplete) { setLocation("/onboarding"); } }, [user, setLocation]); if (isLoading) { return (

Loading dashboard...

); } if (!user) { return null; } const getWelcomeMessage = () => { const hour = new Date().getHours(); const name = user.firstName || user.username; if (hour < 12) return `Good morning, ${name}!`; if (hour < 18) return `Good afternoon, ${name}!`; return `Good evening, ${name}!`; }; return (
{/* Welcome Header */}

{getWelcomeMessage()}

Here's what's happening with your tasks and finances today.

{user.role === "admin" ? "Admin" : user.role === "pro" ? "Pro" : "Standard"} User Voice Active
{/* Daily AI Joke */} {/* Quick Actions */} Quick Actions Voice Ready
{/* Voice Task Creation */}

Voice Task

Say "Create task" to get started

Try: "Create task to review budget reports"
{/* Voice Expense Entry */}

Voice Expense

Say "Add expense" for quick entry

Try: "Add $50 expense for groceries"
{/* Voice Assistant */}

AI Assistant

Ask questions about your data

Try: "What's my financial summary?"
{/* Main Dashboard Grid */}
{/* Tasks Section */}
{/* Voice Recorder */}
{/* Financial Section */}
{/* Voice Recorder for Desktop */}
Voice Commands Local Processing
{/* System Status (for Pro/Admin users) */} {(user.role === "pro" || user.role === "admin") && ( System Status

STT Model

Online

TTS Model

Online

AI Model

Ready

Database

Connected

)}
{/* Global Voice Indicator */}
); }