|
@@ -1,6 +1,6 @@
|
|
|
/**
|
|
/**
|
|
|
- * 注册页面V2
|
|
|
|
|
- * @邠心vbe on 2022/12/23
|
|
|
|
|
|
|
+ * 带Public和PHV切换的注册页面V2
|
|
|
|
|
+ * @邠心vbe on 2023/02/01
|
|
|
*/
|
|
*/
|
|
|
import React from 'react';
|
|
import React from 'react';
|
|
|
import { View, Text, ScrollView, StyleSheet, TextInput, Pressable, Image } from 'react-native';
|
|
import { View, Text, ScrollView, StyleSheet, TextInput, Pressable, Image } from 'react-native';
|
|
@@ -17,9 +17,10 @@ import apiUpload from '../../api/apiUpload';
|
|
|
import { host } from '../../api/http';
|
|
import { host } from '../../api/http';
|
|
|
import { ModalProps } from '../../components/BottomModal';
|
|
import { ModalProps } from '../../components/BottomModal';
|
|
|
import { CountryDropNum, GetCountryList } from '../../components/CountryIcon';
|
|
import { CountryDropNum, GetCountryList } from '../../components/CountryIcon';
|
|
|
-import CheckBox from '../../components/CheckBox';
|
|
|
|
|
import StrengthView from './StrengthView';
|
|
import StrengthView from './StrengthView';
|
|
|
|
|
+import CheckBox from '../../components/CheckBox';
|
|
|
import { UploadThemes } from '../../components/ThemesConfig';
|
|
import { UploadThemes } from '../../components/ThemesConfig';
|
|
|
|
|
+import TextView from '../../components/TextView';
|
|
|
|
|
|
|
|
const options = {
|
|
const options = {
|
|
|
width: 300,
|
|
width: 300,
|
|
@@ -34,7 +35,7 @@ const options = {
|
|
|
...UploadThemes
|
|
...UploadThemes
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-export default class Register extends React.Component {
|
|
|
|
|
|
|
+export default class RegisterV2 extends React.Component {
|
|
|
constructor(props) {
|
|
constructor(props) {
|
|
|
super(props);
|
|
super(props);
|
|
|
this.state = {
|
|
this.state = {
|
|
@@ -42,7 +43,9 @@ export default class Register extends React.Component {
|
|
|
strength: 0,
|
|
strength: 0,
|
|
|
countryNum: '65',
|
|
countryNum: '65',
|
|
|
countryShow: false,
|
|
countryShow: false,
|
|
|
- userInfo: {},
|
|
|
|
|
|
|
+ userInfo: {
|
|
|
|
|
+ email: ""
|
|
|
|
|
+ },
|
|
|
countryNums: [],
|
|
countryNums: [],
|
|
|
wrongCount: 0,
|
|
wrongCount: 0,
|
|
|
params: {...this.props.route.params},
|
|
params: {...this.props.route.params},
|
|
@@ -115,39 +118,39 @@ export default class Register extends React.Component {
|
|
|
//console.log('sign up', this.state);
|
|
//console.log('sign up', this.state);
|
|
|
var info = this.state.userInfo;
|
|
var info = this.state.userInfo;
|
|
|
if (!info.nickName) {
|
|
if (!info.nickName) {
|
|
|
- toastShort('Please enter display name');
|
|
|
|
|
|
|
+ toastShort($t('sign.plsInputDiaplayName'));
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
if (!info.email) {
|
|
if (!info.email) {
|
|
|
- toastShort('Please enter email address');
|
|
|
|
|
|
|
+ toastShort($t('sign.plsInputEmail'));
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
if (!/^[a-zA-Z0-9]+[\S]+@[a-zA-Z0-9_-]+[\.][\Sa-zA-Z]+$/.test(info.email)) {
|
|
if (!/^[a-zA-Z0-9]+[\S]+@[a-zA-Z0-9_-]+[\.][\Sa-zA-Z]+$/.test(info.email)) {
|
|
|
- toastShort('Email is incorrect format');
|
|
|
|
|
|
|
+ toastShort($t('sign.errEmailFormat'));
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
if (!info.phone) {
|
|
if (!info.phone) {
|
|
|
- toastShort('Please enter contact number');
|
|
|
|
|
|
|
+ toastShort($t('sign.plsInputContactNo'));
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
if (!/^\d{6,15}$/.test(info.phone)) {
|
|
if (!/^\d{6,15}$/.test(info.phone)) {
|
|
|
- toastShort('Phone Number is incorrect format');
|
|
|
|
|
|
|
+ toastShort($t('sign.errContactNoFormat'));
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
if (!this.state.password) {
|
|
if (!this.state.password) {
|
|
|
- toastShort('Please enter password');
|
|
|
|
|
|
|
+ toastShort($t('sign.plsInputPassword'));
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
if (this.state.strength < StrengthView.V4.maxStrength) {
|
|
if (this.state.strength < StrengthView.V4.maxStrength) {
|
|
|
- toastShort('Password is not strong');
|
|
|
|
|
|
|
+ toastShort($t('sign.errPasswordStrong'));
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
if (!info.password) {
|
|
if (!info.password) {
|
|
|
- toastShort('Please enter confirm password');
|
|
|
|
|
|
|
+ toastShort($t('sign.plsInputPassword2'));
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
if (info.password != this.state.password) {
|
|
if (info.password != this.state.password) {
|
|
|
- toastShort('The twice passwords are inconsistent');
|
|
|
|
|
|
|
+ toastShort($t('sign.errPasswordConfirm'));
|
|
|
if (this.state.wrongCount < 3) {
|
|
if (this.state.wrongCount < 3) {
|
|
|
this.setState({
|
|
this.setState({
|
|
|
wrongCount: this.state.wrongCount + 1
|
|
wrongCount: this.state.wrongCount + 1
|
|
@@ -157,11 +160,11 @@ export default class Register extends React.Component {
|
|
|
}
|
|
}
|
|
|
if (this.state.isFleetDriver) {
|
|
if (this.state.isFleetDriver) {
|
|
|
if (!info.pdvLicence) {
|
|
if (!info.pdvLicence) {
|
|
|
- toastShort('Please enter PDV Licence');
|
|
|
|
|
|
|
+ toastShort($t('sign.plsInputPDVLicence'));
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
if (this.state.pdvImages[0] == '' || this.state.pdvImages[1] == '') {
|
|
if (this.state.pdvImages[0] == '' || this.state.pdvImages[1] == '') {
|
|
|
- toastShort('Please upload PDV Licence Photos');
|
|
|
|
|
|
|
+ toastShort($t('sign.plsUploadLicencePhotos'));
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -180,10 +183,19 @@ export default class Register extends React.Component {
|
|
|
apiUser.register(param).then(res => {
|
|
apiUser.register(param).then(res => {
|
|
|
Dialog.dismissLoading();
|
|
Dialog.dismissLoading();
|
|
|
//toastShort('Sign up successfully!');
|
|
//toastShort('Sign up successfully!');
|
|
|
- this.setState({
|
|
|
|
|
- email: param.email,
|
|
|
|
|
- visible: true
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ if (isIOS) {
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.setState({
|
|
|
|
|
+ email: param.email,
|
|
|
|
|
+ visible: true
|
|
|
|
|
+ });
|
|
|
|
|
+ }, 500);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.setState({
|
|
|
|
|
+ email: param.email,
|
|
|
|
|
+ visible: true
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
//this.backToLogin();
|
|
//this.backToLogin();
|
|
|
}).catch(err => {
|
|
}).catch(err => {
|
|
|
toastShort(err);
|
|
toastShort(err);
|
|
@@ -205,7 +217,10 @@ export default class Register extends React.Component {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
uploadImage(index) {
|
|
uploadImage(index) {
|
|
|
- ImagePicker.openPicker(options).then(image => {
|
|
|
|
|
|
|
+ ImagePicker.openPicker({
|
|
|
|
|
+ ...options,
|
|
|
|
|
+ cropperToolbarTitle: $t('common.cropperTitle')
|
|
|
|
|
+ }).then(image => {
|
|
|
if (image.path) {
|
|
if (image.path) {
|
|
|
apiUpload.uploadImage(image.path, image.mime, 'PDVL').then(res => {
|
|
apiUpload.uploadImage(image.path, image.mime, 'PDVL').then(res => {
|
|
|
if (res.success && res.data.picturePath) {
|
|
if (res.success && res.data.picturePath) {
|
|
@@ -214,15 +229,16 @@ export default class Register extends React.Component {
|
|
|
this.setState({
|
|
this.setState({
|
|
|
pdvImages: imageUrl
|
|
pdvImages: imageUrl
|
|
|
});
|
|
});
|
|
|
|
|
+ toastShort($t('common.uploadSuccess'));
|
|
|
} else {
|
|
} else {
|
|
|
- toastShort('Upload failed, please retry');
|
|
|
|
|
|
|
+ toastShort($t('common.updateFailed'));
|
|
|
}
|
|
}
|
|
|
}).catch(err => {
|
|
}).catch(err => {
|
|
|
toastShort(err);
|
|
toastShort(err);
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
- }).catch(err => {
|
|
|
|
|
- //console.log(err);
|
|
|
|
|
|
|
+ }).catch(err1 => {
|
|
|
|
|
+ //console.log(err1);
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -257,52 +273,52 @@ export default class Register extends React.Component {
|
|
|
keyboardShouldPersistTaps={'handled'}>
|
|
keyboardShouldPersistTaps={'handled'}>
|
|
|
<View style={styles.signView}>
|
|
<View style={styles.signView}>
|
|
|
<View style={styles.tabView}>
|
|
<View style={styles.tabView}>
|
|
|
- <Text
|
|
|
|
|
|
|
+ <TextView
|
|
|
style={[
|
|
style={[
|
|
|
styles.tabText,
|
|
styles.tabText,
|
|
|
this.state.isFleetDriver ? {} : styles.tabActive
|
|
this.state.isFleetDriver ? {} : styles.tabActive
|
|
|
]}
|
|
]}
|
|
|
onPress={() => this.changeTab(false)}
|
|
onPress={() => this.changeTab(false)}
|
|
|
- >Public Users</Text>
|
|
|
|
|
- <Text
|
|
|
|
|
|
|
+ >Public Users</TextView>
|
|
|
|
|
+ <TextView
|
|
|
style={[
|
|
style={[
|
|
|
styles.tabText,
|
|
styles.tabText,
|
|
|
this.state.isFleetDriver ? styles.tabActive: {}
|
|
this.state.isFleetDriver ? styles.tabActive: {}
|
|
|
]}
|
|
]}
|
|
|
onPress={() => this.changeTab(true)}
|
|
onPress={() => this.changeTab(true)}
|
|
|
- >Fleet/PH Drivers</Text>
|
|
|
|
|
|
|
+ >Fleet/PH Drivers</TextView>
|
|
|
</View>
|
|
</View>
|
|
|
{/* <Text style={styles.title}>Registration</Text> */}
|
|
{/* <Text style={styles.title}>Registration</Text> */}
|
|
|
<View style={styles.signInput}>
|
|
<View style={styles.signInput}>
|
|
|
- <Text style={styles.inputLabel}>Display Name</Text>
|
|
|
|
|
|
|
+ <TextView style={styles.inputLabel}>{$t('sign.labelDisplayName')}</TextView>
|
|
|
<TextInput
|
|
<TextInput
|
|
|
style={styles.inputView}
|
|
style={styles.inputView}
|
|
|
- placeholder='Display Name'
|
|
|
|
|
|
|
+ placeholder={$t('sign.labelDisplayName')}
|
|
|
placeholderTextColor={textPlacehoder}
|
|
placeholderTextColor={textPlacehoder}
|
|
|
maxLength={50}
|
|
maxLength={50}
|
|
|
onChangeText={v => this.changeInfo('nickName', v)}
|
|
onChangeText={v => this.changeInfo('nickName', v)}
|
|
|
/>
|
|
/>
|
|
|
</View>
|
|
</View>
|
|
|
<View style={styles.signInput}>
|
|
<View style={styles.signInput}>
|
|
|
- <Text style={styles.inputLabel}>Email Address</Text>
|
|
|
|
|
|
|
+ <TextView style={styles.inputLabel}>{$t('sign.labelEmail')}</TextView>
|
|
|
<TextInput
|
|
<TextInput
|
|
|
style={styles.inputView}
|
|
style={styles.inputView}
|
|
|
- placeholder='Email Address'
|
|
|
|
|
|
|
+ placeholder={$t('sign.labelEmail')}
|
|
|
placeholderTextColor={textPlacehoder}
|
|
placeholderTextColor={textPlacehoder}
|
|
|
maxLength={50}
|
|
maxLength={50}
|
|
|
onChangeText={v => this.changeInfo('email', v)}
|
|
onChangeText={v => this.changeInfo('email', v)}
|
|
|
/>
|
|
/>
|
|
|
</View>
|
|
</View>
|
|
|
<View style={styles.signInput}>
|
|
<View style={styles.signInput}>
|
|
|
- <Text style={styles.inputLabel}>Phone Number</Text>
|
|
|
|
|
|
|
+ <TextView style={styles.inputLabel}>{$t('sign.labelPhoneNumber')}</TextView>
|
|
|
<View style={styles.mobileView}>
|
|
<View style={styles.mobileView}>
|
|
|
<View style={styles.dropView}>
|
|
<View style={styles.dropView}>
|
|
|
<TextInput style={styles.dropInput} editable={false}/>
|
|
<TextInput style={styles.dropInput} editable={false}/>
|
|
|
- <Text style={styles.countryText}>{"+" + this.state.countryNum}</Text>
|
|
|
|
|
|
|
+ <TextView style={styles.countryText}>{"+" + this.state.countryNum}</TextView>
|
|
|
<MaterialIcons name={'arrow-drop-down'} size={24} color={colorDark}/>
|
|
<MaterialIcons name={'arrow-drop-down'} size={24} color={colorDark}/>
|
|
|
<Dropdown
|
|
<Dropdown
|
|
|
style={styles.dropLayer}
|
|
style={styles.dropLayer}
|
|
|
- title='Country'
|
|
|
|
|
|
|
+ title={$t('sign.labelCountry')}
|
|
|
prefixText="+"
|
|
prefixText="+"
|
|
|
list={this.state.countryNums}
|
|
list={this.state.countryNums}
|
|
|
value={this.state.countryNum}
|
|
value={this.state.countryNum}
|
|
@@ -324,7 +340,7 @@ export default class Register extends React.Component {
|
|
|
</View>
|
|
</View>
|
|
|
<TextInput
|
|
<TextInput
|
|
|
style={styles.contactView}
|
|
style={styles.contactView}
|
|
|
- placeholder='Mobile Number'
|
|
|
|
|
|
|
+ placeholder={$t('sign.labelMobileNumber')}
|
|
|
placeholderTextColor={textPlacehoder}
|
|
placeholderTextColor={textPlacehoder}
|
|
|
keyboardType='phone-pad'
|
|
keyboardType='phone-pad'
|
|
|
maxLength={15}
|
|
maxLength={15}
|
|
@@ -333,11 +349,11 @@ export default class Register extends React.Component {
|
|
|
</View>
|
|
</View>
|
|
|
</View>
|
|
</View>
|
|
|
<View style={styles.signInput}>
|
|
<View style={styles.signInput}>
|
|
|
- <Text style={styles.inputLabel}>Create Password</Text>
|
|
|
|
|
|
|
+ <TextView style={styles.inputLabel}>{$t('sign.labelCreatePassword')}</TextView>
|
|
|
<TextInput
|
|
<TextInput
|
|
|
secureTextEntry={this.state.wrongCount < 3}
|
|
secureTextEntry={this.state.wrongCount < 3}
|
|
|
style={styles.inputView}
|
|
style={styles.inputView}
|
|
|
- placeholder='Password'
|
|
|
|
|
|
|
+ placeholder={$t('sign.labelPassword')}
|
|
|
placeholderTextColor={textPlacehoder}
|
|
placeholderTextColor={textPlacehoder}
|
|
|
maxLength={20}
|
|
maxLength={20}
|
|
|
onChangeText={(value) => {
|
|
onChangeText={(value) => {
|
|
@@ -346,17 +362,17 @@ export default class Register extends React.Component {
|
|
|
/>
|
|
/>
|
|
|
</View>
|
|
</View>
|
|
|
<View style={styles.signInput}>
|
|
<View style={styles.signInput}>
|
|
|
- <Text style={styles.inputLabel}></Text>
|
|
|
|
|
|
|
+ <TextView style={styles.inputLabel}></TextView>
|
|
|
<View style={styles.passwordView}>
|
|
<View style={styles.passwordView}>
|
|
|
<StrengthView.V4.VIEW {...this.state}/>
|
|
<StrengthView.V4.VIEW {...this.state}/>
|
|
|
</View>
|
|
</View>
|
|
|
</View>
|
|
</View>
|
|
|
<View style={styles.signInput}>
|
|
<View style={styles.signInput}>
|
|
|
- <Text style={styles.inputLabel}>Confirm Password</Text>
|
|
|
|
|
|
|
+ <TextView style={styles.inputLabel}>{$t('sign.labelConfirmPassword')}</TextView>
|
|
|
<TextInput
|
|
<TextInput
|
|
|
secureTextEntry={this.state.wrongCount < 3}
|
|
secureTextEntry={this.state.wrongCount < 3}
|
|
|
style={styles.inputView}
|
|
style={styles.inputView}
|
|
|
- placeholder='Password'
|
|
|
|
|
|
|
+ placeholder={$t('sign.labelPassword')}
|
|
|
placeholderTextColor={textPlacehoder}
|
|
placeholderTextColor={textPlacehoder}
|
|
|
maxLength={20}
|
|
maxLength={20}
|
|
|
onChangeText={v => this.changeInfo('password', v)}
|
|
onChangeText={v => this.changeInfo('password', v)}
|
|
@@ -365,10 +381,10 @@ export default class Register extends React.Component {
|
|
|
{ this.state.isFleetDriver &&
|
|
{ this.state.isFleetDriver &&
|
|
|
<>
|
|
<>
|
|
|
<View style={styles.signInput}>
|
|
<View style={styles.signInput}>
|
|
|
- <Text style={styles.inputLabel}>Your Company</Text>
|
|
|
|
|
|
|
+ <TextView style={styles.inputLabel}>{$t('sign.labelYourCompany')}</TextView>
|
|
|
<Dropdown
|
|
<Dropdown
|
|
|
style={[styles.inputView, ui.flexc]}
|
|
style={[styles.inputView, ui.flexc]}
|
|
|
- title='Company'
|
|
|
|
|
|
|
+ title={$t('sign.labelCompany')}
|
|
|
list={this.state.companyList}
|
|
list={this.state.companyList}
|
|
|
value={this.state.fleetCompanyId}
|
|
value={this.state.fleetCompanyId}
|
|
|
valueKey='fleetCompanyId'
|
|
valueKey='fleetCompanyId'
|
|
@@ -380,17 +396,17 @@ export default class Register extends React.Component {
|
|
|
}}/>
|
|
}}/>
|
|
|
</View>
|
|
</View>
|
|
|
<View style={styles.signInput}>
|
|
<View style={styles.signInput}>
|
|
|
- <Text style={styles.inputLabel}>{'PDV Licence'}</Text>
|
|
|
|
|
|
|
+ <TextView style={styles.inputLabel}>{$t('sign.labelPDVLicence')}</TextView>
|
|
|
<TextInput
|
|
<TextInput
|
|
|
style={styles.inputView}
|
|
style={styles.inputView}
|
|
|
- placeholder='PH Driver Vocational Licence'
|
|
|
|
|
|
|
+ placeholder={$t('sign.hintPDVLicence')}
|
|
|
placeholderTextColor={textPlacehoder}
|
|
placeholderTextColor={textPlacehoder}
|
|
|
maxLength={20}
|
|
maxLength={20}
|
|
|
onChangeText={v => this.changeInfo('pdvLicence', v)}
|
|
onChangeText={v => this.changeInfo('pdvLicence', v)}
|
|
|
/>
|
|
/>
|
|
|
</View>
|
|
</View>
|
|
|
<View style={styles.signInput}>
|
|
<View style={styles.signInput}>
|
|
|
- <Text style={styles.inputLabel}>{' PDV Photos\n(Front & Back)'}</Text>
|
|
|
|
|
|
|
+ <TextView style={styles.inputLabel}>{$t('sign.labelPDVPhotos')}</TextView>
|
|
|
<View style={styles.uploadGroup}>
|
|
<View style={styles.uploadGroup}>
|
|
|
{ this.state.pdvImages.map((item, index) => (
|
|
{ this.state.pdvImages.map((item, index) => (
|
|
|
<UploadView
|
|
<UploadView
|
|
@@ -404,14 +420,14 @@ export default class Register extends React.Component {
|
|
|
</>
|
|
</>
|
|
|
}
|
|
}
|
|
|
<View style={styles.referView}>
|
|
<View style={styles.referView}>
|
|
|
- <Text style={styles.referTitle}>Have a referral code?</Text>
|
|
|
|
|
|
|
+ <TextView style={styles.referTitle}>Have a referral code?</TextView>
|
|
|
<View style={styles.referText}>
|
|
<View style={styles.referText}>
|
|
|
- <Text>You'll get</Text>
|
|
|
|
|
- <Text style={styles.weight}>$5</Text>
|
|
|
|
|
- <Text>Credit as registration bonus!</Text>
|
|
|
|
|
|
|
+ <TextView>You'll get</TextView>
|
|
|
|
|
+ <TeTextViewxt style={styles.weight}>$5</TeTextViewxt>
|
|
|
|
|
+ <TextView>Credit as registration bonus!</TextView>
|
|
|
</View>
|
|
</View>
|
|
|
<View style={styles.codeView}>
|
|
<View style={styles.codeView}>
|
|
|
- <Text style={{ color: textPrimary, fontSize: 16 }}>Referral Code</Text>
|
|
|
|
|
|
|
+ <TextView style={{ color: textPrimary, fontSize: 16 }}>Referral Code</TextView>
|
|
|
<TextInput
|
|
<TextInput
|
|
|
style={styles.codeText}
|
|
style={styles.codeText}
|
|
|
maxLength={6}
|
|
maxLength={6}
|
|
@@ -427,21 +443,21 @@ export default class Register extends React.Component {
|
|
|
onValueChange={v => this.changeAgree(v)}
|
|
onValueChange={v => this.changeAgree(v)}
|
|
|
/>
|
|
/>
|
|
|
<View style={styles.agreeTextRow}>
|
|
<View style={styles.agreeTextRow}>
|
|
|
- <Text style={styles.agreeText} onPress={() => this.changeAgree(!this.state.agree)}>
|
|
|
|
|
- {'I have read and I agree with the '}
|
|
|
|
|
- </Text>
|
|
|
|
|
- <Text style={styles.agreeLink} onPress={() => startPage(PageList.condition)}>Terms of Use</Text>
|
|
|
|
|
- <Text style={styles.agreeText}>{' '}</Text>
|
|
|
|
|
- <Text style={styles.agreeText}>{'and '}</Text>
|
|
|
|
|
- <Text style={styles.agreeLink} onPress={() => startPage(PageList.privacy)}>Privacy Policy</Text>
|
|
|
|
|
- <Text style={styles.agreeText}>.</Text>
|
|
|
|
|
|
|
+ <TextView style={styles.agreeText} onPress={() => this.changeAgree(!this.state.agree)}>
|
|
|
|
|
+ {$t('sign.iHaveReadAndAgree')}
|
|
|
|
|
+ </TextView>
|
|
|
|
|
+ <TextView style={styles.agreeLink} onPress={() => startPage(PageList.condition)}>{$t('drawer.termsOfUse')}</TextView>
|
|
|
|
|
+ <TextView style={styles.agreeText}>{' '}</TextView>
|
|
|
|
|
+ <TextView style={styles.agreeText}>{$t('sign.linkAndLink')}</TextView>
|
|
|
|
|
+ <TextView style={styles.agreeLink} onPress={() => startPage(PageList.privacy)}>{$t('drawer.privacyPolicy')}</TextView>
|
|
|
|
|
+ <TextView style={styles.agreeText}>{$t('sign.linkAndLinkEnd')}</TextView>
|
|
|
</View>
|
|
</View>
|
|
|
</View>
|
|
</View>
|
|
|
<Button
|
|
<Button
|
|
|
style={styles.signButton}
|
|
style={styles.signButton}
|
|
|
elevation={1.5}
|
|
elevation={1.5}
|
|
|
disabled={!this.state.agree}
|
|
disabled={!this.state.agree}
|
|
|
- text='SIGN UP'
|
|
|
|
|
|
|
+ text={$t('sign.btnSignUp')}
|
|
|
fontSize={14}
|
|
fontSize={14}
|
|
|
onClick={() => {
|
|
onClick={() => {
|
|
|
this.onRegister();
|
|
this.onRegister();
|