fix(mc-browser): scope fallback + severity/domain filters
- Add scope/risk_score/implementation_effort fallbacks to prevent 'undefined is not an object' crash in ControlDetail - Add severity filter (high/medium/low based on total_controls) - Add domain filter (L1 token prefix match) - Fix sort options (source → canonical_name) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -35,11 +35,22 @@ export default function MasterControlsPage() {
|
||||
)
|
||||
}
|
||||
|
||||
// DETAIL mode
|
||||
// DETAIL mode — add fallback fields that ControlDetail expects
|
||||
if (state.mode === 'detail' && state.selectedControl) {
|
||||
const safeCtrl = {
|
||||
...state.selectedControl,
|
||||
scope: state.selectedControl.scope || { platforms: [], components: [], data_classes: [] },
|
||||
target_audience: state.selectedControl.target_audience || [],
|
||||
requirements: state.selectedControl.requirements || [],
|
||||
test_procedure: state.selectedControl.test_procedure || [],
|
||||
evidence: state.selectedControl.evidence || [],
|
||||
open_anchors: state.selectedControl.open_anchors || [],
|
||||
risk_score: state.selectedControl.risk_score || null,
|
||||
implementation_effort: state.selectedControl.implementation_effort || null,
|
||||
}
|
||||
return (
|
||||
<ControlDetail
|
||||
ctrl={state.selectedControl}
|
||||
ctrl={safeCtrl}
|
||||
onBack={() => { state.setMode('list'); state.setSelectedControl(null) }}
|
||||
onEdit={() => {}}
|
||||
onDelete={async () => {}}
|
||||
|
||||
Reference in New Issue
Block a user