Skip to content
Snippets Groups Projects
select-tab-group.js 1.35 KiB
Newer Older
import React, { Component } from 'react'
import {
  View,
  TouchableOpacity,
} from 'react-native'
import styles from '../../styles'
Julia Friesel's avatar
Julia Friesel committed
import AppText from '../app-text'

export default class SelectTabGroup extends Component {
  render() {
    return (
      <View style={styles.selectTabGroup}>
        {
          this.props.buttons.map(({ label, value }, i) => {
            let firstOrLastStyle
            if (i === this.props.buttons.length - 1) {
              firstOrLastStyle = styles.selectTabLast
            } else if (i === 0) {
              firstOrLastStyle = styles.selectTabFirst
            }
            let activeStyle
            const isActive = value === this.props.active
            if (isActive) activeStyle = styles.selectTabActive
            return (
              <TouchableOpacity
                onPress={() => isActive ? this.props.onSelect(null) : this.props.onSelect(value)}
Julia Friesel's avatar
Julia Friesel committed
                key={i}
                  <View style={[
                    styles.selectTab,
                    firstOrLastStyle,
                    activeStyle
                  ]}>
                    <AppText style={activeStyle}>{label}</AppText>
                  </View>
                </View>
              </TouchableOpacity>
            )
          })
        }
      </View>
    )
  }
}