From eb2409404c5e3fe11529b5b237ac5863ae383e16 Mon Sep 17 00:00:00 2001 From: Brian Kim Date: Fri, 6 Aug 2021 17:11:10 -0400 Subject: Unrender camera when not in focus --- src/screens/moments/CameraScreen.tsx | 42 +++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/src/screens/moments/CameraScreen.tsx b/src/screens/moments/CameraScreen.tsx index 46e68a98..78a9169d 100644 --- a/src/screens/moments/CameraScreen.tsx +++ b/src/screens/moments/CameraScreen.tsx @@ -1,7 +1,7 @@ import CameraRoll from '@react-native-community/cameraroll'; import {useBottomTabBarHeight} from '@react-navigation/bottom-tabs'; import {RouteProp} from '@react-navigation/core'; -import {useFocusEffect} from '@react-navigation/native'; +import {useFocusEffect, useIsFocused} from '@react-navigation/native'; import {StackNavigationProp} from '@react-navigation/stack'; import React, {useRef, useCallback, useEffect, useState} from 'react'; import {Modal, StyleSheet, TouchableOpacity, View} from 'react-native'; @@ -27,6 +27,7 @@ const CameraScreen: React.FC = ({route, navigation}) => { const {screenType, selectedCategory} = route.params; const cameraRef = useRef(null); const tabBarHeight = useBottomTabBarHeight(); + const focused = useIsFocused(); const [cameraType, setCameraType] = useState('back'); const [flashMode, setFlashMode] = useState('off'); const [mostRecentPhoto, setMostRecentPhoto] = useState(''); @@ -94,7 +95,6 @@ const CameraScreen: React.FC = ({route, navigation}) => { }, [vidUri]); const navigateToEditMedia = (uri: string) => { - cameraRef?.current?.resumePreview(); navigation.navigate('EditMedia', { screenType, media: { @@ -130,25 +130,27 @@ const CameraScreen: React.FC = ({route, navigation}) => { - { - if (!pictureProcessing) { - setCameraType(cameraType === 'front' ? 'back' : 'front'); + {focused && ( + { - setIsRecording(true); - setVideoRecordStart(true); - }} - /> + onDoubleTap={() => { + if (!pictureProcessing) { + setCameraType(cameraType === 'front' ? 'back' : 'front'); + } + }} + onRecordingStart={() => { + setIsRecording(true); + setVideoRecordStart(true); + }} + /> + )} {!pictureProcessing && ( -- cgit v1.2.3-70-g09d2