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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
import React from 'react';
import {
View,
Image,
Keyboard,
} from 'react-native';
import {
RkButton,
RkText,
RkTextInput,
RkAvoidKeyboard,
RkTheme,
RkStyleSheet,
} from 'react-native-ui-kitten';
import { FontAwesome } from '../../assets/icons';
import { GradientButton } from '../../components/gradientButton';
import { scaleVertical } from '../../utils/scale';
import NavigationType from '../../config/navigation/propTypes';
export class LoginV2 extends React.Component {
static propTypes = {
navigation: NavigationType.isRequired,
};
static navigationOptions = {
header: null,
};
onLoginButtonPressed = () => {
this.props.navigation.goBack();
};
onSignUpButtonPressed = () => {
this.props.navigation.navigate('SignUp');
};
getThemeImageSource = (theme) => (
theme.name === 'light' ?
require('../../assets/images/logo.png') : require('../../assets/images/logoDark.png')
);
renderImage = () => (
<Image style={styles.image} source={this.getThemeImageSource(RkTheme.current)} />
);
render = () => (
<RkAvoidKeyboard
style={styles.screen}
onStartShouldSetResponder={() => true}
onResponderRelease={() => Keyboard.dismiss()}>
<View style={styles.header}>
{this.renderImage()}
<RkText rkType='light h1'>React Native</RkText>
<RkText rkType='logo h0'>UI Kitten</RkText>
</View>
<View style={styles.content}>
<View>
<RkTextInput rkType='rounded' placeholder='Username' />
<RkTextInput rkType='rounded' placeholder='Password' secureTextEntry />
<GradientButton
style={styles.save}
rkType='large'
text='LOGIN'
onPress={this.onLoginButtonPressed}
/>
</View>
<View style={styles.buttons}>
<RkButton style={styles.button} rkType='social'>
<RkText rkType='awesome hero'>{FontAwesome.twitter}</RkText>
</RkButton>
<RkButton style={styles.button} rkType='social'>
<RkText rkType='awesome hero'>{FontAwesome.google}</RkText>
</RkButton>
<RkButton style={styles.button} rkType='social'>
<RkText rkType='awesome hero'>{FontAwesome.facebook}</RkText>
</RkButton>
</View>
<View style={styles.footer}>
<View style={styles.textRow}>
<RkText rkType='primary3'>Don’t have an account?</RkText>
<RkButton rkType='clear' onPress={this.onSignUpButtonPressed}>
<RkText rkType='header6'>Sign up now</RkText>
</RkButton>
</View>
</View>
</View>
</RkAvoidKeyboard>
);
}
const styles = RkStyleSheet.create(theme => ({
screen: {
padding: scaleVertical(16),
flex: 1,
justifyContent: 'space-between',
backgroundColor: theme.colors.screen.base,
},
image: {
height: scaleVertical(77),
resizeMode: 'contain',
},
header: {
paddingBottom: scaleVertical(10),
alignItems: 'center',
justifyContent: 'center',
flex: 1,
},
content: {
justifyContent: 'space-between',
},
save: {
marginVertical: 20,
},
buttons: {
flexDirection: 'row',
marginBottom: scaleVertical(24),
marginHorizontal: 24,
justifyContent: 'space-around',
},
textRow: {
flexDirection: 'row',
justifyContent: 'center',
},
button: {
borderColor: theme.colors.border.solid,
},
footer: {},
}));
|