import { Formik } from 'formik'; import i18n from 'i18n-js'; import { Container, Content, Input, InputGroup, Label, Item, Icon } from 'native-base'; import PropTypes from 'prop-types'; import React, { useRef, useState } from 'react'; import { StyleSheet } from 'react-native'; import * as Yup from 'yup'; import FormButtons from '../../components/FormButtons/FormButtons'; import ValidationMessage from '../../components/ValidationMessage/ValidationMessage'; import { usePermission } from '../../hooks/UsePermission'; const validations = { name: Yup.string().required('AbpAccount::ThisFieldIsRequired.'), }; function CreateUpdateTenantForm({ editingTenant = {}, submit, remove }) { const tenantNameRef = useRef(); const adminEmailRef = useRef(); const adminPasswordRef = useRef(); const [showAdminPassword, setShowAdminPassword] = useState(false); const hasRemovePermission = usePermission('AbpTenantManagement.Tenants.Delete'); const onSubmit = values => { submit({ ...editingTenant, ...values, }); }; const adminEmailAddressValidation = Yup.lazy(() => Yup.string() .required('AbpAccount::ThisFieldIsRequired.') .email('AbpAccount::ThisFieldIsNotAValidEmailAddress.'), ); const adminPasswordValidation = Yup.lazy(() => Yup.string().required('AbpAccount::ThisFieldIsRequired.'), ); return ( onSubmit(values)}> {({ handleChange, handleBlur, handleSubmit, values, errors, isValid }) => ( <> !editingTenant.id ? adminEmailRef.current._root.focus() : null } returnKeyType={!editingTenant.id ? 'next' : 'done'} onChangeText={handleChange('name')} onBlur={handleBlur('name')} value={values.name} /> {errors.name} {!editingTenant.id ? ( <> adminPasswordRef.current._root.focus()} returnKeyType="next" onChangeText={handleChange('adminEmailAddress')} onBlur={handleBlur('adminEmailAddress')} value={values.adminEmailAddress} /> {errors.adminEmailAddress} setShowAdminPassword(!showAdminPassword)} /> {errors.adminPassword} ) : null} )} ); } CreateUpdateTenantForm.propTypes = { editingTenant: PropTypes.object, submit: PropTypes.func.isRequired, remove: PropTypes.func.isRequired, }; const styles = StyleSheet.create({ container: { marginBottom: 50, }, }); export default CreateUpdateTenantForm;