fb4d7641ab
CRA tab now shows the priority layer: a weights control (5 business objectives, high/medium/low) that re-computes the assessment live; a Prio column with P0..P3 tier badges (P0 = non-negotiable floor, reason on hover); the table in backend priority order; and a Quick-Wins block (high impact, low effort). Demo flags the safety-cross-linked findings as safety_impact so the P0 floor shows. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
24 lines
718 B
TypeScript
24 lines
718 B
TypeScript
'use client'
|
|
|
|
import { useCRA } from './_hooks/useCRA'
|
|
import { CRACyberView } from './_components/CRACyberView'
|
|
import { WeightsControl } from './_components/WeightsControl'
|
|
|
|
export default function CRAPage() {
|
|
const { data, live, weights, setWeights } = useCRA()
|
|
if (!data) {
|
|
return <p className="text-sm text-gray-500">CRA-Risikobeurteilung wird geladen …</p>
|
|
}
|
|
return (
|
|
<div className="space-y-6">
|
|
{!live && (
|
|
<p className="text-[11px] text-amber-600 dark:text-amber-400">
|
|
Backend nicht erreichbar — statisches Szenario angezeigt.
|
|
</p>
|
|
)}
|
|
<WeightsControl weights={weights} onChange={setWeights} />
|
|
<CRACyberView data={data} />
|
|
</div>
|
|
)
|
|
}
|