fix(iwooos): render structured cockpit loading state
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 2m56s
CD Pipeline / build-and-deploy (push) Successful in 15m3s
AWOOOI Harbor 110 Local Repair / workflow-shape (push) Successful in 3s
AWOOOI Harbor 110 Local Repair / harbor-110-local-repair (push) Successful in 21s
CD Pipeline / post-deploy-checks (push) Successful in 3m3s
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 2m56s
CD Pipeline / build-and-deploy (push) Successful in 15m3s
AWOOOI Harbor 110 Local Repair / workflow-shape (push) Successful in 3s
AWOOOI Harbor 110 Local Repair / harbor-110-local-repair (push) Successful in 21s
CD Pipeline / post-deploy-checks (push) Successful in 3m3s
This commit is contained in:
@@ -70,6 +70,7 @@ type Copy = {
|
||||
failedCollectors: string;
|
||||
failedCollectorsUnavailable: string;
|
||||
sameRunMissing: string;
|
||||
loading: string;
|
||||
unavailable: string;
|
||||
refresh: string;
|
||||
};
|
||||
@@ -120,6 +121,7 @@ const COPY: Record<"zh" | "en", Copy> = {
|
||||
failedCollectors: "失敗 Collector",
|
||||
failedCollectorsUnavailable: "失敗原因待安全分類",
|
||||
sameRunMissing: "尚無同 run 閉環證據",
|
||||
loading: "正在載入資安控制平面",
|
||||
unavailable: "Live readback 無法取得",
|
||||
refresh: "重新整理資安控制平面",
|
||||
},
|
||||
@@ -168,6 +170,7 @@ const COPY: Record<"zh" | "en", Copy> = {
|
||||
failedCollectors: "Failed collectors",
|
||||
failedCollectorsUnavailable: "Failure detail awaiting safe classification",
|
||||
sameRunMissing: "No same-run closure evidence",
|
||||
loading: "Loading security control plane",
|
||||
unavailable: "Live readback unavailable",
|
||||
refresh: "Refresh security control plane",
|
||||
},
|
||||
@@ -1016,7 +1019,38 @@ export function SecurityAssetControlPlaneCockpit({
|
||||
</div>
|
||||
</div>
|
||||
) : (
|
||||
<div className="h-64 animate-pulse bg-[#ebe8df]" />
|
||||
<div
|
||||
className="space-y-px bg-[#d8d3c7] p-px"
|
||||
role="status"
|
||||
aria-label={copy.loading}
|
||||
>
|
||||
<span className="sr-only">{copy.loading}</span>
|
||||
<div className="grid grid-cols-3 gap-px lg:grid-cols-6">
|
||||
{Array.from({ length: 6 }, (_, index) => (
|
||||
<div
|
||||
key={index}
|
||||
className="h-16 animate-pulse bg-white px-3 py-3"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div className="h-2 w-3/5 bg-[#e5e1d7]" />
|
||||
<div className="mt-3 h-4 w-2/5 bg-[#d8d3c7]" />
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
<div className="grid gap-px sm:grid-cols-2">
|
||||
{Array.from({ length: 2 }, (_, index) => (
|
||||
<div
|
||||
key={index}
|
||||
className="h-24 animate-pulse bg-[#f8f7f3] p-3"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div className="h-2 w-1/3 bg-[#d8d3c7]" />
|
||||
<div className="mt-3 h-2 w-full bg-[#e5e1d7]" />
|
||||
<div className="mt-2 h-2 w-4/5 bg-[#e5e1d7]" />
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</section>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user