import React from 'react'; import PropTypes from 'prop-types'; import { ScrollView, View } from 'react-native'; import { connect } from 'react-redux'; import RNPickerSelect from 'react-native-picker-select'; import { inviteLinksSetParams as inviteLinksSetParamsAction, inviteLinksCreate as inviteLinksCreateAction } from '../../actions/inviteLinks'; import ListItem from '../../containers/ListItem'; import styles from './styles'; import Button from '../../containers/Button'; import scrollPersistTaps from '../../utils/scrollPersistTaps'; import I18n from '../../i18n'; import StatusBar from '../../containers/StatusBar'; import { themes } from '../../constants/colors'; import { withTheme } from '../../theme'; import Separator from '../../containers/Separator'; import SafeAreaView from '../../containers/SafeAreaView'; const OPTIONS = { days: [{ label: I18n.t('Never'), value: 0 }, { label: '1', value: 1 }, { label: '7', value: 7 }, { label: '15', value: 15 }, { label: '30', value: 30 }], maxUses: [{ label: I18n.t('No_limit'), value: 0 }, { label: '1', value: 1 }, { label: '5', value: 5 }, { label: '10', value: 10 }, { label: '25', value: 25 }, { label: '50', value: 50 }, { label: '100', value: 100 }] }; class InviteUsersView extends React.Component { static navigationOptions = { title: I18n.t('Invite_users') } static propTypes = { navigation: PropTypes.object, route: PropTypes.object, theme: PropTypes.string, timeDateFormat: PropTypes.string, createInviteLink: PropTypes.func, inviteLinksSetParams: PropTypes.func } constructor(props) { super(props); this.rid = props.route.params?.rid; } onValueChangePicker = (key, value) => { const { inviteLinksSetParams } = this.props; const params = { [key]: value }; inviteLinksSetParams(params); } createInviteLink = () => { const { createInviteLink, navigation } = this.props; createInviteLink(this.rid); navigation.pop(); } renderPicker = (key) => { const { props } = this; const { theme } = props; return ( this.onValueChangePicker(key, value)} items={OPTIONS[key]} /> ); } render() { const { theme } = this.props; return ( this.renderPicker('days')} theme={theme} /> this.renderPicker('maxUses')} theme={theme} />