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