| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| 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; |
|
|