import React, { useCallback, useState } from 'react' import { View, TextInput, TouchableWithoutFeedback, Text, TouchableOpacity, Keyboard } from 'react-native'; import DropDownPicker from 'react-native-dropdown-picker'; import { recordStyles as styles } from './styles'; interface CameraScreenParams { gameType: string; tableSize: string; tags: Array; location: string; } // Record Screen // Precedes Camera.tsx // Can be made into Modal when ready export default function RecordScreen({ navigation }): React.JSX.Element { // Game type dropdown const [gameTypeOpen, setGameTypeOpen] = useState(false) const [gameType, setGameType] = useState(null) // This is a dropdown const [gameTypes, setGameTypes] = useState([ { label: 'Free Play', value: 'freePlay' }, { label: 'Straight Pool', value: 'straightPool' }, { label: 'Nine Ball', value: 'nineBall' } ]); const onGameTypeOpen = useCallback(() => { setTableSizeOpen(false); setTagsOpen(false); }, []); // Table size dropdown const [tableSizeOpen, setTableSizeOpen] = useState(false) const [tableSize, setTableSize] = useState('') const [tableSizes, setTableSizes] = useState([ { label: `9'`, value: 'nineFoot' }, { label: `8'`, value: 'eightFoot' }, { label: '7', value: 'sevenFoot' } ]); const onTableSizeOpen = useCallback(() => { setGameTypeOpen(false); setTagsOpen(false); }, []); // Tags multi-select dropdown const [tagsOpen, setTagsOpen] = useState(false) const [tags, setTags] = useState>([]) const [tagsList, setTagsList] = useState([ { label: `Tag1`, value: 'tag1' }, { label: `Tag2`, value: 'tag2' }, { label: 'Tag3', value: 'tag3' } ]); const onTagsOpen = useCallback(() => { setTableSizeOpen(false); setGameTypeOpen(false); }, []); // Location const [location, setLocation] = useState('') const handleSubmit = () => { // needs to pass info as params or store in a context/state provider const params: CameraScreenParams = { gameType: gameType, tableSize: tableSize, tags: tags, location: location }; navigation.push('Camera', params) } const dropDownStyles = { style: styles.dropdownStyle, }; return ( Keyboard.dismiss()}> Game Type Table size Tags Location setLocation(value)} /> navigation.goBack()}> Back Next ) }