|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import React, { useState } from 'react'; |
|
|
import { useTranslation } from 'react-i18next'; |
|
|
import { Button, Modal } from '@douyinfe/semi-ui'; |
|
|
import { useSecureVerification } from '../../../hooks/common/useSecureVerification'; |
|
|
import { createApiCalls } from '../../../services/secureVerification'; |
|
|
import SecureVerificationModal from '../modals/SecureVerificationModal'; |
|
|
import ChannelKeyDisplay from '../ui/ChannelKeyDisplay'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const ChannelKeyViewExample = ({ channelId }) => { |
|
|
const { t } = useTranslation(); |
|
|
const [keyData, setKeyData] = useState(''); |
|
|
const [showKeyModal, setShowKeyModal] = useState(false); |
|
|
|
|
|
|
|
|
const { |
|
|
isModalVisible, |
|
|
verificationMethods, |
|
|
verificationState, |
|
|
startVerification, |
|
|
executeVerification, |
|
|
cancelVerification, |
|
|
setVerificationCode, |
|
|
switchVerificationMethod, |
|
|
} = useSecureVerification({ |
|
|
onSuccess: (result) => { |
|
|
|
|
|
if (result.success && result.data?.key) { |
|
|
setKeyData(result.data.key); |
|
|
setShowKeyModal(true); |
|
|
} |
|
|
}, |
|
|
successMessage: t('密钥获取成功'), |
|
|
}); |
|
|
|
|
|
|
|
|
const handleViewKey = async () => { |
|
|
const apiCall = createApiCalls.viewChannelKey(channelId); |
|
|
|
|
|
await startVerification(apiCall, { |
|
|
title: t('查看渠道密钥'), |
|
|
description: t('为了保护账户安全,请验证您的身份。'), |
|
|
preferredMethod: 'passkey', |
|
|
}); |
|
|
}; |
|
|
|
|
|
return ( |
|
|
<> |
|
|
{/* 查看密钥按钮 */} |
|
|
<Button type='primary' theme='outline' onClick={handleViewKey}> |
|
|
{t('查看密钥')} |
|
|
</Button> |
|
|
|
|
|
{/* 安全验证模态框 */} |
|
|
<SecureVerificationModal |
|
|
visible={isModalVisible} |
|
|
verificationMethods={verificationMethods} |
|
|
verificationState={verificationState} |
|
|
onVerify={executeVerification} |
|
|
onCancel={cancelVerification} |
|
|
onCodeChange={setVerificationCode} |
|
|
onMethodSwitch={switchVerificationMethod} |
|
|
title={verificationState.title} |
|
|
description={verificationState.description} |
|
|
/> |
|
|
|
|
|
{/* 密钥显示模态框 */} |
|
|
<Modal |
|
|
title={t('渠道密钥信息')} |
|
|
visible={showKeyModal} |
|
|
onCancel={() => setShowKeyModal(false)} |
|
|
footer={ |
|
|
<Button type='primary' onClick={() => setShowKeyModal(false)}> |
|
|
{t('完成')} |
|
|
</Button> |
|
|
} |
|
|
width={700} |
|
|
style={{ maxWidth: '90vw' }} |
|
|
> |
|
|
<ChannelKeyDisplay |
|
|
keyData={keyData} |
|
|
showSuccessIcon={true} |
|
|
successText={t('密钥获取成功')} |
|
|
showWarning={true} |
|
|
/> |
|
|
</Modal> |
|
|
</> |
|
|
); |
|
|
}; |
|
|
|
|
|
export default ChannelKeyViewExample; |
|
|
|