From 59975109d3f6945ac5153e775e6f91f933acc67e Mon Sep 17 00:00:00 2001 From: Brian Kim Date: Fri, 6 Aug 2021 16:06:20 -0400 Subject: Correct changes --- src/screens/moments/CameraScreen.tsx | 57 ++++++++++++++---------------------- 1 file changed, 22 insertions(+), 35 deletions(-) diff --git a/src/screens/moments/CameraScreen.tsx b/src/screens/moments/CameraScreen.tsx index 483bfe38..c57755b4 100644 --- a/src/screens/moments/CameraScreen.tsx +++ b/src/screens/moments/CameraScreen.tsx @@ -36,6 +36,13 @@ const CameraScreen: React.FC = ({route, navigation}) => { const [vidUri, setVidUri] = useState(); const [videoRecordStart, setVideoRecordStart] = useState(false); + const killUnnecessaryVideo = async () => { + setVideoRecordStart(false); + if (await cameraRef.current?.isRecording()) { + cameraRef.current?.stopRecording(); + } + }; + useFocusEffect( useCallback(() => { navigation.dangerouslyGetParent()?.setOptions({ @@ -75,6 +82,17 @@ const CameraScreen: React.FC = ({route, navigation}) => { setMounted(true); }, []); + /* + * Triggers when vidUri updates + */ + useEffect(() => { + if (videoRecordStart && vidUri) { + navigateToEditMedia(vidUri); + } + setVideoRecordStart(false); + setIsRecording(false); + }, [vidUri]); + const navigateToEditMedia = (uri: string) => { cameraRef?.current?.resumePreview(); navigation.navigate('EditMedia', { @@ -126,25 +144,10 @@ const CameraScreen: React.FC = ({route, navigation}) => { setCameraType(cameraType === 'front' ? 'back' : 'front'); } }} - onRecordingStart={(event: { - nativeEvent: { - uri: string; - videoOrientation: number; - deviceOrientation: number; - }; - }) => { - console.log('start', event.nativeEvent.uri); + onRecordingStart={() => { setIsRecording(true); - setVidUri(event.nativeEvent.uri); setVideoRecordStart(true); }} - onRecordingEnd={() => { - if (videoRecordStart && vidUri) { - navigateToEditMedia(vidUri); - } - setVideoRecordStart(false); - setIsRecording(false); - }} /> {!pictureProcessing && ( @@ -157,13 +160,7 @@ const CameraScreen: React.FC = ({route, navigation}) => { } activeOpacity={1} onLongPress={async () => { - const resetAndStartCameraRecording = async () => { - if (await cameraRef.current?.isRecording()) { - cameraRef.current?.stopRecording(); - } - }; - - await resetAndStartCameraRecording(); + await killUnnecessaryVideo(); takeVideo(cameraRef, (vid) => setVidUri(vid.uri)); }} onPressOut={async () => { @@ -177,23 +174,13 @@ const CameraScreen: React.FC = ({route, navigation}) => { }; setPictureProcessing(true); cancelRecording(); - // tmp fix for when the animation glitches during the beginning of - // recording causing onPressOut to not be detected. - // setTimeout(() => { - // cancelRecording(); - // }, 500); - // setTimeout(() => { - // cancelRecording(); - // }, 1000); - // setTimeout(() => { - // cancelRecording(); - // }, 1500); }} - onPress={() => { + onPress={async () => { if (!pictureProcessing) { setPictureProcessing(true); } takePicture(cameraRef, (pic) => navigateToEditMedia(pic.uri)); + await killUnnecessaryVideo(); }}> -- cgit v1.2.3-70-g09d2