import { ChromeOutlined, SoundOutlined } from '@ant-design/icons'; import { useBreakpoint } from '@ant-design/pro-components'; import { getLocale, Icon } from '@umijs/max'; import { Alert, Divider, Flex, Image, Modal, Popover, Space, Tabs, Typography, } from 'antd'; import { useCallback, useEffect, useState } from 'react'; import useRichI18n from '@/hooks/useRichI18n'; import { checkAudioPermission } from '@/utils'; import bus from '@/utils/eventBus'; import { $t } from '@/utils/i18n'; const { Paragraph } = Typography; const VoiceCheck: React.FC = () => { const { richFormat } = useRichI18n(); const screens = useBreakpoint(); const [visible, setVisible] = useState(false); const [hasAudioPermission, setHasAudioPermission] = useState(true); const checkAudio = useCallback((showPopup?: boolean) => { checkAudioPermission().then((hasPermission) => { setHasAudioPermission(hasPermission); }); showPopup && setVisible(true); }, []); const openPopup = useCallback(() => setVisible(true), []); useEffect(() => { checkAudio(); bus.on('check-voice-permission', checkAudio); bus.on('open-voice-popup', openPopup); // document.addEventListener('click', () => checkAudio()); return () => { bus.off('check-voice-permission', checkAudio); bus.off('open-voice-popup', openPopup); // document.removeEventListener('click', () => checkAudio()); }; }, []); const browserGuides = [ { key: 'chrome', label: ( Chrome ), children: (
1. {richFormat('pages.voiceCheck.chrome.tips')} 2. {richFormat('pages.voiceCheck.chrome.tips2')} 3. {richFormat('pages.voiceCheck.chrome.tips3')} 4. {richFormat('pages.voiceCheck.chrome.tips4')} 5. {richFormat('pages.voiceCheck.chrome.tips5')}
), }, ]; const tipsNode = ( <> ); return ( <> setVisible(true)}> {!hasAudioPermission && (['xs', 'sm'].includes(screens || '') ? ( ) : ( <> {tipsNode} ))} {/* {hasAudioPermission ? ( ) : ( )} */} {$t('pages.voiceCheck.title')} } open={visible} onCancel={() => setVisible(false)} width={800} footer={null} centered styles={{ body: { maxHeight: '85vh', overflowY: 'auto', overflowX: 'hidden', marginRight: -20, paddingRight: 8, }, }} > {/*
{$t('pages.voiceCheck.tips')}:
{$t('pages.voiceCheck.tips2')}
*/} {$t('pages.voiceCheck.tips3')}
); }; export default VoiceCheck;