diff --git a/mobile/src/navigation/AppNavigator.tsx b/mobile/src/navigation/AppNavigator.tsx index 177d9507..1247c71b 100644 --- a/mobile/src/navigation/AppNavigator.tsx +++ b/mobile/src/navigation/AppNavigator.tsx @@ -5,6 +5,7 @@ import { NavigationContainer } from '@react-navigation/native'; import AsyncStorage from '@react-native-async-storage/async-storage'; import { useAuth } from '../contexts/AuthContext'; // Import useAuth import { KurdistanColors } from '../theme/colors'; +import { SimpleHeader } from '../components/navigation/SharedHeader'; // Screens import WelcomeScreen from '../screens/WelcomeScreen'; @@ -147,14 +148,18 @@ const AppNavigator: React.FC = () => { component={SettingsScreen} options={{ presentation: 'modal', - headerShown: false, + headerShown: true, + headerTitle: 'Settings', + header: (props) => , }} /> , }} /> { name="EditProfile" component={EditProfileScreen} options={{ - headerShown: false, + headerShown: true, + headerTitle: 'Edit Profile', + header: (props) => , }} /> , }} /> , }} /> , }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> , + }} /> )} diff --git a/mobile/src/screens/AppsScreen.tsx b/mobile/src/screens/AppsScreen.tsx index 7f2e67cf..61991f32 100644 --- a/mobile/src/screens/AppsScreen.tsx +++ b/mobile/src/screens/AppsScreen.tsx @@ -72,7 +72,7 @@ const CATEGORIES: { name: CategoryType; icon: string }[] = [ const AppsScreen: React.FC = () => { const navigation = useNavigation(); - const { selectedAccount, connectWallet } = usePezkuwi(); + const { selectedAccount, accounts, connectWallet } = usePezkuwi(); const isConnected = !!selectedAccount; const [searchQuery, setSearchQuery] = useState(''); @@ -94,12 +94,18 @@ const AppsScreen: React.FC = () => { }); const handleConnectWallet = async () => { + // If no wallets exist, navigate to wallet setup first + if (accounts.length === 0) { + navigation.navigate('WalletSetup'); + return; + } + try { await connectWallet(); - Alert.alert('Connected', 'Your wallet has been connected successfully!'); + Alert.alert('Girêdayî / Connected', 'Cîzdanê te bi serkeftî girêdayî bû!\nYour wallet has been connected successfully!'); } catch (error) { if (__DEV__) console.error('Wallet connection error:', error); - Alert.alert('Error', 'Failed to connect wallet. Please try again.'); + Alert.alert('Çewtî / Error', 'Cîzdan nehat girêdan. Dîsa biceribîne.\nFailed to connect wallet. Please try again.'); } }; diff --git a/mobile/src/screens/DashboardScreen.tsx b/mobile/src/screens/DashboardScreen.tsx index 6279325c..c31fc069 100644 --- a/mobile/src/screens/DashboardScreen.tsx +++ b/mobile/src/screens/DashboardScreen.tsx @@ -84,7 +84,7 @@ interface DashboardScreenProps {} const DashboardScreen: React.FC = () => { const navigation = useNavigation>(); const { user } = useAuth(); - const { api, isApiReady, selectedAccount } = usePezkuwi(); + const { api, isApiReady, selectedAccount, accounts, connectWallet } = usePezkuwi(); const [profileData, setProfileData] = useState(null); const [loading, setLoading] = useState(true); const [avatarModalVisible, setAvatarModalVisible] = useState(false); @@ -167,6 +167,21 @@ const DashboardScreen: React.FC = () => { // Check if user is a visitor (default when no blockchain wallet or no tikis) const isVisitor = !selectedAccount || tikis.length === 0; + + // Handle wallet connection + const handleConnectWallet = async () => { + if (accounts.length === 0) { + navigation.navigate('WalletSetup'); + return; + } + try { + await connectWallet(); + Alert.alert('Girêdayî / Connected', 'Cîzdanê te bi serkeftî girêdayî bû!\nYour wallet has been connected successfully!'); + } catch (error) { + if (__DEV__) console.error('Wallet connection error:', error); + Alert.alert('Çewtî / Error', 'Cîzdan nehat girêdan.\nFailed to connect wallet.'); + } + }; const primaryRole = tikis.length > 0 ? getPrimaryRole(tikis) : 'Visitor'; const showComingSoon = (featureName: string) => { @@ -463,10 +478,10 @@ const DashboardScreen: React.FC = () => { {!selectedAccount && ( navigation.navigate('Wallet')} + onPress={handleConnectWallet} > 👛 - Connect + Girêde )}