summaryrefslogtreecommitdiff
path: root/client/src/lib/components/button.js
blob: a5cf8ea8dea04eb54a08d96874aa6628e1eff0d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import React, { Component } from 'react';
import {
  StyleSheet,
  Text,
  TouchableOpacity,
  View
} from 'react-native';
import DeviceInfo from 'react-native-device-info'

export default class Button extends Component {
  render() {
    let { buttonStyle, textStyle, ...others } = this.props
    let activeOpacity = 0.5
    let viewElementStyle = [ styles.button, buttonStyle ]
    let textElementStyle = [ styles.text, textStyle ]
    if (this.props.disabled) {
      viewElementStyle.push( styles.disabledButton )
      textElementStyle.push( styles.disabledText )
      activeOpacity = 1.0
    }
    return (
      <TouchableOpacity {...others} onPress={() => { if (! this.props.disabled) { this.props.onPress() }}}>
        <View style={viewElementStyle}>
          <Text style={textElementStyle}>
            {this.props.label}
          </Text>
        </View>
      </TouchableOpacity>
    )
  }
}

const styles = StyleSheet.create({
  text: {
    color: '#000',
    fontFamily: 'Futura-Medium',
    textAlign: 'center',
    padding: 0,
  },
  button: {
    padding: 10,
    margin: 10,
    borderRadius: 3,
    backgroundColor: '#fff',
    borderBottomColor: '#bbb',
    borderBottomWidth: 2,
  },
  disabledButton: {
    backgroundColor: '#bbb',
    borderBottomColor: '#888',
  },
  disabledText: {
    color: '#333',
  },
})