Add fleet ops dashboard, Calibrate enforcement, and dead-code cleanup.
Ship live alerts, pool status, AI monitor, remote agent commands, build manager, and uninstall flow; wire Calibrate settings (WS ping, pool traffic log, retention limits) at runtime and exclude server/data from git.
This commit is contained in:
46
server/web/src/components/Forge/ForgeFieldHints.tsx
Normal file
46
server/web/src/components/Forge/ForgeFieldHints.tsx
Normal file
@@ -0,0 +1,46 @@
|
||||
import type { ForgeFieldMeta } from '../../help/forgeRules';
|
||||
import { forgeBadgeLabel } from '../../help/forgeRules';
|
||||
|
||||
interface ForgeLockedHintProps {
|
||||
meta?: ForgeFieldMeta;
|
||||
}
|
||||
|
||||
export function ForgeLockedHint({ meta }: ForgeLockedHintProps) {
|
||||
if (!meta?.lockedReason && !meta?.hint) return null;
|
||||
return (
|
||||
<p className="forge-locked-hint" title={meta.lockedReason || meta.hint}>
|
||||
🔒 {meta.lockedReason || meta.hint}
|
||||
</p>
|
||||
);
|
||||
}
|
||||
|
||||
interface ForgeFieldBadgeProps {
|
||||
meta?: ForgeFieldMeta;
|
||||
}
|
||||
|
||||
export function ForgeFieldBadge({ meta }: ForgeFieldBadgeProps) {
|
||||
if (!meta?.badge) return null;
|
||||
return (
|
||||
<span className={`forge-field-badge forge-badge-${meta.badge}`} title={forgeBadgeLabel(meta.badge)}>
|
||||
{meta.badge === 'baked' ? '⛏ baked' : meta.badge === 'server-only' ? '🖥 server' : '↳ if enabled'}
|
||||
</span>
|
||||
);
|
||||
}
|
||||
|
||||
interface ForgeSectionHeaderProps {
|
||||
title: string;
|
||||
description: string;
|
||||
badge: 'baked' | 'server-only';
|
||||
}
|
||||
|
||||
export function ForgeSectionHeader({ title, description, badge }: ForgeSectionHeaderProps) {
|
||||
return (
|
||||
<div className="forge-section-header">
|
||||
<div className="forge-section-title-row">
|
||||
<h3>{title}</h3>
|
||||
<span className={`forge-field-badge forge-badge-${badge}`}>{forgeBadgeLabel(badge)}</span>
|
||||
</div>
|
||||
<p className="form-hint forge-section-desc">{description}</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user