"use client";

import * as React from "react";

import { Progress } from "../ui/progress";

interface progress{
  compleated:number,
  totals:number,
  compleatedPorcentage:number
}

export function ProjectProgressBar({ project }:{project:any}) {
  const floorAreasStatus = React.useMemo(() => {
    const allAreas = project?.floor?.map((floor:any) => {
      return floor?.areas;
    })
    .flat()

    const areasCompleated = allAreas?.filter(
      (area:any) => area.status === "completada"
    );
    const compleatedPorcentage =
      (areasCompleated?.length / allAreas?.length) * 100;
    return {
      compleated: areasCompleated?.length,
      totals: allAreas?.length,
      compleatedPorcentage
    };
  }, [project]);


  const [progress, setProgress] = React.useState<progress>({compleated:0,totals:0,compleatedPorcentage:0})
 
  React.useEffect(() => {
    const timer = setTimeout(() => setProgress(floorAreasStatus), 500)
    return () => clearTimeout(timer)
  }, [floorAreasStatus])
 
  return <div className="flex gap-1 items-center text-sm">
    <div>
      <span>{progress.compleated}</span>
      <span>/</span>
      <span>{progress.totals}</span>
    </div>
    <Progress value={progress.compleatedPorcentage}  className="w-[75%]" />
  </div>
}
