/** * Copyright (c) 2013-present, Facebook, Inc. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. * * The examples provided by Facebook are for non-commercial testing and * evaluation purposes only. * * Facebook reserves all rights not expressly granted. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL * FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * * @providesModule SwipeableQuickActionButton * @flow */ 'use strict'; const Image = require('Image'); const React = require('React'); const StyleSheet = require('StyleSheet'); const Text = require('Text'); const TouchableHighlight = require('TouchableHighlight'); const View = require('View'); const {PropTypes} = React; const SwipeableQuickActionButton = React.createClass({ propTypes: { accessibilityLabel: PropTypes.string, imageSource: Image.propTypes.source.isRequired, imageStyle: Image.propTypes.style, onPress: PropTypes.func, style: View.propTypes.style, testID: PropTypes.string, text: PropTypes.string, textStyle: Text.propTypes.style, }, render(): ?ReactElement { if (!this.props.imageSource && !this.props.text) { return null; } return ( {this.props.text} ); }, }); const styles = StyleSheet.create({ button: { alignItems: 'center', flex: 1, flexDirection: 'column', width: 76, }, image: { height: 33, width: 33, }, text: { color: '#ffffff', fontSize: 12, textAlign: 'center', // For Android to align properly }, }); module.exports = SwipeableQuickActionButton;