import { useState } from "react"; import Layout from "@/components/Layout"; import SEO from "@/components/SEO"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Progress } from "@/components/ui/progress"; import { BarChart, Target, TrendingUp, Zap, Users, CheckCircle, } from "lucide-react"; interface OKR { id: string; title: string; description: string; owner: string; progress: number; status: "On Track" | "At Risk" | "Completed"; quarter: string; team: string; } const okrs: OKR[] = [ { id: "1", title: "Improve Platform Performance by 40%", description: "Reduce page load time and increase throughput", owner: "Engineering", progress: 75, status: "On Track", quarter: "Q1 2025", team: "DevOps", }, { id: "2", title: "Expand Creator Network to 5K Members", description: "Grow creator base through partnerships and incentives", owner: "Community", progress: 62, status: "On Track", quarter: "Q1 2025", team: "Growth", }, { id: "3", title: "Launch New Learning Curriculum", description: "Complete redesign of Foundation learning paths", owner: "Foundation", progress: 45, status: "At Risk", quarter: "Q1 2025", team: "Education", }, { id: "4", title: "Achieve 99.99% Uptime", description: "Maintain service reliability and reduce downtime", owner: "Infrastructure", progress: 88, status: "On Track", quarter: "Q1 2025", team: "Ops", }, { id: "5", title: "Launch Roblox Game Studio Partnership", description: "Formalize GameForge partnerships with major studios", owner: "GameForge", progress: 30, status: "On Track", quarter: "Q1 2025", team: "Partnerships", }, ]; const getStatusColor = (status: string) => { switch (status) { case "On Track": return "bg-green-500/20 text-green-300 border-green-500/30"; case "At Risk": return "bg-amber-500/20 text-amber-300 border-amber-500/30"; case "Completed": return "bg-blue-500/20 text-blue-300 border-blue-500/30"; default: return "bg-slate-500/20 text-slate-300 border-slate-500/30"; } }; export default function StaffProjectTracking() { const [selectedTeam, setSelectedTeam] = useState(null); const teams = Array.from(new Set(okrs.map((okr) => okr.team))); const filtered = selectedTeam ? okrs.filter((okr) => okr.team === selectedTeam) : okrs; const avgProgress = Math.round(filtered.reduce((sum, okr) => sum + okr.progress, 0) / filtered.length) || 0; return (
{/* Background effects */}
{/* Header */}

Project Tracking

OKRs, initiatives, and company-wide roadmap

{/* Summary */}

Active OKRs

{filtered.length}

Avg Progress

{avgProgress}%

On Track

{filtered.filter((o) => o.status === "On Track").length}

{/* Team Filter */}

Filter by Team:

{teams.map((team) => ( ))}
{/* OKRs */}
{filtered.map((okr) => (
{okr.title} {okr.description}
{okr.status}
Progress {okr.progress}%

Owner

{okr.owner}

Quarter

{okr.quarter}

Team

{okr.team}

))}
); }