native_convex_CRM/app/features/addLead/addLead.screen.tsx
2026-07-15 21:36:48 +05:30

183 lines
5.4 KiB
TypeScript

import React, { useState } from 'react';
import {
Text,
View,
TextInput,
TouchableOpacity,
ScrollView,
KeyboardAvoidingView,
Platform,
Alert,
} from 'react-native';
import Icon from 'react-native-vector-icons/Ionicons';
import { getStyles } from './addLead.styles';
import { useTheme } from '../../theme';
export const AddLeadScreen = () => {
const { theme: colors } = useTheme();
const styles = getStyles(colors);
const [name, setName] = useState('');
const [company, setCompany] = useState('');
const [email, setEmail] = useState('');
const [phone, setPhone] = useState('');
const [value, setValue] = useState('');
const handleSubmit = () => {
if (!name.trim() || !company.trim() || !email.trim()) {
Alert.alert('Error', 'Please fill in Name, Company, and Email fields.');
return;
}
Alert.alert(
'Success',
`Lead "${name}" for "${company}" has been created!`,
[
{
text: 'OK',
onPress: () => {
setName('');
setCompany('');
setEmail('');
setPhone('');
setValue('');
},
},
],
);
};
return (
<KeyboardAvoidingView
behavior={Platform.OS === 'ios' ? 'padding' : 'height'}
style={styles.container}
>
<ScrollView
contentContainerStyle={styles.scrollContainer}
keyboardShouldPersistTaps="handled"
>
<View style={styles.formCard}>
<Text style={styles.sectionHeader}>Lead Information</Text>
{/* Name Field */}
<View style={styles.inputContainer}>
<Text style={styles.label}>Lead Name *</Text>
<View style={styles.inputWrapper}>
<Icon
name="person-outline"
size={18}
color={colors.textSecondary}
style={styles.inputIcon}
/>
<TextInput
style={styles.input}
placeholder="John Doe"
placeholderTextColor={colors.textMuted}
value={name}
onChangeText={setName}
/>
</View>
</View>
{/* Company Field */}
<View style={styles.inputContainer}>
<Text style={styles.label}>Company *</Text>
<View style={styles.inputWrapper}>
<Icon
name="business-outline"
size={18}
color={colors.textSecondary}
style={styles.inputIcon}
/>
<TextInput
style={styles.input}
placeholder="Acme Corp"
placeholderTextColor={colors.textMuted}
value={company}
onChangeText={setCompany}
/>
</View>
</View>
{/* Email Field */}
<View style={styles.inputContainer}>
<Text style={styles.label}>Email Address *</Text>
<View style={styles.inputWrapper}>
<Icon
name="mail-outline"
size={18}
color={colors.textSecondary}
style={styles.inputIcon}
/>
<TextInput
style={styles.input}
placeholder="johndoe@acme.com"
placeholderTextColor={colors.textMuted}
keyboardType="email-address"
autoCapitalize="none"
value={email}
onChangeText={setEmail}
/>
</View>
</View>
{/* Phone Field */}
<View style={styles.inputContainer}>
<Text style={styles.label}>Phone Number</Text>
<View style={styles.inputWrapper}>
<Icon
name="call-outline"
size={18}
color={colors.textSecondary}
style={styles.inputIcon}
/>
<TextInput
style={styles.input}
placeholder="+1 (555) 000-0000"
placeholderTextColor={colors.textMuted}
keyboardType="phone-pad"
value={phone}
onChangeText={setPhone}
/>
</View>
</View>
{/* Deal Value Field */}
<View style={styles.inputContainer}>
<Text style={styles.label}>Estimated Value ($)</Text>
<View style={styles.inputWrapper}>
<Icon
name="cash-outline"
size={18}
color={colors.textSecondary}
style={styles.inputIcon}
/>
<TextInput
style={styles.input}
placeholder="5,000"
placeholderTextColor={colors.textMuted}
keyboardType="numeric"
value={value}
onChangeText={setValue}
/>
</View>
</View>
<TouchableOpacity
style={styles.submitButton}
activeOpacity={0.8}
onPress={handleSubmit}
>
<Icon
name="checkmark"
size={20}
color="#FFFFFF"
style={styles.buttonIcon}
/>
<Text style={styles.submitButtonText}>Create New Lead</Text>
</TouchableOpacity>
</View>
</ScrollView>
</KeyboardAvoidingView>
);
};