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