import React from 'react'; import { StyleSheet, Text, TextStyle, TouchableOpacity, View, } from 'react-native'; import {ResizeMode} from 'react-native-video'; /* * MultiValueControl displays a list clickable text view */ interface MultiValueControlType { // a list a string or number to be displayed values: Array; // The selected value in values selected?: T; // callback to press onPress onPress: (arg: T) => void; } const MultiValueControl = ({ values, selected, onPress, }: MultiValueControlType) => { const selectedStyle: TextStyle = StyleSheet.flatten([ styles.option, {fontWeight: 'bold'}, ]); const unselectedStyle: TextStyle = StyleSheet.flatten([ styles.option, {fontWeight: 'normal'}, ]); return ( {values.map(value => { const _style = value === selected ? selectedStyle : unselectedStyle; return ( { onPress?.(value); }}> {value} ); })} ); }; const styles = StyleSheet.create({ option: { alignSelf: 'center', fontSize: 11, color: 'white', paddingLeft: 2, paddingRight: 2, lineHeight: 12, }, container: { flex: 1, flexDirection: 'row', alignItems: 'center', justifyContent: 'center', }, }); export default MultiValueControl;