mirror of
https://github.com/pezkuwichain/pwap.git
synced 2026-04-28 21:17:56 +00:00
f2e70a8150
BREAKING: Removed multi-language support (i18n) - will be re-added later Changes: - Removed i18n system (6 language files, LanguageContext) - Expanded WalletScreen, SettingsScreen, SwapScreen with more features - Added KurdistanSun component, HEZ/PEZ token icons - Added EditProfileScreen, WalletSetupScreen - Added button e2e tests (Profile, Settings, Wallet) - Updated plan: honest assessment - 42 nav buttons with mock data - Fixed terminology: Polkadot→Pezkuwi, Substrate→Bizinikiwi Reality check: UI complete with mock data, converting to production one-by-one
199 lines
5.2 KiB
TypeScript
199 lines
5.2 KiB
TypeScript
import React from 'react';
|
||
import {
|
||
View,
|
||
Text,
|
||
TouchableOpacity,
|
||
StyleSheet,
|
||
SafeAreaView,
|
||
ScrollView,
|
||
StatusBar,
|
||
} from 'react-native';
|
||
import { LinearGradient } from 'expo-linear-gradient';
|
||
import { useNavigation } from '@react-navigation/native';
|
||
import { KurdistanColors } from '../theme/colors';
|
||
import type { NavigationProp } from '@react-navigation/native';
|
||
|
||
type RootStackParamList = {
|
||
BeCitizenChoice: undefined;
|
||
BeCitizenApply: undefined;
|
||
BeCitizenClaim: undefined;
|
||
};
|
||
|
||
const BeCitizenChoiceScreen: React.FC = () => {
|
||
const navigation = useNavigation<NavigationProp<RootStackParamList>>();
|
||
|
||
return (
|
||
<SafeAreaView style={styles.container}>
|
||
<StatusBar barStyle="light-content" />
|
||
<LinearGradient
|
||
colors={[KurdistanColors.kesk, KurdistanColors.zer, KurdistanColors.sor]}
|
||
start={{ x: 0, y: 0 }}
|
||
end={{ x: 1, y: 1 }}
|
||
style={styles.gradient}
|
||
>
|
||
<ScrollView
|
||
contentContainerStyle={styles.scrollContent}
|
||
showsVerticalScrollIndicator={false}
|
||
>
|
||
<View style={styles.header}>
|
||
<View style={styles.logoContainer}>
|
||
<Text style={styles.logoText}>🏛️</Text>
|
||
</View>
|
||
<Text style={styles.title}>Be a Citizen</Text>
|
||
<Text style={styles.subtitle}>
|
||
Join the Pezkuwi decentralized nation
|
||
</Text>
|
||
</View>
|
||
|
||
<View style={styles.choiceContainer}>
|
||
<TouchableOpacity
|
||
style={styles.choiceCard}
|
||
onPress={() => navigation.navigate('BeCitizenApply')}
|
||
activeOpacity={0.8}
|
||
>
|
||
<Text style={styles.choiceIcon}>📝</Text>
|
||
<Text style={styles.choiceTitle}>New Citizen</Text>
|
||
<Text style={styles.choiceDescription}>
|
||
Apply for citizenship and join our community
|
||
</Text>
|
||
</TouchableOpacity>
|
||
|
||
<TouchableOpacity
|
||
style={styles.choiceCard}
|
||
onPress={() => navigation.navigate('BeCitizenClaim')}
|
||
activeOpacity={0.8}
|
||
>
|
||
<Text style={styles.choiceIcon}>🔐</Text>
|
||
<Text style={styles.choiceTitle}>Existing Citizen</Text>
|
||
<Text style={styles.choiceDescription}>
|
||
Access your citizenship account
|
||
</Text>
|
||
</TouchableOpacity>
|
||
</View>
|
||
|
||
<View style={styles.infoSection}>
|
||
<Text style={styles.infoTitle}>Citizenship Benefits</Text>
|
||
<View style={styles.benefitItem}>
|
||
<Text style={styles.benefitIcon}>✓</Text>
|
||
<Text style={styles.benefitText}>Voting rights in governance</Text>
|
||
</View>
|
||
<View style={styles.benefitItem}>
|
||
<Text style={styles.benefitIcon}>✓</Text>
|
||
<Text style={styles.benefitText}>Access to exclusive services</Text>
|
||
</View>
|
||
<View style={styles.benefitItem}>
|
||
<Text style={styles.benefitIcon}>✓</Text>
|
||
<Text style={styles.benefitText}>Referral rewards program</Text>
|
||
</View>
|
||
<View style={styles.benefitItem}>
|
||
<Text style={styles.benefitIcon}>✓</Text>
|
||
<Text style={styles.benefitText}>Community recognition</Text>
|
||
</View>
|
||
</View>
|
||
</ScrollView>
|
||
</LinearGradient>
|
||
</SafeAreaView>
|
||
);
|
||
};
|
||
|
||
const styles = StyleSheet.create({
|
||
container: {
|
||
flex: 1,
|
||
backgroundColor: '#F5F5F5',
|
||
},
|
||
gradient: {
|
||
flex: 1,
|
||
},
|
||
scrollContent: {
|
||
flexGrow: 1,
|
||
padding: 20,
|
||
paddingTop: 60,
|
||
},
|
||
header: {
|
||
alignItems: 'center',
|
||
marginBottom: 40,
|
||
},
|
||
logoContainer: {
|
||
width: 100,
|
||
height: 100,
|
||
borderRadius: 50,
|
||
backgroundColor: KurdistanColors.spi,
|
||
justifyContent: 'center',
|
||
alignItems: 'center',
|
||
marginBottom: 20,
|
||
boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.3)',
|
||
elevation: 8,
|
||
},
|
||
logoText: {
|
||
fontSize: 48,
|
||
},
|
||
title: {
|
||
fontSize: 28,
|
||
fontWeight: 'bold',
|
||
color: KurdistanColors.spi,
|
||
marginBottom: 8,
|
||
},
|
||
subtitle: {
|
||
fontSize: 16,
|
||
color: KurdistanColors.spi,
|
||
textAlign: 'center',
|
||
opacity: 0.9,
|
||
},
|
||
choiceContainer: {
|
||
gap: 16,
|
||
marginBottom: 40,
|
||
},
|
||
choiceCard: {
|
||
backgroundColor: KurdistanColors.spi,
|
||
borderRadius: 20,
|
||
padding: 24,
|
||
alignItems: 'center',
|
||
boxShadow: '0px 4px 8px rgba(0, 0, 0, 0.2)',
|
||
elevation: 6,
|
||
},
|
||
choiceIcon: {
|
||
fontSize: 48,
|
||
marginBottom: 16,
|
||
},
|
||
choiceTitle: {
|
||
fontSize: 20,
|
||
fontWeight: 'bold',
|
||
color: KurdistanColors.kesk,
|
||
marginBottom: 8,
|
||
},
|
||
choiceDescription: {
|
||
fontSize: 14,
|
||
color: '#666',
|
||
textAlign: 'center',
|
||
},
|
||
infoSection: {
|
||
backgroundColor: 'rgba(255, 255, 255, 0.2)',
|
||
borderRadius: 16,
|
||
padding: 20,
|
||
},
|
||
infoTitle: {
|
||
fontSize: 18,
|
||
fontWeight: '600',
|
||
color: KurdistanColors.spi,
|
||
marginBottom: 16,
|
||
},
|
||
benefitItem: {
|
||
flexDirection: 'row',
|
||
alignItems: 'center',
|
||
marginBottom: 12,
|
||
},
|
||
benefitIcon: {
|
||
fontSize: 16,
|
||
color: KurdistanColors.spi,
|
||
marginRight: 12,
|
||
fontWeight: 'bold',
|
||
},
|
||
benefitText: {
|
||
fontSize: 14,
|
||
color: KurdistanColors.spi,
|
||
flex: 1,
|
||
},
|
||
});
|
||
|
||
export default BeCitizenChoiceScreen;
|