import React, { useState } from 'react';
import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/card';
import { BarChart, Bar, XAxis, YAxis, Tooltip, ResponsiveContainer, LineChart, Line, RadarChart, PolarGrid, PolarAngleAxis, PolarRadiusAxis, Radar } from 'recharts';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';

const Dashboard = () => {
  const [selectedRole, setSelectedRole] = useState('all');

  // Color scheme
  const colors = {
    primary: '#d5204d',    // Pink
    secondary: '#ffa600',  // Orange
    tertiary: '#e6d5c6',   // Light beige
    background: '#eee7e2',  // Lighter beige
    text: '#000000'        // Black
  };

  const metrics = [
    { metric: "Mission Alignment", all: 4.63, staff: 4.67, volunteer: 4.75 },
    { metric: "Responsiveness", all: 4.50, staff: 3.67, volunteer: 5.00 },
    { metric: "Community Impact", all: 4.75, staff: 4.33, volunteer: 5.00 },
    { metric: "Internal Values", all: 3.43, staff: 3.33, volunteer: 3.50 },
    { metric: "Volunteer Engagement", all: 4.38, staff: 4.00, volunteer: 4.50 },
    { metric: "Stakeholder Engagement", all: 3.13, staff: 3.00, volunteer: 3.25 },
    { metric: "External Values", all: 4.63, staff: 4.33, volunteer: 4.75 },
    { metric: "Partner Engagement", all: 4.00, staff: 4.33, volunteer: 3.75 }
  ];

  const respondentTypes = [
    { role: "Staff", count: 3 },
    { role: "Volunteer Case Manager", count: 5 },
    { role: "Other", count: 0 }
  ];

  const strengthsWeaknesses = [
    {
      category: "Strengths",
      items: [
        { area: "Community Impact", score: 4.75 },
        { area: "Mission Alignment", score: 4.63 },
        { area: "External Values", score: 4.63 },
        { area: "Responsiveness", score: 4.50 }
      ]
    },
    {
      category: "Areas for Growth",
      items: [
        { area: "Stakeholder Engagement", score: 3.13 },
        { area: "Internal Values", score: 3.43 },
        { area: "Partner Engagement", score: 4.00 }
      ]
    }
  ];

  return (
    <div className="space-y-4 p-4" style={{ background: colors.background, color: colors.text }}>
      <Card className="w-full" style={{ background: 'white' }}>
        <CardHeader>
          <CardTitle className="text-2xl" style={{ color: colors.primary }}>NYAAF Survey Analysis Dashboard</CardTitle>
        </CardHeader>
        <CardContent>
          <Tabs defaultValue="overview" className="w-full">
            <TabsList className="mb-4" style={{ background: colors.tertiary }}>
              <TabsTrigger 
                value="overview" 
                className="data-[state=active]:bg-white"
                style={{ color: colors.text }}
              >
                Overview
              </TabsTrigger>
              <TabsTrigger 
                value="comparison"
                className="data-[state=active]:bg-white"
                style={{ color: colors.text }}
              >
                Role Comparison
              </TabsTrigger>
              <TabsTrigger 
                value="radar"
                className="data-[state=active]:bg-white"
                style={{ color: colors.text }}
              >
                Radar Analysis
              </TabsTrigger>
            </TabsList>

            <TabsContent value="overview">
              <div className="grid gap-4">
                <div className="h-80">
                  <ResponsiveContainer width="100%" height="100%">
                    <BarChart data={metrics} margin={{ top: 20, right: 30, left: 40, bottom: 60 }}>
                      <XAxis dataKey="metric" angle={-45} textAnchor="end" height={80} stroke={colors.text} />
                      <YAxis domain={[0, 5]} stroke={colors.text} />
                      <Tooltip 
                        contentStyle={{ 
                          background: 'white',
                          border: `1px solid ${colors.tertiary}`
                        }}
                      />
                      <Bar dataKey="all" fill={colors.primary} name="Overall Score" />
                    </BarChart>
                  </ResponsiveContainer>
                </div>
                
                <div className="grid grid-cols-1 md:grid-cols-2 gap-4 mt-4">
                  {strengthsWeaknesses.map((category) => (
                    <Card key={category.category} style={{ background: colors.tertiary }}>
                      <CardHeader>
                        <CardTitle className="text-lg" style={{ color: colors.primary }}>
                          {category.category}
                        </CardTitle>
                      </CardHeader>
                      <CardContent>
                        <ul className="space-y-2">
                          {category.items.map((item) => (
                            <li key={item.area} className="flex justify-between">
                              <span style={{ color: colors.text }}>{item.area}</span>
                              <span className="font-bold" style={{ color: colors.primary }}>
                                {item.score.toFixed(2)}
                              </span>
                            </li>
                          ))}
                        </ul>
                      </CardContent>
                    </Card>
                  ))}
                </div>
              </div>
            </TabsContent>

            <TabsContent value="comparison">
              <div className="h-80">
                <ResponsiveContainer width="100%" height="100%">
                  <BarChart data={metrics} margin={{ top: 20, right: 30, left: 40, bottom: 60 }}>
                    <XAxis dataKey="metric" angle={-45} textAnchor="end" height={80} stroke={colors.text} />
                    <YAxis domain={[0, 5]} stroke={colors.text} />
                    <Tooltip 
                      contentStyle={{ 
                        background: 'white',
                        border: `1px solid ${colors.tertiary}`
                      }}
                    />
                    <Bar dataKey="staff" fill={colors.primary} name="Staff" />
                    <Bar dataKey="volunteer" fill={colors.secondary} name="Volunteers" />
                  </BarChart>
                </ResponsiveContainer>
              </div>
            </TabsContent>

            <TabsContent value="radar">
              <div className="h-80">
                <ResponsiveContainer width="100%" height="100%">
                  <RadarChart data={metrics}>
                    <PolarGrid stroke={colors.tertiary} />
                    <PolarAngleAxis dataKey="metric" stroke={colors.text} />
                    <PolarRadiusAxis domain={[0, 5]} stroke={colors.text} />
                    <Radar 
                      name="Staff" 
                      dataKey="staff" 
                      stroke={colors.primary} 
                      fill={colors.primary} 
                      fillOpacity={0.3} 
                    />
                    <Radar 
                      name="Volunteers" 
                      dataKey="volunteer" 
                      stroke={colors.secondary} 
                      fill={colors.secondary} 
                      fillOpacity={0.3} 
                    />
                    <Tooltip 
                      contentStyle={{ 
                        background: 'white',
                        border: `1px solid ${colors.tertiary}`
                      }}
                    />
                  </RadarChart>
                </ResponsiveContainer>
              </div>
            </TabsContent>
          </Tabs>
        </CardContent>
      </Card>

      <Card style={{ background: 'white' }}>
        <CardHeader>
          <CardTitle style={{ color: colors.primary }}>Survey Respondent Breakdown</CardTitle>
        </CardHeader>
        <CardContent>
          <div className="h-40">
            <ResponsiveContainer width="100%" height="100%">
              <BarChart data={respondentTypes} margin={{ top: 20, right: 30, left: 40, bottom: 20 }}>
                <XAxis dataKey="role" stroke={colors.text} />
                <YAxis stroke={colors.text} />
                <Tooltip 
                  contentStyle={{ 
                    background: 'white',
                    border: `1px solid ${colors.tertiary}`
                  }}
                />
                <Bar dataKey="count" fill={colors.primary} />
              </BarChart>
            </ResponsiveContainer>
          </div>
        </CardContent>
      </Card>
    </div>
  );
};

export default Dashboard;