refactor: rule of coverage are in one place
This commit is contained in:
@@ -14,6 +14,10 @@ import { Badge } from "@/components/ui/badge";
|
||||
import { Users, ExternalLink, Download, Eye } from "lucide-react";
|
||||
|
||||
import { TeamMember } from "@/lib/admin-types";
|
||||
import {
|
||||
COVERAGE_OBJECTIVES,
|
||||
isCoverageBelowObjective,
|
||||
} from "@/lib/evaluation-utils";
|
||||
|
||||
interface TeamDetailModalProps {
|
||||
isOpen: boolean;
|
||||
@@ -157,7 +161,10 @@ export function TeamDetailModal({
|
||||
</span>
|
||||
<span
|
||||
className={`text-sm font-bold ${
|
||||
team.criticalSkillsCoverage.incontournable < 75
|
||||
isCoverageBelowObjective(
|
||||
team.criticalSkillsCoverage.incontournable,
|
||||
"incontournable"
|
||||
)
|
||||
? "text-red-400"
|
||||
: "text-green-400"
|
||||
}`}
|
||||
@@ -168,7 +175,10 @@ export function TeamDetailModal({
|
||||
<div className="w-full bg-slate-700/50 rounded-full h-1.5">
|
||||
<div
|
||||
className={`h-1.5 rounded-full transition-all ${
|
||||
team.criticalSkillsCoverage.incontournable < 75
|
||||
isCoverageBelowObjective(
|
||||
team.criticalSkillsCoverage.incontournable,
|
||||
"incontournable"
|
||||
)
|
||||
? "bg-red-500"
|
||||
: "bg-green-500"
|
||||
}`}
|
||||
@@ -182,7 +192,10 @@ export function TeamDetailModal({
|
||||
<span className="text-sm text-slate-300">Majeures</span>
|
||||
<span
|
||||
className={`text-sm font-bold ${
|
||||
team.criticalSkillsCoverage.majeure < 60
|
||||
isCoverageBelowObjective(
|
||||
team.criticalSkillsCoverage.majeure,
|
||||
"majeure"
|
||||
)
|
||||
? "text-red-400"
|
||||
: "text-green-400"
|
||||
}`}
|
||||
@@ -193,7 +206,10 @@ export function TeamDetailModal({
|
||||
<div className="w-full bg-slate-700/50 rounded-full h-1.5">
|
||||
<div
|
||||
className={`h-1.5 rounded-full transition-all ${
|
||||
team.criticalSkillsCoverage.majeure < 60
|
||||
isCoverageBelowObjective(
|
||||
team.criticalSkillsCoverage.majeure,
|
||||
"majeure"
|
||||
)
|
||||
? "bg-red-500"
|
||||
: "bg-green-500"
|
||||
}`}
|
||||
@@ -209,13 +225,11 @@ export function TeamDetailModal({
|
||||
<h3 className="font-medium text-white mb-3">Top 3 Compétences</h3>
|
||||
<div className="space-y-2">
|
||||
{team.topSkills.slice(0, 3).map((skill, idx) => {
|
||||
const target =
|
||||
skill.importance === "incontournable"
|
||||
? 75
|
||||
: skill.importance === "majeure"
|
||||
? 60
|
||||
: 0;
|
||||
const isUnderTarget = target > 0 && skill.coverage < target;
|
||||
const target = COVERAGE_OBJECTIVES[skill.importance];
|
||||
const isUnderTarget = isCoverageBelowObjective(
|
||||
skill.coverage,
|
||||
skill.importance
|
||||
);
|
||||
|
||||
return (
|
||||
<div
|
||||
|
||||
Reference in New Issue
Block a user