refactor: rule of coverage are in one place
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
"use client";
|
||||
|
||||
import { TrendingUp, MessageSquare, Lightbulb } from "lucide-react";
|
||||
import {
|
||||
COVERAGE_OBJECTIVES,
|
||||
isCoverageBelowObjective,
|
||||
} from "@/lib/evaluation-utils";
|
||||
|
||||
interface SkillAnalysis {
|
||||
skillName: string;
|
||||
@@ -64,9 +68,7 @@ export function TeamInsightsTab({
|
||||
<div className="space-y-1">
|
||||
{/* Incontournables */}
|
||||
{skillAnalysis
|
||||
.filter(
|
||||
(s) => s.importance === "incontournable" && s.coverage < 75
|
||||
)
|
||||
.filter((s) => isCoverageBelowObjective(s.coverage, s.importance))
|
||||
.map((skill, idx) => (
|
||||
<div
|
||||
key={idx}
|
||||
@@ -83,7 +85,7 @@ export function TeamInsightsTab({
|
||||
</div>
|
||||
<div className="flex items-center gap-2">
|
||||
<div className="text-[10px] text-red-300 opacity-0 group-hover:opacity-100 transition-opacity">
|
||||
Objectif: 75%
|
||||
Objectif: {COVERAGE_OBJECTIVES[skill.importance]}%
|
||||
</div>
|
||||
<div className="text-xs text-red-400 font-medium">
|
||||
{skill.coverage.toFixed(0)}%
|
||||
@@ -95,7 +97,7 @@ export function TeamInsightsTab({
|
||||
|
||||
{/* Majeures */}
|
||||
{skillAnalysis
|
||||
.filter((s) => s.importance === "majeure" && s.coverage < 60)
|
||||
.filter((s) => isCoverageBelowObjective(s.coverage, s.importance))
|
||||
.map((skill, idx) => (
|
||||
<div
|
||||
key={idx}
|
||||
@@ -112,7 +114,7 @@ export function TeamInsightsTab({
|
||||
</div>
|
||||
<div className="flex items-center gap-2">
|
||||
<div className="text-[10px] text-blue-300 opacity-0 group-hover:opacity-100 transition-opacity">
|
||||
Objectif: 60%
|
||||
Objectif: {COVERAGE_OBJECTIVES[skill.importance]}%
|
||||
</div>
|
||||
<div className="text-xs text-blue-400 font-medium">
|
||||
{skill.coverage.toFixed(0)}%
|
||||
@@ -217,7 +219,7 @@ export function TeamInsightsTab({
|
||||
{teamInsights.skillGaps.incontournable > 1 ? "s" : ""}{" "}
|
||||
incontournable
|
||||
{teamInsights.skillGaps.incontournable > 1 ? "s" : ""} sous
|
||||
l'objectif de 75%.
|
||||
l'objectif de {COVERAGE_OBJECTIVES.incontournable}%.
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
@@ -239,7 +241,7 @@ export function TeamInsightsTab({
|
||||
{teamInsights.skillGaps.majeure > 1 ? "s" : ""} majeure
|
||||
{teamInsights.skillGaps.majeure > 1 ? "s" : ""} n'atteigne
|
||||
{teamInsights.skillGaps.majeure > 1 ? "nt" : ""} pas
|
||||
l'objectif de 60%.
|
||||
l'objectif de {COVERAGE_OBJECTIVES.majeure}%.
|
||||
</>
|
||||
) : (
|
||||
<>
|
||||
|
||||
Reference in New Issue
Block a user