import React from "react"; import { ActivityIndicator, Keyboard, Text, TextInput, TouchableOpacity, TouchableWithoutFeedback, View, } from "react-native"; import DropDownPicker from "react-native-dropdown-picker"; // @ts-ignore import { useVideoDetails } from "../../component/video/use-video-details"; import { globalInputStyles } from "../../styles"; import { recordStyles as styles } from "./styles"; export default function VideoDetails({ navigation, route }): React.JSX.Element { const { mode, videoId } = route.params; const { sessionName, setSessionName, gameType, setGameType, tableSize, setTableSize, gameTypeOpen, setGameTypeOpen, tableSizeOpen, setTableSizeOpen, onGameTypeOpen, onTableSizeOpen, handleSubmit, loading, tableSizes, gameTypes, setGameTypes, setTableSizes, } = useVideoDetails({ mode, videoId, params: route.params, navigation }); const dropDownStyles = { style: globalInputStyles.dropdownStyle, }; return ( <TouchableWithoutFeedback onPress={() => Keyboard.dismiss()}> <View style={styles.container}> <Text style={styles.headerText}> {mode === "start-video" ? "Record Session" : "Save Session"} </Text> <View style={globalInputStyles.dropdownContainer}> <Text style={globalInputStyles.dropdownTitle}>Session Name</Text> <TextInput style={globalInputStyles.input} placeholder="Session name" autoCapitalize="none" value={sessionName} onChangeText={setSessionName} /> <Text style={globalInputStyles.dropdownTitle}>Game Type</Text> <DropDownPicker zIndex={3000} zIndexInverse={1000} open={gameTypeOpen} value={gameType} items={gameTypes} setOpen={setGameTypeOpen} setValue={setGameType} setItems={setGameTypes} onOpen={onGameTypeOpen} {...dropDownStyles} /> <Text style={globalInputStyles.dropdownTitle}>Table size</Text> <DropDownPicker zIndex={2000} zIndexInverse={2000} open={tableSizeOpen} value={tableSize} items={tableSizes} setOpen={setTableSizeOpen} setValue={setTableSize} setItems={setTableSizes} onOpen={onTableSizeOpen} {...dropDownStyles} /> </View> <View style={styles.buttonContainer}> {mode === "start-video" && ( <TouchableOpacity style={styles.buttonStyle} onPress={() => navigation.goBack()} > <Text style={styles.buttonText}>Back</Text> </TouchableOpacity> )} <TouchableOpacity style={styles.buttonStyle} onPress={handleSubmit}> {loading ? ( <ActivityIndicator color="#fff" /> ) : ( <Text style={styles.buttonText}> {mode === "start-video" ? "Next" : "Save"} </Text> )} </TouchableOpacity> </View> </View> </TouchableWithoutFeedback> ); }