Add new screens with proper headers and AppsScreen MiniApps Store

- Add 13 new placeholder screens with back button headers:
  Assembly, Bank, Certificates, Events, Help, Justice,
  Music, Polls, Research, University, VPN, WhatsKURD
- Update AppNavigator with all new screen routes
- Redesign AppsScreen with MiniApps Store:
  - Search bar for app discovery
  - Horizontal scrolling categories
  - Build on Pezkuwichain section with submission form
  - Professional submission modal
  - Featured apps section
This commit is contained in:
2026-01-17 01:52:11 +03:00
parent f89fd43855
commit 6065ff5515
14 changed files with 2501 additions and 205 deletions
+151
View File
@@ -0,0 +1,151 @@
import React from 'react';
import {
View,
Text,
StyleSheet,
SafeAreaView,
StatusBar,
TouchableOpacity,
Platform,
} from 'react-native';
import { useNavigation } from '@react-navigation/native';
import { KurdistanColors } from '../theme/colors';
const AssemblyScreen: React.FC = () => {
const navigation = useNavigation();
return (
<SafeAreaView style={styles.container}>
<StatusBar barStyle="dark-content" backgroundColor="#FFFFFF" />
{/* Header */}
<View style={styles.header}>
<TouchableOpacity onPress={() => navigation.goBack()} style={styles.backButton}>
<Text style={styles.backButtonText}> Back</Text>
</TouchableOpacity>
<Text style={styles.headerTitle}>Assembly</Text>
<View style={styles.placeholder} />
</View>
{/* Content */}
<View style={styles.content}>
<Text style={styles.icon}>🏛</Text>
<Text style={styles.title}>Di bin çêkirinê de ye</Text>
<Text style={styles.titleEn}>Under Maintenance</Text>
<View style={styles.messageBox}>
<Text style={styles.message}>
Ev taybetmendî niha di bin çêkirinê de ye. Ji kerema xwe paşê vegerin.
</Text>
<Text style={styles.messageEn}>
This feature is currently under maintenance. Please check back later.
</Text>
</View>
<View style={styles.featureList}>
<Text style={styles.featureTitle}>Planned Features:</Text>
<Text style={styles.featureItem}> Digital Kurdistan Parliament</Text>
<Text style={styles.featureItem}> Legislative proposals</Text>
<Text style={styles.featureItem}> Assembly voting sessions</Text>
<Text style={styles.featureItem}> Public deliberations</Text>
</View>
</View>
</SafeAreaView>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#F5F5F5',
paddingTop: Platform.OS === 'android' ? StatusBar.currentHeight : 0,
},
header: {
flexDirection: 'row',
justifyContent: 'space-between',
alignItems: 'center',
paddingHorizontal: 16,
paddingVertical: 12,
backgroundColor: '#FFFFFF',
borderBottomWidth: 1,
borderBottomColor: '#E5E5E5',
},
backButton: {
paddingVertical: 4,
paddingRight: 8,
},
backButtonText: {
fontSize: 16,
color: KurdistanColors.kesk,
fontWeight: '500',
},
headerTitle: {
fontSize: 18,
fontWeight: 'bold',
color: KurdistanColors.reş,
},
placeholder: {
width: 60,
},
content: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
paddingHorizontal: 32,
},
icon: {
fontSize: 80,
marginBottom: 24,
},
title: {
fontSize: 22,
fontWeight: 'bold',
color: KurdistanColors.reş,
textAlign: 'center',
marginBottom: 4,
},
titleEn: {
fontSize: 18,
color: '#666',
textAlign: 'center',
marginBottom: 24,
},
messageBox: {
backgroundColor: '#FFFFFF',
borderRadius: 16,
padding: 20,
marginBottom: 24,
width: '100%',
},
message: {
fontSize: 15,
color: '#444',
textAlign: 'center',
lineHeight: 24,
marginBottom: 12,
},
messageEn: {
fontSize: 14,
color: '#888',
textAlign: 'center',
lineHeight: 22,
},
featureList: {
backgroundColor: '#FFFFFF',
borderRadius: 16,
padding: 20,
width: '100%',
},
featureTitle: {
fontSize: 16,
fontWeight: 'bold',
color: KurdistanColors.kesk,
marginBottom: 12,
},
featureItem: {
fontSize: 14,
color: '#555',
marginBottom: 8,
lineHeight: 20,
},
});
export default AssemblyScreen;