- McpEnvVar: infisical_value → coolify_value + has_duplicates - McpEnvResponse: drop Infisical metadata fields - EnvVarRow: 'Coolify:' label, 'ערוך ב-Coolify' external link - DriftBadge: infisicalAvailable → coolifyAvailable - EnvironmentTab: Coolify app badge, duplicates count
40 lines
1006 B
TypeScript
40 lines
1006 B
TypeScript
"use client";
|
|
|
|
import { AlertTriangle, CheckCircle2, HelpCircle } from "lucide-react";
|
|
import { Badge } from "@/components/ui/badge";
|
|
|
|
type Props = {
|
|
drift: boolean;
|
|
// When false, Coolify was unreachable: drift state is unknown, not "synced".
|
|
coolifyAvailable?: boolean;
|
|
};
|
|
|
|
export function DriftBadge({ drift, coolifyAvailable = true }: Props) {
|
|
if (!coolifyAvailable) {
|
|
return (
|
|
<Badge
|
|
variant="outline"
|
|
className="text-ink-muted border-rule gap-1"
|
|
title="Coolify לא זמין — מצב ה-drift לא ידוע"
|
|
>
|
|
<HelpCircle className="w-3 h-3" />
|
|
Unknown
|
|
</Badge>
|
|
);
|
|
}
|
|
if (drift) {
|
|
return (
|
|
<Badge variant="outline" className="text-warn border-warn/40 gap-1">
|
|
<AlertTriangle className="w-3 h-3" />
|
|
Drift
|
|
</Badge>
|
|
);
|
|
}
|
|
return (
|
|
<Badge variant="outline" className="text-success border-success/40 gap-1">
|
|
<CheckCircle2 className="w-3 h-3" />
|
|
Synced
|
|
</Badge>
|
|
);
|
|
}
|