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 (
);
}
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 (
{/* Sidebar */}
{/* Main Content */}
{/* 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
)}
{/* Global Voice Indicator */}
);
}