SignUp
import React, { useState } from 'react';
import { View, StyleSheet, KeyboardAvoidingView, Platform, TouchableOpacity, Text } from 'react-native';
import { TextInput, Button } from 'react-native-paper';
import { LinearGradient } from 'expo-linear-gradient';
export default function SignupScreen() {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [confirmPassword, setConfirmPassword] = useState('');
const [showPassword, setShowPassword] = useState(false);
return (
<LinearGradient
colors={['#89f7fe', '#66a6ff']}
style={styles.container}
>
<KeyboardAvoidingView
behavior={Platform.OS === "ios" ? "padding" : "height"}
style={styles.inner}
>
<Text style={styles.title}>Create Account</Text>
<TextInput
label="Email"
value={email}
onChangeText={setEmail}
mode="flat"
style={styles.input}
left={<TextInput.Icon icon="email" />}
/>
<TextInput
label="Password"
value={password}
onChangeText={setPassword}
mode="flat"
secureTextEntry={!showPassword}
style={styles.input}
left={<TextInput.Icon icon="lock" />}
right={
<TextInput.Icon
icon={showPassword ? "eye-off" : "eye"}
onPress={() => setShowPassword(!showPassword)}
/>
}
/>
<TextInput
label="Confirm Password"
value={confirmPassword}
onChangeText={setConfirmPassword}
mode="flat"
secureTextEntry={!showPassword}
style={styles.input}
left={<TextInput.Icon icon="lock-check" />}
/>
<Button
mode="contained"
onPress={() => console.log('Signup pressed')}
style={styles.button}
contentStyle={{ paddingVertical: 8 }}
>
Sign Up
</Button>
<View style={styles.loginLink}>
<Text>Already have an account? </Text>
<TouchableOpacity onPress={() => console.log('Navigate to Login')}>
<Text style={{ color: '#007bff' }}>Login</Text>
</TouchableOpacity>
</View>
</KeyboardAvoidingView>
</LinearGradient>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
},
inner: {
flex: 1,
padding: 24,
justifyContent: 'center',
},
title: {
fontSize: 32,
fontWeight: 'bold',
color: '#fff',
marginBottom: 24,
alignSelf: 'center',
},
input: {
marginBottom: 16,
backgroundColor: 'transparent',
},
button: {
marginTop: 12,
borderRadius: 8,
backgroundColor: '#4e54c8',
},
loginLink: {
flexDirection: 'row',
justifyContent: 'center',
marginTop: 16,
},
});
See More