refactor(mobile): Remove i18n, expand core screens, update plan

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
This commit is contained in:
2026-01-15 05:08:21 +03:00
parent 5d293cc954
commit f2e70a8150
110 changed files with 11157 additions and 3260 deletions
@@ -1,6 +1,5 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import BeCitizenScreen from '../BeCitizenScreen';
@@ -10,11 +9,9 @@ jest.mock('@react-navigation/native', () => ({
}));
const BeCitizenScreenWrapper = () => (
<LanguageProvider>
<PezkuwiProvider>
<BeCitizenScreen />
</PezkuwiProvider>
</LanguageProvider>
<PezkuwiProvider>
<BeCitizenScreen />
</PezkuwiProvider>
);
describe('BeCitizenScreen', () => {
@@ -1,6 +1,5 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import EducationScreen from '../EducationScreen';
@@ -10,11 +9,9 @@ jest.mock('@react-navigation/native', () => ({
}));
const EducationScreenWrapper = () => (
<LanguageProvider>
<PezkuwiProvider>
<EducationScreen />
</PezkuwiProvider>
</LanguageProvider>
<PezkuwiProvider>
<EducationScreen />
</PezkuwiProvider>
);
describe('EducationScreen', () => {
@@ -1,6 +1,5 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
import { AuthProvider } from '../../contexts/AuthContext';
import ForumScreen from '../ForumScreen';
@@ -10,11 +9,9 @@ jest.mock('@react-navigation/native', () => ({
}));
const ForumScreenWrapper = () => (
<LanguageProvider>
<AuthProvider>
<ForumScreen />
</AuthProvider>
</LanguageProvider>
<AuthProvider>
<ForumScreen />
</AuthProvider>
);
describe('ForumScreen', () => {
@@ -1,6 +1,5 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import GovernanceScreen from '../GovernanceScreen';
@@ -10,11 +9,9 @@ jest.mock('@react-navigation/native', () => ({
}));
const GovernanceScreenWrapper = () => (
<LanguageProvider>
<PezkuwiProvider>
<GovernanceScreen />
</PezkuwiProvider>
</LanguageProvider>
<PezkuwiProvider>
<GovernanceScreen />
</PezkuwiProvider>
);
describe('GovernanceScreen', () => {
@@ -1,6 +1,5 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
import { BiometricAuthProvider } from '../../contexts/BiometricAuthContext';
import LockScreen from '../LockScreen';
@@ -10,11 +9,9 @@ jest.mock('@react-navigation/native', () => ({
}));
const LockScreenWrapper = () => (
<LanguageProvider>
<BiometricAuthProvider>
<LockScreen />
</BiometricAuthProvider>
</LanguageProvider>
<BiometricAuthProvider>
<LockScreen />
</BiometricAuthProvider>
);
describe('LockScreen', () => {
@@ -1,6 +1,5 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import NFTGalleryScreen from '../NFTGalleryScreen';
@@ -10,11 +9,9 @@ jest.mock('@react-navigation/native', () => ({
}));
const NFTGalleryScreenWrapper = () => (
<LanguageProvider>
<PezkuwiProvider>
<NFTGalleryScreen />
</PezkuwiProvider>
</LanguageProvider>
<PezkuwiProvider>
<NFTGalleryScreen />
</PezkuwiProvider>
);
describe('NFTGalleryScreen', () => {
@@ -1,6 +1,5 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import P2PScreen from '../P2PScreen';
@@ -11,11 +10,9 @@ jest.mock('@react-navigation/native', () => ({
// Wrapper with required providers
const P2PScreenWrapper = () => (
<LanguageProvider>
<PezkuwiProvider>
<P2PScreen />
</PezkuwiProvider>
</LanguageProvider>
<PezkuwiProvider>
<P2PScreen />
</PezkuwiProvider>
);
describe('P2PScreen', () => {
@@ -1,6 +1,5 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
import ProfileScreen from '../ProfileScreen';
jest.mock('@react-navigation/native', () => ({
@@ -9,9 +8,7 @@ jest.mock('@react-navigation/native', () => ({
}));
const ProfileScreenWrapper = () => (
<LanguageProvider>
<ProfileScreen />
</LanguageProvider>
<ProfileScreen />
);
describe('ProfileScreen', () => {
@@ -1,6 +1,5 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import ReferralScreen from '../ReferralScreen';
@@ -10,11 +9,9 @@ jest.mock('@react-navigation/native', () => ({
}));
const ReferralScreenWrapper = () => (
<LanguageProvider>
<PezkuwiProvider>
<ReferralScreen />
</PezkuwiProvider>
</LanguageProvider>
<PezkuwiProvider>
<ReferralScreen />
</PezkuwiProvider>
);
describe('ReferralScreen', () => {
@@ -1,6 +1,5 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
import { BiometricAuthProvider } from '../../contexts/BiometricAuthContext';
import SecurityScreen from '../SecurityScreen';
@@ -10,11 +9,9 @@ jest.mock('@react-navigation/native', () => ({
}));
const SecurityScreenWrapper = () => (
<LanguageProvider>
<BiometricAuthProvider>
<SecurityScreen />
</BiometricAuthProvider>
</LanguageProvider>
<BiometricAuthProvider>
<SecurityScreen />
</BiometricAuthProvider>
);
describe('SecurityScreen', () => {
@@ -1,7 +1,6 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { AuthProvider } from '../../contexts/AuthContext';
import { LanguageProvider } from '../../contexts/LanguageContext';
import SignInScreen from '../SignInScreen';
jest.mock('@react-navigation/native', () => ({
@@ -11,11 +10,9 @@ jest.mock('@react-navigation/native', () => ({
// Wrapper with required providers
const SignInScreenWrapper = () => (
<LanguageProvider>
<AuthProvider>
<SignInScreen />
</AuthProvider>
</LanguageProvider>
<AuthProvider>
<SignInScreen />
</AuthProvider>
);
describe('SignInScreen', () => {
@@ -1,7 +1,6 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { AuthProvider } from '../../contexts/AuthContext';
import { LanguageProvider } from '../../contexts/LanguageContext';
import SignUpScreen from '../SignUpScreen';
jest.mock('@react-navigation/native', () => ({
@@ -11,11 +10,9 @@ jest.mock('@react-navigation/native', () => ({
// Wrapper with required providers
const SignUpScreenWrapper = () => (
<LanguageProvider>
<AuthProvider>
<SignUpScreen />
</AuthProvider>
</LanguageProvider>
<AuthProvider>
<SignUpScreen />
</AuthProvider>
);
describe('SignUpScreen', () => {
@@ -1,6 +1,5 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import StakingScreen from '../StakingScreen';
@@ -10,11 +9,9 @@ jest.mock('@react-navigation/native', () => ({
}));
const StakingScreenWrapper = () => (
<LanguageProvider>
<PezkuwiProvider>
<StakingScreen />
</PezkuwiProvider>
</LanguageProvider>
<PezkuwiProvider>
<StakingScreen />
</PezkuwiProvider>
);
describe('StakingScreen', () => {
@@ -1,6 +1,5 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import SwapScreen from '../SwapScreen';
@@ -10,11 +9,9 @@ jest.mock('@react-navigation/native', () => ({
}));
const SwapScreenWrapper = () => (
<LanguageProvider>
<PezkuwiProvider>
<SwapScreen />
</PezkuwiProvider>
</LanguageProvider>
<PezkuwiProvider>
<SwapScreen />
</PezkuwiProvider>
);
describe('SwapScreen', () => {
@@ -1,6 +1,5 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
import { PezkuwiProvider } from '../contexts/PezkuwiContext';
import WalletScreen from '../WalletScreen';
@@ -10,11 +9,9 @@ jest.mock('@react-navigation/native', () => ({
}));
const WalletScreenWrapper = () => (
<LanguageProvider>
<PezkuwiProvider>
<WalletScreen />
</PezkuwiProvider>
</LanguageProvider>
<PezkuwiProvider>
<WalletScreen />
</PezkuwiProvider>
);
describe('WalletScreen', () => {
@@ -1,6 +1,5 @@
import React from 'react';
import { render } from '@testing-library/react-native';
import { LanguageProvider } from '../../contexts/LanguageContext';
import WelcomeScreen from '../WelcomeScreen';
// Mock navigation
@@ -13,9 +12,7 @@ jest.mock('@react-navigation/native', () => ({
// Wrapper with required providers
const WelcomeScreenWrapper = () => (
<LanguageProvider>
<WelcomeScreen />
</LanguageProvider>
<WelcomeScreen />
);
describe('WelcomeScreen', () => {