import React from 'react'; import { StyleSheet, View } from 'react-native'; import { IconButton, useTheme } from 'react-native-paper'; import GENERAL_STYLES from '../../../constants/Styles'; import GameLogic, { MovementCallbackType } from '../logic/GameLogic'; type Props = { logic: GameLogic; onDirectionPressed: MovementCallbackType; }; const styles = StyleSheet.create({ controlsContainer: { height: 80, flexDirection: 'row', }, directionsContainer: { flexDirection: 'row', flex: 4, }, }); function GameControls(props: Props) { const { logic } = props; const theme = useTheme(); return ( logic.rotatePressed(props.onDirectionPressed)} style={GENERAL_STYLES.flex} /> logic.pressedOut()} onPressIn={() => logic.leftPressedIn(props.onDirectionPressed)} /> logic.pressedOut()} onPressIn={() => logic.rightPressed(props.onDirectionPressed)} /> logic.downPressedIn(props.onDirectionPressed)} onPress={() => logic.pressedOut()} style={GENERAL_STYLES.flex} color={theme.colors.tetrisScore} /> ); } export default React.memo(GameControls, () => true);