From f404ad6b192b1e2f0466061c951ef3d131737a4c Mon Sep 17 00:00:00 2001 From: Ivan Chen Date: Fri, 16 Jul 2021 18:17:05 -0400 Subject: Add logic to show/hide trimmer --- src/components/moments/TrimmerPlayer.tsx | 56 +++++++++++++++++++------------- src/screens/upload/EditMedia.tsx | 39 +++++++++++++++------- 2 files changed, 61 insertions(+), 34 deletions(-) (limited to 'src') diff --git a/src/components/moments/TrimmerPlayer.tsx b/src/components/moments/TrimmerPlayer.tsx index 4d6a8985..ef829637 100644 --- a/src/components/moments/TrimmerPlayer.tsx +++ b/src/components/moments/TrimmerPlayer.tsx @@ -1,7 +1,8 @@ import React, {useEffect, useRef, useState} from 'react'; +import {StyleSheet, View} from 'react-native'; import Video from 'react-native-video'; import {Trimmer} from 'react-native-video-processing'; -import {SCREEN_WIDTH} from '../../utils'; +import {SCREEN_HEIGHT, SCREEN_WIDTH} from '../../utils'; interface TrimmerPlayerProps { source: string; @@ -79,29 +80,40 @@ const TrimmerPlayer: React.FC = ({ setPaused((state) => !state); }} /> - - // https://github.com/shahen94/react-native-video-processing - source={source} - height={hideTrimmer ? 0 : 75} - width={hideTrimmer ? 0 : SCREEN_WIDTH} - borderWidth={hideTrimmer ? 0 : 100} - onTrackerMove={(e: {currentTime: number}) => { - setPaused(true); - setSeekTime(e.currentTime); - }} - currentTime={trackerTime} - themeColor={'white'} - thumbWidth={10} - trackerColor={'white'} - onChange={(e: {endTime: number; startTime: number}) => { - setPaused(true); - setEnd(e.endTime); - setStart(e.startTime); - }} - /> + + + // https://github.com/shahen94/react-native-video-processing + source={source} + height={hideTrimmer ? 0 : 75} + width={hideTrimmer ? 0 : SCREEN_WIDTH} + onTrackerMove={(e: {currentTime: number}) => { + setPaused(true); + setSeekTime(e.currentTime); + }} + currentTime={trackerTime} + themeColor={'white'} + thumbWidth={10} + trackerColor={'white'} + onChange={(e: {endTime: number; startTime: number}) => { + setPaused(true); + setEnd(e.endTime); + setStart(e.startTime); + }} + /> + ); }; +const styles = StyleSheet.create({ + trimmerContainer: { + position: 'absolute', + bottom: SCREEN_HEIGHT * 0.1, + alignItems: 'center', + borderWidth: 1, + borderColor: 'red', + }, +}); + export default TrimmerPlayer; diff --git a/src/screens/upload/EditMedia.tsx b/src/screens/upload/EditMedia.tsx index d25a0fb9..0494375c 100644 --- a/src/screens/upload/EditMedia.tsx +++ b/src/screens/upload/EditMedia.tsx @@ -3,7 +3,6 @@ import {RouteProp} from '@react-navigation/core'; import {StackNavigationProp} from '@react-navigation/stack'; import React, {useEffect, useRef, useState} from 'react'; import {Image, StyleSheet, Text, TouchableOpacity, View} from 'react-native'; -import {normalize} from 'react-native-elements'; import ImageZoom, {IOnMove} from 'react-native-image-pan-zoom'; import PhotoManipulator from 'react-native-photo-manipulator'; import TrimIcon from '../../assets/icons/trim.svg'; @@ -14,6 +13,7 @@ import {MainStackParams} from '../../routes'; import { cropVideo, HeaderHeight, + normalize, SCREEN_HEIGHT, SCREEN_WIDTH, trimVideo, @@ -36,6 +36,7 @@ export const EditMedia: React.FC = ({route, navigation}) => { const [origDimensions, setOrigDimensions] = useState([0, 0]); const vidRef = useRef(null); const [cropLoading, setCropLoading] = useState(false); + const [hideTrimmer, setHideTrimmer] = useState(true); // Stores the coordinates of the cropped image const [x0, setX0] = useState(); @@ -299,7 +300,6 @@ export const EditMedia: React.FC = ({route, navigation}) => { zoomStep={0.5} initialZoom={1} bindToBorders={true} - // onZoomAfter={this.logOutZoomState} onDoubleTapAfter={( _1: any, _2: any, @@ -322,7 +322,7 @@ export const EditMedia: React.FC = ({route, navigation}) => { style={styles.zoomView}> = ({route, navigation}) => { )} {!checkIfUriImage(media.uri) && ( - - Trim - - Volume + setHideTrimmer((state) => !state)}> + + Trim + + null}> + + Volume + )}