import { useNavigation } from '@react-navigation/native'; import React, { useCallback, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { TouchableHighlight, View, ViewStyle } from 'react-native'; import { Text } from 'react-native-paper'; import { useSelector } from 'react-redux'; import { IReduxState } from '../../../app/types'; import Icon from '../../../base/icons/components/Icon'; import { IconArrowRight, IconSubtitles } from '../../../base/icons/svg'; import JitsiScreen from '../../../base/modal/components/JitsiScreen'; import { StyleType } from '../../../base/styles/functions.any'; import BaseTheme from '../../../base/ui/components/BaseTheme.native'; import Button from '../../../base/ui/components/native/Button'; import { BUTTON_TYPES } from '../../../base/ui/constants.native'; import { TabBarLabelCounter } from '../../../mobile/navigation/components/TabBarLabelCounter'; import { navigate } from '../../../mobile/navigation/components/conference/ConferenceNavigationContainerRef'; import { screen } from '../../../mobile/navigation/routes'; import { ChatTabs } from '../../constants'; import AbstractClosedCaptions, { AbstractProps } from '../AbstractClosedCaptions'; import { SubtitlesMessagesContainer } from './SubtitlesMessagesContainer'; import { closedCaptionsStyles } from './styles'; /** * Component that displays the closed captions interface. * * @returns {JSX.Element} - The ClosedCaptions component. */ const ClosedCaptions = ({ canStartSubtitles, filteredSubtitles, groupedSubtitles, isButtonPressed, isTranscribing, startClosedCaptions }: AbstractProps): JSX.Element => { const navigation = useNavigation(); const { t } = useTranslation(); const isCCTabFocused = useSelector((state: IReduxState) => state['features/chat'].focusedTab === ChatTabs.CLOSED_CAPTIONS); const selectedLanguage = useSelector((state: IReduxState) => state['features/subtitles']._language); const navigateToLanguageSelect = useCallback(() => { navigate(screen.conference.subtitles); }, [ navigation, screen ]); useEffect(() => { navigation?.setOptions({ tabBarLabel: () => ( ) }); }, [ isCCTabFocused, navigation, t ]); const getContentContainerStyle = () => { if (isTranscribing) { return closedCaptionsStyles.transcribingContainer as StyleType; } return closedCaptionsStyles.emptyContentContainer as StyleType; }; const renderContent = () => { if (!isTranscribing) { if (canStartSubtitles) { return (