diff --git a/mobile/src/navigation/AppNavigator.tsx b/mobile/src/navigation/AppNavigator.tsx index 780812b5..177d9507 100644 --- a/mobile/src/navigation/AppNavigator.tsx +++ b/mobile/src/navigation/AppNavigator.tsx @@ -31,6 +31,18 @@ import IdentityScreen from '../screens/IdentityScreen'; import KurdMediaScreen from '../screens/KurdMediaScreen'; import PerwerdeScreen from '../screens/PerwerdeScreen'; import B2BScreen from '../screens/B2BScreen'; +import BankScreen from '../screens/BankScreen'; +import AssemblyScreen from '../screens/AssemblyScreen'; +import JusticeScreen from '../screens/JusticeScreen'; +import PollsScreen from '../screens/PollsScreen'; +import WhatsKURDScreen from '../screens/WhatsKURDScreen'; +import EventsScreen from '../screens/EventsScreen'; +import HelpScreen from '../screens/HelpScreen'; +import MusicScreen from '../screens/MusicScreen'; +import VPNScreen from '../screens/VPNScreen'; +import UniversityScreen from '../screens/UniversityScreen'; +import CertificatesScreen from '../screens/CertificatesScreen'; +import ResearchScreen from '../screens/ResearchScreen'; export type RootStackParamList = { Welcome: undefined; @@ -57,6 +69,18 @@ export type RootStackParamList = { KurdMedia: undefined; Perwerde: undefined; B2B: undefined; + Bank: undefined; + Assembly: undefined; + Justice: undefined; + Polls: undefined; + WhatsKURD: undefined; + Events: undefined; + Help: undefined; + Music: undefined; + VPN: undefined; + University: undefined; + Certificates: undefined; + Research: undefined; }; const Stack = createStackNavigator(); @@ -239,6 +263,66 @@ const AppNavigator: React.FC = () => { component={B2BScreen} options={{ headerShown: false }} /> + + + + + + + + + + + + )} diff --git a/mobile/src/screens/AppsScreen.tsx b/mobile/src/screens/AppsScreen.tsx index 729d1991..60847473 100644 --- a/mobile/src/screens/AppsScreen.tsx +++ b/mobile/src/screens/AppsScreen.tsx @@ -1,4 +1,4 @@ -import React, { useState, useMemo } from 'react'; +import React, { useState } from 'react'; import { View, Text, @@ -7,191 +7,340 @@ import { ScrollView, TouchableOpacity, TextInput, - Image, + Modal, Alert, - Dimensions, - FlatList, StatusBar, Platform, } from 'react-native'; +import { useNavigation } from '@react-navigation/native'; import { KurdistanColors } from '../theme/colors'; -// Import Images (Reusing existing assets) -import qaEducation from '../../../shared/images/quick-actions/qa_education.png'; -import qaExchange from '../../../shared/images/quick-actions/qa_exchange.png'; -import qaForum from '../../../shared/images/quick-actions/qa_forum.jpg'; -import qaGovernance from '../../../shared/images/quick-actions/qa_governance.jpg'; -import qaTrading from '../../../shared/images/quick-actions/qa_trading.jpg'; -import qaB2B from '../../../shared/images/quick-actions/qa_b2b.png'; -import qaBank from '../../../shared/images/quick-actions/qa_bank.png'; -import qaKurdMedia from '../../../shared/images/quick-actions/qa_kurdmedia.jpg'; -import qaUniversity from '../../../shared/images/quick-actions/qa_university.png'; - -const { width } = Dimensions.get('window'); -const COLUMN_COUNT = 3; -const ITEM_WIDTH = (width - 48) / COLUMN_COUNT; // 48 = padding (16*2) + gaps - -type CategoryType = 'All' | 'Finance' | 'Governance' | 'Social' | 'Education'; +type CategoryType = 'All' | 'Finance' | 'Governance' | 'Social' | 'Education' | 'Health' | 'Entertainment' | 'Tools' | 'Gaming'; interface MiniApp { id: string; name: string; - icon: any; - isEmoji: boolean; - category: CategoryType; + icon: string; + developer: string; + category: Exclude; description: string; + status: 'live' | 'coming_soon'; } -const APPS_DATA: MiniApp[] = [ - // FINANCE - { id: 'wallet', name: 'Wallet', icon: '👛', isEmoji: true, category: 'Finance', description: 'Crypto Wallet' }, - { id: 'bank', name: 'Bank', icon: qaBank, isEmoji: false, category: 'Finance', description: 'Digital Banking' }, - { id: 'exchange', name: 'Exchange', icon: qaExchange, isEmoji: false, category: 'Finance', description: 'Swap & Trade' }, - { id: 'p2p', name: 'P2P', icon: qaTrading, isEmoji: false, category: 'Finance', description: 'Peer to Peer' }, - { id: 'b2b', name: 'B2B', icon: qaB2B, isEmoji: false, category: 'Finance', description: 'Business Market' }, - { id: 'tax', name: 'Tax', icon: '📊', isEmoji: true, category: 'Finance', description: 'Tax & Zekat' }, - { id: 'launchpad', name: 'Launchpad', icon: '🚀', isEmoji: true, category: 'Finance', description: 'Startup Funding' }, - { id: 'cards', name: 'Cards', icon: '💳', isEmoji: true, category: 'Finance', description: 'Pezkuwi Cards' }, +const FEATURED_APPS: MiniApp[] = [ + { + id: 'pezkuwi-b2b-ai', + name: 'PezkuwiB2B AI', + icon: '🤖', + developer: 'Dijital Kurdistan Tech Inst', + category: 'Finance', + description: 'B2B marketplace specialized AI', + status: 'coming_soon', + }, + { + id: 'kurd-health', + name: 'KurdHealth', + icon: '🏥', + developer: 'Health Ministry', + category: 'Health', + description: 'Digital health records & telemedicine', + status: 'coming_soon', + }, + { + id: 'kurd-games', + name: 'KurdGames', + icon: '🎮', + developer: 'Dijital Kurdistan Tech Inst', + category: 'Gaming', + description: 'Play-to-earn Kurdish games', + status: 'coming_soon', + }, +]; - // GOVERNANCE - { id: 'president', name: 'President', icon: '👑', isEmoji: true, category: 'Governance', description: 'Presidency Office' }, - { id: 'assembly', name: 'Assembly', icon: qaGovernance, isEmoji: false, category: 'Governance', description: 'National Assembly' }, - { id: 'vote', name: 'Vote', icon: '🗳️', isEmoji: true, category: 'Governance', description: 'Decentralized Voting' }, - { id: 'validators', name: 'Validators', icon: '🛡️', isEmoji: true, category: 'Governance', description: 'Network Security' }, - { id: 'justice', name: 'Justice', icon: '⚖️', isEmoji: true, category: 'Governance', description: 'Digital Court' }, - { id: 'proposals', name: 'Proposals', icon: '📜', isEmoji: true, category: 'Governance', description: 'Law Proposals' }, - { id: 'polls', name: 'Polls', icon: '📊', isEmoji: true, category: 'Governance', description: 'Public Surveys' }, - { id: 'identity', name: 'Identity', icon: '🆔', isEmoji: true, category: 'Governance', description: 'Digital ID' }, - - // SOCIAL - { id: 'whatskurd', name: 'whatsKURD', icon: '💬', isEmoji: true, category: 'Social', description: 'Messenger' }, - { id: 'forum', name: 'Forum', icon: qaForum, isEmoji: false, category: 'Social', description: 'Community Talk' }, - { id: 'kurdmedia', name: 'KurdMedia', icon: qaKurdMedia, isEmoji: false, category: 'Social', description: 'News & Media' }, - { id: 'events', name: 'Events', icon: '🎭', isEmoji: true, category: 'Social', description: 'Çalakî' }, - { id: 'help', name: 'Help', icon: '🤝', isEmoji: true, category: 'Social', description: 'Harîkarî' }, - { id: 'music', name: 'Music', icon: '🎵', isEmoji: true, category: 'Social', description: 'Kurdish Stream' }, - { id: 'vpn', name: 'VPN', icon: '🛡️', isEmoji: true, category: 'Social', description: 'Secure Net' }, - { id: 'referral', name: 'Referral', icon: '👥', isEmoji: true, category: 'Social', description: 'Invite Friends' }, - - // EDUCATION - { id: 'university', name: 'University', icon: qaUniversity, isEmoji: false, category: 'Education', description: 'Higher Ed' }, - { id: 'perwerde', name: 'Perwerde', icon: qaEducation, isEmoji: false, category: 'Education', description: 'Academy' }, - { id: 'library', name: 'Library', icon: '📚', isEmoji: true, category: 'Education', description: 'Pirtûkxane' }, - { id: 'language', name: 'Language', icon: '🗣️', isEmoji: true, category: 'Education', description: 'Ziman / Learn' }, - { id: 'kids', name: 'Kids', icon: '🧸', isEmoji: true, category: 'Education', description: 'Zarok TV' }, - { id: 'certificates', name: 'Certificates', icon: '🏆', isEmoji: true, category: 'Education', description: 'NFT Diplomas' }, - { id: 'research', name: 'Research', icon: '🔬', isEmoji: true, category: 'Education', description: 'Scientific Data' }, - { id: 'history', name: 'History', icon: '🏺', isEmoji: true, category: 'Education', description: 'Kurdish History' }, +const CATEGORIES: { name: CategoryType; icon: string }[] = [ + { name: 'All', icon: '📱' }, + { name: 'Finance', icon: '💰' }, + { name: 'Governance', icon: '🏛️' }, + { name: 'Social', icon: '💬' }, + { name: 'Education', icon: '📚' }, + { name: 'Health', icon: '🏥' }, + { name: 'Entertainment', icon: '🎬' }, + { name: 'Tools', icon: '🛠️' }, + { name: 'Gaming', icon: '🎮' }, ]; const AppsScreen: React.FC = () => { + const navigation = useNavigation(); const [searchQuery, setSearchQuery] = useState(''); const [selectedCategory, setSelectedCategory] = useState('All'); + const [showSubmitModal, setShowSubmitModal] = useState(false); + const [appName, setAppName] = useState(''); + const [appDescription, setAppDescription] = useState(''); + const [contactEmail, setContactEmail] = useState(''); + const [contactName, setContactName] = useState(''); - const filteredApps = useMemo(() => { - return APPS_DATA.filter(app => { - const matchesSearch = app.name.toLowerCase().includes(searchQuery.toLowerCase()); - const matchesCategory = selectedCategory === 'All' || app.category === selectedCategory; - return matchesSearch && matchesCategory; - }); - }, [searchQuery, selectedCategory]); + const filteredApps = FEATURED_APPS.filter(app => { + const matchesSearch = app.name.toLowerCase().includes(searchQuery.toLowerCase()) || + app.description.toLowerCase().includes(searchQuery.toLowerCase()); + const matchesCategory = selectedCategory === 'All' || app.category === selectedCategory; + return matchesSearch && matchesCategory; + }); + + const handleConnectWallet = () => { + navigation.navigate('Wallet'); + }; + + const handleSubmitApp = () => { + if (!appName.trim() || !appDescription.trim() || !contactEmail.trim() || !contactName.trim()) { + Alert.alert('Missing Information', 'Please fill in all fields to submit your mini app.'); + return; + } + + setShowSubmitModal(false); + setAppName(''); + setAppDescription(''); + setContactEmail(''); + setContactName(''); - const handleAppPress = (appName: string) => { Alert.alert( - 'Di bin çêkirinê de ye / Under Maintenance', - `The "${appName}" mini-app is currently under development. Please check back later.\n\nSpas ji bo sebra we.`, - [{ text: 'Temam (OK)' }] + 'Application Submitted ✅', + 'Dijital Kurdistan Tech Inst officials will contact you as soon as possible.\n\nSpas bo xebata te!', + [{ text: 'Temam' }] ); }; - const renderCategoryChip = (category: CategoryType) => ( + const renderMiniAppCard = (app: MiniApp) => ( setSelectedCategory(category)} - > - - {category} - - - ); - - const renderAppItem = ({ item }: { item: MiniApp }) => ( - handleAppPress(item.name)} + key={app.id} + style={styles.miniAppCard} activeOpacity={0.7} + onPress={() => Alert.alert(app.name, `${app.description}\n\nby ${app.developer}\n\nStatus: Coming Soon`)} > - - {item.isEmoji ? ( - {item.icon} - ) : ( - - )} + + {app.icon} + + + + {app.name} + {app.status === 'coming_soon' && ( + + Coming Soon + + )} + + {app.description} + by {app.developer} - {item.name} - {item.description} ); return ( - - - Apps Store - Discover Pezkuwi Ecosystem - - {/* Search Bar */} - - - 🔍 - - {searchQuery.length > 0 && ( - setSearchQuery('')}> - + + {/* Header */} + + + + MiniApps Store + Discover & Build on Pezkuwichain + + + Connect + + + + {/* Search Bar */} + + + 🔍 + + {searchQuery.length > 0 && ( + setSearchQuery('')}> + + + )} + + + + {/* Categories - Horizontal Scroll */} + + + {CATEGORIES.map((cat) => ( + setSelectedCategory(cat.name)} + > + {cat.icon} + + {cat.name} + + + ))} + + + + {/* Build on Pezkuwichain Section */} + + + + Build on Pezkuwichain + Submit your mini app to the ecosystem + + setShowSubmitModal(true)} + activeOpacity={0.8} + > + + + + + + + {/* Featured Apps */} + + + {selectedCategory === 'All' ? 'Featured Mini Apps' : `${selectedCategory} Apps`} + + {filteredApps.length > 0 ? ( + filteredApps.map(renderMiniAppCard) + ) : ( + + 🔍 + No apps found in this category yet + Be the first to submit one! + )} - - {/* Category Filter */} - - - {['All', 'Finance', 'Governance', 'Social', 'Education'].map((cat) => - renderCategoryChip(cat as CategoryType) - )} - - + {/* Footer Note */} + + 💡 + + Access all other apps from Home screen + + + - {/* Apps Grid */} - item.id} - numColumns={COLUMN_COUNT} - contentContainerStyle={styles.listContent} - columnWrapperStyle={styles.columnWrapper} - showsVerticalScrollIndicator={false} - ListEmptyComponent={ - - No apps found matching "{searchQuery}" + {/* Submit App Modal */} + setShowSubmitModal(false)} + > + + + + + Submit Your Mini App + Join the Pezkuwichain ecosystem + + setShowSubmitModal(false)} + > + + + + + + + App Name * + + + + + Description * + + + + + Your Name * + + + + + Contact Email * + + + + + 📧 + + Review Process + + Your submission will be reviewed by Dijital Kurdistan Tech Inst. We'll contact you within 5-7 business days. + + + + + + + setShowSubmitModal(false)} + > + Cancel + + + Submit Application + + - } - /> + + ); }; @@ -200,132 +349,375 @@ const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#F5F5F5', + paddingTop: Platform.OS === 'android' ? StatusBar.currentHeight : 0, }, header: { paddingHorizontal: 20, - paddingTop: 20, - paddingBottom: 10, + paddingTop: 16, + paddingBottom: 12, + }, + headerTop: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'flex-start', }, headerTitle: { - fontSize: 28, + fontSize: 26, fontWeight: 'bold', color: KurdistanColors.reş, }, headerSubtitle: { - fontSize: 14, + fontSize: 13, color: '#666', - marginTop: 4, + marginTop: 2, + }, + connectButton: { + backgroundColor: KurdistanColors.kesk, + paddingHorizontal: 16, + paddingVertical: 8, + borderRadius: 20, + }, + connectButtonText: { + color: KurdistanColors.spi, + fontSize: 13, + fontWeight: '600', }, searchContainer: { paddingHorizontal: 20, - marginBottom: 16, + marginBottom: 12, }, searchBar: { flexDirection: 'row', alignItems: 'center', backgroundColor: KurdistanColors.spi, borderRadius: 12, - paddingHorizontal: 12, - height: 48, - boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)', + paddingHorizontal: 14, + height: 46, + shadowColor: '#000', + shadowOffset: { width: 0, height: 1 }, + shadowOpacity: 0.05, + shadowRadius: 3, elevation: 2, }, searchIcon: { - fontSize: 18, - marginRight: 8, + fontSize: 16, + marginRight: 10, opacity: 0.5, }, searchInput: { flex: 1, - fontSize: 16, + fontSize: 15, color: '#333', - height: '100%', }, clearIcon: { - fontSize: 16, + fontSize: 14, color: '#999', padding: 4, }, categoriesContainer: { - marginBottom: 10, + marginBottom: 16, }, categoriesContent: { paddingHorizontal: 20, + gap: 8, }, categoryChip: { - paddingHorizontal: 16, + flexDirection: 'row', + alignItems: 'center', + paddingHorizontal: 14, paddingVertical: 8, borderRadius: 20, - backgroundColor: '#E0E0E0', + backgroundColor: KurdistanColors.spi, marginRight: 8, + shadowColor: '#000', + shadowOffset: { width: 0, height: 1 }, + shadowOpacity: 0.05, + shadowRadius: 2, + elevation: 1, }, categoryChipActive: { backgroundColor: KurdistanColors.kesk, }, - categoryText: { + categoryEmoji: { fontSize: 14, + marginRight: 6, + }, + categoryText: { + fontSize: 13, fontWeight: '600', color: '#555', }, categoryTextActive: { color: KurdistanColors.spi, }, - listContent: { - paddingHorizontal: 16, - paddingBottom: 40, - paddingTop: 8, - }, - columnWrapper: { - justifyContent: 'flex-start', - gap: 8, - }, - appCard: { - width: ITEM_WIDTH, - backgroundColor: KurdistanColors.spi, + buildSection: { + marginHorizontal: 20, + marginBottom: 20, + backgroundColor: KurdistanColors.kesk, borderRadius: 16, - padding: 12, - marginBottom: 12, - alignItems: 'center', - boxShadow: '0px 2px 4px rgba(0, 0, 0, 0.05)', - elevation: 2, + padding: 18, + shadowColor: KurdistanColors.kesk, + shadowOffset: { width: 0, height: 4 }, + shadowOpacity: 0.25, + shadowRadius: 8, + elevation: 5, }, - iconContainer: { - width: 48, - height: 48, - borderRadius: 12, - backgroundColor: '#F8F9FA', + buildContent: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'space-between', + }, + buildTextContainer: { + flex: 1, + }, + buildTitle: { + fontSize: 17, + fontWeight: 'bold', + color: KurdistanColors.spi, + marginBottom: 3, + }, + buildSubtitle: { + fontSize: 12, + color: 'rgba(255,255,255,0.85)', + }, + addButton: { + width: 44, + height: 44, + borderRadius: 22, + backgroundColor: KurdistanColors.spi, justifyContent: 'center', alignItems: 'center', - marginBottom: 8, + marginLeft: 12, }, - imageIcon: { - width: 32, - height: 32, - borderRadius: 8, + addButtonText: { + fontSize: 26, + fontWeight: '600', + color: KurdistanColors.kesk, + marginTop: -2, }, - emojiIcon: { - fontSize: 24, + section: { + paddingHorizontal: 20, + marginBottom: 16, }, - appName: { - fontSize: 13, - fontWeight: '700', - color: '#333', - marginBottom: 2, - textAlign: 'center', + sectionTitle: { + fontSize: 17, + fontWeight: 'bold', + color: KurdistanColors.reş, + marginBottom: 12, }, - appDesc: { - fontSize: 10, - color: '#888', - textAlign: 'center', + miniAppCard: { + flexDirection: 'row', + backgroundColor: KurdistanColors.spi, + borderRadius: 14, + padding: 14, + marginBottom: 10, + shadowColor: '#000', + shadowOffset: { width: 0, height: 1 }, + shadowOpacity: 0.05, + shadowRadius: 3, + elevation: 2, }, - emptyContainer: { - padding: 40, + miniAppIconContainer: { + width: 52, + height: 52, + borderRadius: 13, + backgroundColor: '#F0F8F0', + justifyContent: 'center', alignItems: 'center', + marginRight: 12, + }, + miniAppIcon: { + fontSize: 26, + }, + miniAppInfo: { + flex: 1, + justifyContent: 'center', + }, + miniAppHeader: { + flexDirection: 'row', + alignItems: 'center', + marginBottom: 3, + }, + miniAppName: { + fontSize: 15, + fontWeight: 'bold', + color: KurdistanColors.reş, + }, + comingSoonBadge: { + backgroundColor: KurdistanColors.zer, + paddingHorizontal: 7, + paddingVertical: 2, + borderRadius: 6, + marginLeft: 8, + }, + comingSoonText: { + fontSize: 9, + fontWeight: '600', + color: KurdistanColors.reş, + }, + miniAppDescription: { + fontSize: 12, + color: '#666', + marginBottom: 2, + }, + miniAppDeveloper: { + fontSize: 10, + color: '#999', + }, + emptyState: { + alignItems: 'center', + paddingVertical: 32, + backgroundColor: KurdistanColors.spi, + borderRadius: 14, + }, + emptyIcon: { + fontSize: 40, + marginBottom: 12, + opacity: 0.5, }, emptyText: { + fontSize: 14, + color: '#666', + marginBottom: 4, + }, + emptySubtext: { + fontSize: 12, color: '#999', - fontSize: 16, + }, + footerNote: { + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'center', + paddingVertical: 16, + marginBottom: 16, + }, + footerIcon: { + fontSize: 14, + marginRight: 6, + }, + footerText: { + fontSize: 12, + color: '#888', + }, + modalOverlay: { + flex: 1, + backgroundColor: 'rgba(0,0,0,0.5)', + justifyContent: 'flex-end', + }, + modalContent: { + backgroundColor: KurdistanColors.spi, + borderTopLeftRadius: 24, + borderTopRightRadius: 24, + maxHeight: '90%', + }, + modalHeader: { + flexDirection: 'row', + justifyContent: 'space-between', + alignItems: 'flex-start', + padding: 20, + borderBottomWidth: 1, + borderBottomColor: '#F0F0F0', + }, + modalTitle: { + fontSize: 20, + fontWeight: 'bold', + color: KurdistanColors.reş, + }, + modalSubtitle: { + fontSize: 13, + color: '#666', + marginTop: 2, + }, + modalCloseButton: { + padding: 4, + }, + modalClose: { + fontSize: 20, + color: '#999', + }, + modalBody: { + padding: 20, + maxHeight: 400, + }, + inputGroup: { + marginBottom: 16, + }, + inputLabel: { + fontSize: 13, + fontWeight: '600', + color: KurdistanColors.reş, + marginBottom: 6, + }, + input: { + backgroundColor: '#F5F5F5', + borderRadius: 10, + padding: 12, + fontSize: 14, + color: KurdistanColors.reş, + borderWidth: 1, + borderColor: '#E8E8E8', + }, + textArea: { + height: 90, + paddingTop: 12, + }, + infoBox: { + flexDirection: 'row', + backgroundColor: '#F0F8F0', + borderRadius: 12, + padding: 14, + marginTop: 8, + }, + infoIcon: { + fontSize: 20, + marginRight: 12, + }, + infoTextContainer: { + flex: 1, + }, + infoTitle: { + fontSize: 13, + fontWeight: '600', + color: KurdistanColors.kesk, + marginBottom: 4, + }, + infoText: { + fontSize: 12, + color: '#666', + lineHeight: 18, + }, + modalFooter: { + flexDirection: 'row', + padding: 20, + paddingTop: 12, + borderTopWidth: 1, + borderTopColor: '#F0F0F0', + gap: 12, + }, + cancelButton: { + flex: 1, + padding: 14, + borderRadius: 12, + backgroundColor: '#F0F0F0', + alignItems: 'center', + }, + cancelButtonText: { + fontSize: 15, + fontWeight: '600', + color: '#666', + }, + submitButton: { + flex: 2, + padding: 14, + borderRadius: 12, + backgroundColor: KurdistanColors.kesk, + alignItems: 'center', + }, + submitButtonText: { + fontSize: 15, + fontWeight: '600', + color: KurdistanColors.spi, }, }); -export default AppsScreen; \ No newline at end of file +export default AppsScreen; diff --git a/mobile/src/screens/AssemblyScreen.tsx b/mobile/src/screens/AssemblyScreen.tsx new file mode 100644 index 00000000..f8671012 --- /dev/null +++ b/mobile/src/screens/AssemblyScreen.tsx @@ -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 ( + + + + {/* Header */} + + navigation.goBack()} style={styles.backButton}> + ← Back + + Assembly + + + + {/* Content */} + + 🏛️ + Di bin çêkirinê de ye + Under Maintenance + + + Ev taybetmendî niha di bin çêkirinê de ye. Ji kerema xwe paşê vegerin. + + + This feature is currently under maintenance. Please check back later. + + + + Planned Features: + • Digital Kurdistan Parliament + • Legislative proposals + • Assembly voting sessions + • Public deliberations + + + + ); +}; + +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; diff --git a/mobile/src/screens/BankScreen.tsx b/mobile/src/screens/BankScreen.tsx new file mode 100644 index 00000000..83836079 --- /dev/null +++ b/mobile/src/screens/BankScreen.tsx @@ -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 BankScreen: React.FC = () => { + const navigation = useNavigation(); + + return ( + + + + {/* Header */} + + navigation.goBack()} style={styles.backButton}> + ← Back + + Bank + + + + {/* Content */} + + 🏦 + Li benda damezrandinê + Awaiting Establishment + + + Duaye helbejartina hukumeta Komara Dijitaliya Kurdistanê yên beta damezrandin. + + + Awaiting the beta elections and establishment of the Digital Kurdistan Republic government. + + + + Planned Features: + • Digital savings accounts + • Decentralized lending + • Community treasury + • Cross-border payments + + + + ); +}; + +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 BankScreen; diff --git a/mobile/src/screens/CertificatesScreen.tsx b/mobile/src/screens/CertificatesScreen.tsx new file mode 100644 index 00000000..760a272d --- /dev/null +++ b/mobile/src/screens/CertificatesScreen.tsx @@ -0,0 +1,152 @@ +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 CertificatesScreen: React.FC = () => { + const navigation = useNavigation(); + + return ( + + + + {/* Header */} + + navigation.goBack()} style={styles.backButton}> + ← Back + + Certificates + + + + {/* Content */} + + 🏆 + Li benda Wezareta Perwerdê + Awaiting Ministry of Education + + + Duaye damezrandina Wezareta Perwerdê yên aktîv bibin. + + + Awaiting the establishment of an active Ministry of Education. + + + + Planned Features: + • Blockchain-verified certificates + • Professional credentials + • Course completion badges + • Skill verification NFTs + • Employment verification + + + + ); +}; + +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 CertificatesScreen; diff --git a/mobile/src/screens/EventsScreen.tsx b/mobile/src/screens/EventsScreen.tsx new file mode 100644 index 00000000..3280675c --- /dev/null +++ b/mobile/src/screens/EventsScreen.tsx @@ -0,0 +1,152 @@ +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 EventsScreen: React.FC = () => { + const navigation = useNavigation(); + + return ( + + + + {/* Header */} + + navigation.goBack()} style={styles.backButton}> + ← Back + + Events + + + + {/* Content */} + + 🎭 + Coming Soon + Çalakî / Events + + + Çalakî / Events will be available soon! + + + Discover and participate in Kurdish community events. + + + + Planned Features: + • Cultural events calendar + • NFT-based event tickets + • Virtual gatherings + • Community meetups + • Newroz celebrations + + + + ); +}; + +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 EventsScreen; diff --git a/mobile/src/screens/HelpScreen.tsx b/mobile/src/screens/HelpScreen.tsx new file mode 100644 index 00000000..ca5c071e --- /dev/null +++ b/mobile/src/screens/HelpScreen.tsx @@ -0,0 +1,152 @@ +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 HelpScreen: React.FC = () => { + const navigation = useNavigation(); + + return ( + + + + {/* Header */} + + navigation.goBack()} style={styles.backButton}> + ← Back + + Help + + + + {/* Content */} + + 🤝 + Coming Soon + Harîkarî / Help + + + Harîkarî / Help will be available soon! + + + Community support and mutual aid platform. + + + + Planned Features: + • Community support requests + • Mutual aid coordination + • Emergency assistance + • Resource sharing + • Volunteer matching + + + + ); +}; + +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 HelpScreen; diff --git a/mobile/src/screens/JusticeScreen.tsx b/mobile/src/screens/JusticeScreen.tsx new file mode 100644 index 00000000..cf964892 --- /dev/null +++ b/mobile/src/screens/JusticeScreen.tsx @@ -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 JusticeScreen: React.FC = () => { + const navigation = useNavigation(); + + return ( + + + + {/* Header */} + + navigation.goBack()} style={styles.backButton}> + ← Back + + Justice + + + + {/* Content */} + + ⚖️ + Li benda hilbijartinên çalak + Awaiting Active Elections + + + Duaye hilbijartinên Serokî yên çalak bibin. + + + Awaiting active Presidential elections to be initiated. + + + + Planned Features: + • Decentralized dispute resolution + • Community arbitration + • Smart contract enforcement + • Transparent judicial records + + + + ); +}; + +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 JusticeScreen; diff --git a/mobile/src/screens/MusicScreen.tsx b/mobile/src/screens/MusicScreen.tsx new file mode 100644 index 00000000..a1dbafc5 --- /dev/null +++ b/mobile/src/screens/MusicScreen.tsx @@ -0,0 +1,152 @@ +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 MusicScreen: React.FC = () => { + const navigation = useNavigation(); + + return ( + + + + {/* Header */} + + navigation.goBack()} style={styles.backButton}> + ← Back + + Music + + + + {/* Content */} + + 🎵 + Coming Soon + Music Stream + + + Music Stream will be available soon! + + + Decentralized Kurdish music streaming platform. + + + + Planned Features: + • Kurdish music library + • Artist direct support via HEZ + • Playlist creation + • Music NFTs + • Live streaming concerts + + + + ); +}; + +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 MusicScreen; diff --git a/mobile/src/screens/PollsScreen.tsx b/mobile/src/screens/PollsScreen.tsx new file mode 100644 index 00000000..d5dd9aad --- /dev/null +++ b/mobile/src/screens/PollsScreen.tsx @@ -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 PollsScreen: React.FC = () => { + const navigation = useNavigation(); + + return ( + + + + {/* Header */} + + navigation.goBack()} style={styles.backButton}> + ← Back + + Polls + + + + {/* Content */} + + 📊 + Coming Soon + Public Polls + + + Public Polls will be available soon! + + + Rapirsiyên giştî zû tên! + + + + Planned Features: + • Community opinion polls + • Anonymous voting options + • Real-time results + • Weighted voting by Tiki + + + + ); +}; + +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 PollsScreen; diff --git a/mobile/src/screens/ResearchScreen.tsx b/mobile/src/screens/ResearchScreen.tsx new file mode 100644 index 00000000..70a14de7 --- /dev/null +++ b/mobile/src/screens/ResearchScreen.tsx @@ -0,0 +1,152 @@ +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 ResearchScreen: React.FC = () => { + const navigation = useNavigation(); + + return ( + + + + {/* Header */} + + navigation.goBack()} style={styles.backButton}> + ← Back + + Research + + + + {/* Content */} + + 🔬 + Li benda Wezareta Perwerdê + Awaiting Ministry of Education + + + Duaye damezrandina Wezareta Perwerdê yên aktîv bibin. + + + Awaiting the establishment of an active Ministry of Education. + + + + Planned Features: + • Kurdish research database + • Academic paper repository + • Research funding via DAO + • Collaboration tools + • Open access publications + + + + ); +}; + +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 ResearchScreen; diff --git a/mobile/src/screens/UniversityScreen.tsx b/mobile/src/screens/UniversityScreen.tsx new file mode 100644 index 00000000..330cfd75 --- /dev/null +++ b/mobile/src/screens/UniversityScreen.tsx @@ -0,0 +1,152 @@ +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 UniversityScreen: React.FC = () => { + const navigation = useNavigation(); + + return ( + + + + {/* Header */} + + navigation.goBack()} style={styles.backButton}> + ← Back + + University + + + + {/* Content */} + + 🎓 + Li benda Wezareta Perwerdê + Awaiting Ministry of Education + + + Duaye damezrandina Wezareta Perwerdê yên aktîv bibin. + + + Awaiting the establishment of an active Ministry of Education. + + + + Planned Features: + • Digital Kurdistan University + • Accredited online courses + • Blockchain-verified degrees + • Kurdish language curriculum + • Scholarship programs + + + + ); +}; + +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 UniversityScreen; diff --git a/mobile/src/screens/VPNScreen.tsx b/mobile/src/screens/VPNScreen.tsx new file mode 100644 index 00000000..1037a5be --- /dev/null +++ b/mobile/src/screens/VPNScreen.tsx @@ -0,0 +1,152 @@ +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 VPNScreen: React.FC = () => { + const navigation = useNavigation(); + + return ( + + + + {/* Header */} + + navigation.goBack()} style={styles.backButton}> + ← Back + + VPN + + + + {/* Content */} + + 🛡️ + Coming Soon + Decentralized VPN + + + Decentralized VPN will be available soon! + + + Privacy-first, community-powered VPN network. + + + + Planned Features: + • Decentralized relay network + • Pay-per-use with HEZ tokens + • No-logs policy guaranteed + • Community node operators + • Bypass censorship + + + + ); +}; + +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 VPNScreen; diff --git a/mobile/src/screens/WhatsKURDScreen.tsx b/mobile/src/screens/WhatsKURDScreen.tsx new file mode 100644 index 00000000..d3c30d73 --- /dev/null +++ b/mobile/src/screens/WhatsKURDScreen.tsx @@ -0,0 +1,152 @@ +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 WhatsKURDScreen: React.FC = () => { + const navigation = useNavigation(); + + return ( + + + + {/* Header */} + + navigation.goBack()} style={styles.backButton}> + ← Back + + whatsKURD + + + + {/* Content */} + + 💬 + Coming Soon + whatsKURD + + + whatsKURD will be available soon! + + + Decentralized messaging for the Kurdish community. + + + + Planned Features: + • End-to-end encrypted messaging + • Decentralized infrastructure + • Group chats and channels + • Voice and video calls + • Kurdish language support + + + + ); +}; + +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 WhatsKURDScreen;