fix(web): prioritize Runs incident focus chain
This commit is contained in:
@@ -4539,14 +4539,17 @@ export default function RunsPage() {
|
|||||||
).length,
|
).length,
|
||||||
};
|
};
|
||||||
}, [runs]);
|
}, [runs]);
|
||||||
|
const normalizedIncidentFocus = useMemo(() => {
|
||||||
|
const normalized = incidentFilter.trim().toUpperCase();
|
||||||
|
return INCIDENT_ID_FILTER_RE.test(normalized) ? normalized : null;
|
||||||
|
}, [incidentFilter]);
|
||||||
const runIncidentIds = useMemo(() => {
|
const runIncidentIds = useMemo(() => {
|
||||||
const normalizedIncidentFilter = incidentFilter.trim().toUpperCase();
|
|
||||||
const ids = runs.flatMap((run) => linkedIncidentIds(run.remediation_summary));
|
const ids = runs.flatMap((run) => linkedIncidentIds(run.remediation_summary));
|
||||||
if (INCIDENT_ID_FILTER_RE.test(normalizedIncidentFilter)) {
|
if (normalizedIncidentFocus) {
|
||||||
ids.unshift(normalizedIncidentFilter);
|
ids.unshift(normalizedIncidentFocus);
|
||||||
}
|
}
|
||||||
return Array.from(new Set(ids));
|
return Array.from(new Set(ids));
|
||||||
}, [runs, incidentFilter]);
|
}, [runs, normalizedIncidentFocus]);
|
||||||
const {
|
const {
|
||||||
statusChains: runStatusChains,
|
statusChains: runStatusChains,
|
||||||
isLoading: runStatusChainsLoading,
|
isLoading: runStatusChainsLoading,
|
||||||
@@ -4556,13 +4559,25 @@ export default function RunsPage() {
|
|||||||
refreshKey: lastRefresh?.toISOString() ?? null,
|
refreshKey: lastRefresh?.toISOString() ?? null,
|
||||||
limit: PER_PAGE,
|
limit: PER_PAGE,
|
||||||
});
|
});
|
||||||
const normalizedIncidentFocus = useMemo(() => {
|
const {
|
||||||
const normalized = incidentFilter.trim().toUpperCase();
|
statusChains: incidentFocusStatusChains,
|
||||||
return INCIDENT_ID_FILTER_RE.test(normalized) ? normalized : null;
|
isLoading: incidentFocusStatusChainsLoading,
|
||||||
}, [incidentFilter]);
|
} = useIncidentStatusChains({
|
||||||
|
incidentIds: normalizedIncidentFocus ? [normalizedIncidentFocus] : [],
|
||||||
|
projectId: projectFilter || "awoooi",
|
||||||
|
refreshKey: lastRefresh?.toISOString() ?? null,
|
||||||
|
limit: 1,
|
||||||
|
concurrency: 1,
|
||||||
|
timeoutMs: 8000,
|
||||||
|
});
|
||||||
const incidentFocusChain = normalizedIncidentFocus
|
const incidentFocusChain = normalizedIncidentFocus
|
||||||
? runStatusChains[normalizedIncidentFocus]
|
? incidentFocusStatusChains[normalizedIncidentFocus] ?? runStatusChains[normalizedIncidentFocus]
|
||||||
: null;
|
: null;
|
||||||
|
const incidentFocusLoading = Boolean(
|
||||||
|
normalizedIncidentFocus
|
||||||
|
&& !incidentFocusChain
|
||||||
|
&& (incidentFocusStatusChainsLoading || runStatusChainsLoading)
|
||||||
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="space-y-6">
|
<div className="space-y-6">
|
||||||
@@ -4714,7 +4729,7 @@ export default function RunsPage() {
|
|||||||
<span className="border border-[#d8d3c7] bg-white px-2 py-1 text-xs font-semibold text-[#5f5b52]">
|
<span className="border border-[#d8d3c7] bg-white px-2 py-1 text-xs font-semibold text-[#5f5b52]">
|
||||||
{incidentFocusChain
|
{incidentFocusChain
|
||||||
? tIncidentFocus("states.ready")
|
? tIncidentFocus("states.ready")
|
||||||
: runStatusChainsLoading
|
: incidentFocusLoading
|
||||||
? tIncidentFocus("states.loading")
|
? tIncidentFocus("states.loading")
|
||||||
: tIncidentFocus("states.missing")}
|
: tIncidentFocus("states.missing")}
|
||||||
</span>
|
</span>
|
||||||
@@ -4733,7 +4748,7 @@ export default function RunsPage() {
|
|||||||
</div>
|
</div>
|
||||||
) : (
|
) : (
|
||||||
<div className="px-4 py-5 text-sm text-[#5f5b52]">
|
<div className="px-4 py-5 text-sm text-[#5f5b52]">
|
||||||
{runStatusChainsLoading
|
{incidentFocusLoading
|
||||||
? tIncidentFocus("loading")
|
? tIncidentFocus("loading")
|
||||||
: tIncidentFocus("missing", { incidentId: normalizedIncidentFocus })}
|
: tIncidentFocus("missing", { incidentId: normalizedIncidentFocus })}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user