/* eslint-disable lines-around-comment */ import React, { useEffect } from 'react'; import { View } from 'react-native'; import { withSafeAreaInsets } from 'react-native-safe-area-context'; import { useDispatch, useSelector } from 'react-redux'; // @ts-ignore import JitsiScreen from '../../../../base/modal/components/JitsiScreen'; // @ts-ignore import { LoadingIndicator, TintedView } from '../../../../base/react'; // @ts-ignore import { isLocalVideoTrackDesktop } from '../../../../base/tracks'; // @ts-ignore import { setPictureInPictureEnabled } from '../../../../mobile/picture-in-picture/functions'; // @ts-ignore import { setIsCarmode } from '../../../../video-layout/actions'; // @ts-ignore import ConferenceTimer from '../../ConferenceTimer'; // @ts-ignore import { isConnecting } from '../../functions'; import CarModeFooter from './CarModeFooter'; import MicrophoneButton from './MicrophoneButton'; import TitleBar from './TitleBar'; // @ts-ignore import styles from './styles'; /** * Implements the carmode component. * * @returns { JSX.Element} - The carmode component. */ const CarMode = (): JSX.Element => { const dispatch = useDispatch(); const connecting = useSelector(isConnecting); const isSharing = useSelector(isLocalVideoTrackDesktop); useEffect(() => { dispatch(setIsCarmode(true)); setPictureInPictureEnabled(false); return () => { dispatch(setIsCarmode(false)); if (!isSharing) { setPictureInPictureEnabled(true); } }; }, []); return ( {/* * The activity/loading indicator goes above everything, except * the toolbox/toolbars and the dialogs. */ connecting && } {/* @ts-ignore */} ); }; export default withSafeAreaInsets(CarMode);