From c4c4e5eda6bdf41b9c54999359c0c9b7b14481f2 Mon Sep 17 00:00:00 2001 From: Seefs Date: Sun, 22 Feb 2026 20:14:56 +0800 Subject: [PATCH] feat: add localized high-risk status remap guard with optimized modal UX --- .../modals/RiskAcknowledgementModal.jsx | 98 +++++++++++++++---- .../modals/StatusCodeRiskGuardModal.jsx | 16 +-- 2 files changed, 89 insertions(+), 25 deletions(-) diff --git a/web/src/components/common/modals/RiskAcknowledgementModal.jsx b/web/src/components/common/modals/RiskAcknowledgementModal.jsx index 1ed12166e..63806ad73 100644 --- a/web/src/components/common/modals/RiskAcknowledgementModal.jsx +++ b/web/src/components/common/modals/RiskAcknowledgementModal.jsx @@ -17,7 +17,7 @@ along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ -import React, { useEffect, useMemo, useState } from 'react'; +import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { Modal, Button, @@ -32,7 +32,30 @@ import MarkdownRenderer from '../markdown/MarkdownRenderer'; const { Text } = Typography; -const RiskAcknowledgementModal = ({ +const RiskMarkdownBlock = React.memo(function RiskMarkdownBlock({ + markdownContent, +}) { + if (!markdownContent) { + return null; + } + + return ( +
+ +
+ ); +}); + +const RiskAcknowledgementModal = React.memo(function RiskAcknowledgementModal({ visible, title, markdownContent = '', @@ -47,7 +70,7 @@ const RiskAcknowledgementModal = ({ confirmText = '', onCancel, onConfirm, -}) => { +}) { const isMobile = useIsMobile(); const [checkedItems, setCheckedItems] = useState([]); const [typedText, setTypedText] = useState(''); @@ -68,6 +91,17 @@ const RiskAcknowledgementModal = ({ return typedText.trim() === requiredText.trim(); }, [typedText, requiredText]); + const detailText = useMemo(() => detailItems.join(', '), [detailItems]); + const canConfirm = allChecked && typedMatched; + + const handleChecklistChange = useCallback((index, checked) => { + setCheckedItems((previous) => { + const next = [...previous]; + next[index] = checked; + return next; + }); + }, []); + return ( @@ -93,7 +127,7 @@ const RiskAcknowledgementModal = ({