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
128
129
|
import React from 'react';
import {
View,
Image,
Dimensions,
Keyboard,
} from 'react-native';
import {
RkButton,
RkText,
RkTextInput,
RkAvoidKeyboard,
RkStyleSheet,
RkTheme,
} from 'react-native-ui-kitten';
import { FontAwesome } from '../../assets/icons';
import { GradientButton } from '../../components/gradientButton';
import { scaleModerate, scaleVertical } from '../../utils/scale';
import NavigationType from '../../config/navigation/propTypes';
export class LoginV1 extends React.Component {
static propTypes = {
navigation: NavigationType.isRequired,
};
static navigationOptions = {
header: null,
};
getThemeImageSource = (theme) => (
theme.name === 'light' ?
require('../../assets/images/backgroundLoginV1.png') : require('../../assets/images/backgroundLoginV1DarkTheme.png')
);
renderImage = () => {
const screenSize = Dimensions.get('window');
const imageSize = {
width: screenSize.width,
height: screenSize.height - scaleModerate(375, 1),
};
return (
<Image
style={[styles.image, imageSize]}
source={this.getThemeImageSource(RkTheme.current)}
/>
);
};
onLoginButtonPressed = () => {
this.props.navigation.goBack();
};
onSignUpButtonPressed = () => {
this.props.navigation.navigate('SignUp');
};
render = () => (
<RkAvoidKeyboard
onStartShouldSetResponder={() => true}
onResponderRelease={() => Keyboard.dismiss()}
style={styles.screen}>
{this.renderImage()}
<View style={styles.container}>
<View style={styles.buttons}>
<RkButton style={styles.button} rkType='social'>
<RkText rkType='awesome hero accentColor'>{FontAwesome.twitter}</RkText>
</RkButton>
<RkButton style={styles.button} rkType='social'>
<RkText rkType='awesome hero accentColor'>{FontAwesome.google}</RkText>
</RkButton>
<RkButton style={styles.button} rkType='social'>
<RkText rkType='awesome hero accentColor'>{FontAwesome.facebook}</RkText>
</RkButton>
</View>
<RkTextInput rkType='rounded' placeholder='Username' />
<RkTextInput rkType='rounded' placeholder='Password' secureTextEntry />
<GradientButton
style={styles.save}
rkType='large'
onPress={this.onLoginButtonPressed}
text='LOGIN'
/>
<View style={styles.footer}>
<View style={styles.textRow}>
<RkText rkType='primary3'>Don’t have an account?</RkText>
<RkButton rkType='clear'>
<RkText rkType='header6' onPress={this.onSignUpButtonPressed}>Sign up now</RkText>
</RkButton>
</View>
</View>
</View>
</RkAvoidKeyboard>
)
}
const styles = RkStyleSheet.create(theme => ({
screen: {
flex: 1,
alignItems: 'center',
backgroundColor: theme.colors.screen.base,
},
image: {
resizeMode: 'cover',
marginBottom: scaleVertical(10),
},
container: {
paddingHorizontal: 17,
paddingBottom: scaleVertical(22),
alignItems: 'center',
flex: -1,
},
footer: {
justifyContent: 'flex-end',
flex: 1,
},
buttons: {
flexDirection: 'row',
marginBottom: scaleVertical(24),
},
button: {
marginHorizontal: 14,
},
save: {
marginVertical: 9,
},
textRow: {
justifyContent: 'center',
flexDirection: 'row',
},
}));
|