packages-fetcher/console-fetcher-risk-prompt/src/rc-container/risk-prompt-error/index.tsx (36 lines of code) (raw):

import React, { useEffect } from 'react'; import { useDialog } from '@alicloud/console-base-rc-dialog'; import { IDialogData, IRiskPromptResolveData } from '../../types'; import { ESceneKey, EUnexpectedErrorType } from '../../enum'; import { useModelProps } from '../../model'; import AltWrap from '../../rc/alt-wrap'; // RiskPrompt 运行时发生错误提示 UI(例如子账号未绑定核身设备却触发了弹窗,或者是解析 riskResponse 时发生错误) export default function RiskPromptError(): JSX.Element { const { data: { errorMessageObject } } = useDialog<IRiskPromptResolveData, IDialogData>(); const errorMessage = errorMessageObject[ESceneKey.RISK_PROMPT_ERROR]; const { setRiskCanceledErrorProps } = useModelProps(); // 通过 setRiskCanceledErrorProps 来设置非预期错误类型和错误信息,错误信息会被埋点上报 useEffect(() => { setRiskCanceledErrorProps({ unexpectedErrorMessage: errorMessage, unexpectedErrorType: EUnexpectedErrorType.RISK_PROMPT_ERROR }); }, [setRiskCanceledErrorProps, errorMessage]); return ( <AltWrap content={errorMessage} /> ); }