mirror of
https://origin.cursor.com/mrdevmx/panels.git
synced 2026-10-09 10:43:18 +00:00
157 lines
3.4 KiB
TypeScript
157 lines
3.4 KiB
TypeScript
export function pipelineSeverity(status: string) {
|
|
switch (status) {
|
|
case "activo":
|
|
return "success";
|
|
case "listo_gafete":
|
|
return "info";
|
|
case "impreso":
|
|
return "warn";
|
|
case "baja":
|
|
return "danger";
|
|
default:
|
|
return "secondary";
|
|
}
|
|
}
|
|
|
|
export function riskLevel(code: string): "alto" | "medio" | "bajo" {
|
|
switch (code) {
|
|
case "rojo":
|
|
case "negro":
|
|
case "naranja":
|
|
case "alto":
|
|
return "alto";
|
|
case "amarillo":
|
|
case "medio":
|
|
return "medio";
|
|
default:
|
|
return "bajo";
|
|
}
|
|
}
|
|
|
|
export function riskLevelLabel(code: string) {
|
|
const labels = { alto: "Alto", medio: "Medio", bajo: "Bajo" };
|
|
return labels[riskLevel(code)];
|
|
}
|
|
|
|
export function riskLevelSeverity(code: string) {
|
|
switch (riskLevel(code)) {
|
|
case "alto":
|
|
return "danger";
|
|
case "medio":
|
|
return "warn";
|
|
default:
|
|
return "success";
|
|
}
|
|
}
|
|
|
|
export function hireSeverity(hire: string) {
|
|
const h = (hire || "").toUpperCase();
|
|
if (h === "FISICA") return "contrast";
|
|
if (h === "ARCOTEC") return "warn";
|
|
if (h === "ARCTEC" || h.startsWith("ARCT")) return "info";
|
|
return "secondary";
|
|
}
|
|
|
|
export function riskSeverity(code: string) {
|
|
switch (code) {
|
|
case "rojo":
|
|
return "danger";
|
|
case "amarillo":
|
|
case "naranja":
|
|
return "warn";
|
|
case "verde":
|
|
return "success";
|
|
case "azul":
|
|
return "info";
|
|
default:
|
|
return "secondary";
|
|
}
|
|
}
|
|
|
|
export function pipelineLabel(status: string) {
|
|
const labels: Record<string, string> = {
|
|
incompleto: "Falta expediente",
|
|
listo_gafete: "Listo gafete",
|
|
impreso: "Gafete impreso",
|
|
activo: "Activo en proyecto",
|
|
baja: "Baja",
|
|
};
|
|
return labels[status] || status;
|
|
}
|
|
|
|
export function gafeteLabel(status: string) {
|
|
switch (status) {
|
|
case "incompleto":
|
|
return "Sin gafete";
|
|
case "listo_gafete":
|
|
return "Por imprimir";
|
|
case "impreso":
|
|
case "activo":
|
|
return "Impreso";
|
|
default:
|
|
return "—";
|
|
}
|
|
}
|
|
|
|
export function gafeteSeverity(status: string) {
|
|
switch (status) {
|
|
case "incompleto":
|
|
return "danger";
|
|
case "listo_gafete":
|
|
return "warn";
|
|
case "impreso":
|
|
case "activo":
|
|
return "success";
|
|
default:
|
|
return "secondary";
|
|
}
|
|
}
|
|
|
|
export function projectStatusSeverity(status: string) {
|
|
switch (status) {
|
|
case "activo":
|
|
return "success";
|
|
case "pausado":
|
|
return "warn";
|
|
case "concluido":
|
|
return "info";
|
|
case "cancelado":
|
|
return "danger";
|
|
default:
|
|
return "secondary";
|
|
}
|
|
}
|
|
|
|
export function projectStatusLabel(status: string) {
|
|
const labels: Record<string, string> = {
|
|
activo: "Activo",
|
|
pausado: "Pausado",
|
|
concluido: "Concluido",
|
|
cancelado: "Cancelado",
|
|
};
|
|
return labels[status] || status;
|
|
}
|
|
|
|
export function initials(first?: string, last?: string) {
|
|
if (last) return `${first?.[0] ?? ""}${last?.[0] ?? ""}`.toUpperCase() || "?";
|
|
const parts = (first || "").trim().split(/\s+/).filter(Boolean);
|
|
if (parts.length >= 2) return `${parts[0][0]}${parts[1][0]}`.toUpperCase();
|
|
return (first || "?").slice(0, 2).toUpperCase();
|
|
}
|
|
|
|
export function useUi() {
|
|
return {
|
|
pipelineSeverity,
|
|
riskSeverity,
|
|
riskLevel,
|
|
riskLevelLabel,
|
|
riskLevelSeverity,
|
|
hireSeverity,
|
|
pipelineLabel,
|
|
gafeteLabel,
|
|
gafeteSeverity,
|
|
projectStatusSeverity,
|
|
projectStatusLabel,
|
|
initials,
|
|
};
|
|
}
|