refactor: rule of coverage are in one place
This commit is contained in:
@@ -3,11 +3,16 @@
|
||||
import { BarChart3, Target, Star } from "lucide-react";
|
||||
import { TeamStats } from "@/lib/admin-types";
|
||||
import { TechIcon } from "@/components/icons/tech-icon";
|
||||
import {
|
||||
COVERAGE_OBJECTIVES,
|
||||
isCoverageBelowObjective,
|
||||
} from "@/lib/evaluation-utils";
|
||||
|
||||
interface SkillAnalysis {
|
||||
skillName: string;
|
||||
category: string;
|
||||
importance: "incontournable" | "majeure" | "standard";
|
||||
icon?: string;
|
||||
experts: Array<{
|
||||
name: string;
|
||||
level: number;
|
||||
@@ -125,15 +130,14 @@ export function TeamOverviewTab({
|
||||
<div className="flex items-center gap-2">
|
||||
<div
|
||||
className={`text-xs ${
|
||||
skill.importance === "incontournable"
|
||||
? skill.coverage < 75
|
||||
? "text-red-400"
|
||||
: "text-green-400"
|
||||
: skill.importance === "majeure"
|
||||
? skill.coverage < 60
|
||||
? "text-red-400"
|
||||
: "text-green-400"
|
||||
: "text-slate-400"
|
||||
skill.importance === "standard"
|
||||
? "text-slate-400"
|
||||
: isCoverageBelowObjective(
|
||||
skill.coverage,
|
||||
skill.importance
|
||||
)
|
||||
? "text-red-400"
|
||||
: "text-green-400"
|
||||
}`}
|
||||
>
|
||||
{skill.coverage.toFixed(0)}%
|
||||
@@ -231,7 +235,10 @@ export function TeamOverviewTab({
|
||||
<div className="flex items-center gap-3">
|
||||
<span
|
||||
className={`text-sm font-medium ${
|
||||
skill.coverage < 75
|
||||
isCoverageBelowObjective(
|
||||
skill.coverage,
|
||||
skill.importance
|
||||
)
|
||||
? "text-red-400"
|
||||
: "text-green-400"
|
||||
}`}
|
||||
@@ -241,7 +248,12 @@ export function TeamOverviewTab({
|
||||
<div className="w-16 bg-white/10 rounded-full h-1.5">
|
||||
<div
|
||||
className={`h-1.5 rounded-full ${
|
||||
skill.coverage < 75 ? "bg-red-500" : "bg-green-500"
|
||||
isCoverageBelowObjective(
|
||||
skill.coverage,
|
||||
skill.importance
|
||||
)
|
||||
? "bg-red-500"
|
||||
: "bg-green-500"
|
||||
}`}
|
||||
style={{ width: `${skill.coverage}%` }}
|
||||
/>
|
||||
@@ -292,7 +304,10 @@ export function TeamOverviewTab({
|
||||
<div className="flex items-center gap-3">
|
||||
<span
|
||||
className={`text-sm font-medium ${
|
||||
skill.coverage < 60
|
||||
isCoverageBelowObjective(
|
||||
skill.coverage,
|
||||
skill.importance
|
||||
)
|
||||
? "text-red-400"
|
||||
: "text-green-400"
|
||||
}`}
|
||||
@@ -302,7 +317,12 @@ export function TeamOverviewTab({
|
||||
<div className="w-16 bg-white/10 rounded-full h-1.5">
|
||||
<div
|
||||
className={`h-1.5 rounded-full ${
|
||||
skill.coverage < 60 ? "bg-red-500" : "bg-green-500"
|
||||
isCoverageBelowObjective(
|
||||
skill.coverage,
|
||||
skill.importance
|
||||
)
|
||||
? "bg-red-500"
|
||||
: "bg-green-500"
|
||||
}`}
|
||||
style={{ width: `${skill.coverage}%` }}
|
||||
/>
|
||||
@@ -404,7 +424,10 @@ export function TeamOverviewTab({
|
||||
<div className="flex items-center gap-3">
|
||||
<span
|
||||
className={`text-sm font-bold ${
|
||||
teamInsights.criticalSkillsCoverage.incontournable < 75
|
||||
isCoverageBelowObjective(
|
||||
teamInsights.criticalSkillsCoverage.incontournable,
|
||||
"incontournable"
|
||||
)
|
||||
? "text-red-400"
|
||||
: "text-green-400"
|
||||
}`}
|
||||
@@ -417,7 +440,10 @@ export function TeamOverviewTab({
|
||||
<div className="w-16 bg-white/10 rounded-full h-2">
|
||||
<div
|
||||
className={`h-2 rounded-full ${
|
||||
teamInsights.criticalSkillsCoverage.incontournable < 75
|
||||
isCoverageBelowObjective(
|
||||
teamInsights.criticalSkillsCoverage.incontournable,
|
||||
"incontournable"
|
||||
)
|
||||
? "bg-red-500"
|
||||
: "bg-green-500"
|
||||
}`}
|
||||
@@ -437,7 +463,10 @@ export function TeamOverviewTab({
|
||||
<div className="flex items-center gap-3">
|
||||
<span
|
||||
className={`text-sm font-bold ${
|
||||
teamInsights.criticalSkillsCoverage.majeure < 60
|
||||
isCoverageBelowObjective(
|
||||
teamInsights.criticalSkillsCoverage.majeure,
|
||||
"majeure"
|
||||
)
|
||||
? "text-red-400"
|
||||
: "text-green-400"
|
||||
}`}
|
||||
@@ -447,7 +476,10 @@ export function TeamOverviewTab({
|
||||
<div className="w-16 bg-white/10 rounded-full h-2">
|
||||
<div
|
||||
className={`h-2 rounded-full ${
|
||||
teamInsights.criticalSkillsCoverage.majeure < 60
|
||||
isCoverageBelowObjective(
|
||||
teamInsights.criticalSkillsCoverage.majeure,
|
||||
"majeure"
|
||||
)
|
||||
? "bg-red-500"
|
||||
: "bg-green-500"
|
||||
}`}
|
||||
|
||||
Reference in New Issue
Block a user