@fadyshawky/react-native-magic 2.0.5 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/package.json +1 -1
  2. package/template/App.tsx +21 -16
  3. package/template/ios/reactnativemagic/AppDelegate.mm +5 -0
  4. package/template/src/common/ImageResources.g.ts +1 -33
  5. package/template/src/common/components/Background.tsx +7 -7
  6. package/template/src/common/components/Container.tsx +7 -10
  7. package/template/src/common/localization/LocalizationProvider.tsx +14 -17
  8. package/template/src/common/localization/RTLInitializer.tsx +90 -0
  9. package/template/src/common/localization/intlFormatter.ts +37 -0
  10. package/template/src/common/localization/localization.ts +1 -3
  11. package/template/src/common/localization/translations/commonLocalization.ts +11 -81
  12. package/template/src/common/localization/translations/emptyLocalization.ts +6 -2
  13. package/template/src/common/localization/translations/errorsLocalization.ts +33 -13
  14. package/template/src/common/localization/translations/homeLocalization.ts +4 -24
  15. package/template/src/common/localization/translations/loginLocalization.ts +26 -29
  16. package/template/src/common/localization/translations/mainNavigationLocalization.ts +2 -2
  17. package/template/src/common/localization/translations/onboardingLocalization.ts +40 -9
  18. package/template/src/common/localization/translations/otpLocalization.ts +8 -8
  19. package/template/src/common/localization/translations/pagesLocalization.ts +13 -1
  20. package/template/src/common/localization/translations/passwordLocalization.ts +3 -3
  21. package/template/src/common/localization/translations/profileLocalization.ts +4 -4
  22. package/template/src/core/store/app/appSlice.ts +2 -2
  23. package/template/src/core/store/app/appState.ts +1 -1
  24. package/template/src/core/theme/colors.ts +106 -70
  25. package/template/src/core/theme/commonConsts.ts +1 -1
  26. package/template/src/core/theme/commonSizes.ts +119 -94
  27. package/template/src/core/theme/commonStyles.ts +22 -22
  28. package/template/src/core/theme/fonts.ts +13 -14
  29. package/template/src/core/theme/shadows.ts +135 -0
  30. package/template/src/core/theme/themes.ts +386 -75
  31. package/template/src/core/theme/types.ts +201 -15
  32. package/template/src/navigation/HeaderComponents.tsx +6 -30
  33. package/template/src/navigation/MainNavigation.tsx +2 -3
  34. package/template/src/navigation/MainStack.tsx +6 -97
  35. package/template/src/screens/Login/Login.tsx +5 -7
  36. package/template/src/screens/OTP/OTPScreen.tsx +12 -13
  37. package/template/src/screens/home/HomeScreen.tsx +2 -295
  38. package/template/src/screens/profile/Profile.tsx +2 -290
  39. package/template/src/common/localization/translations/posLocalization.ts +0 -196
  40. package/template/src/components/PrinterExample.js +0 -226
  41. package/template/src/core/store/Categories/categoryActions.ts +0 -33
  42. package/template/src/core/store/Categories/categorySlice.ts +0 -75
  43. package/template/src/core/store/Categories/categoryState.ts +0 -41
  44. package/template/src/core/store/Providers/providersActions.ts +0 -102
  45. package/template/src/core/store/Providers/providersSlice.ts +0 -136
  46. package/template/src/core/store/Providers/providersState.ts +0 -37
  47. package/template/src/core/store/Services/servicesActions.ts +0 -191
  48. package/template/src/core/store/Services/servicesSlice.ts +0 -205
  49. package/template/src/core/store/Services/servicesState.ts +0 -466
  50. package/template/src/modules/SunmiCard.js +0 -212
  51. package/template/src/modules/SunmiPrepaid.ts +0 -122
  52. package/template/src/screens/Categories/Categories.tsx +0 -141
  53. package/template/src/screens/Categories/hooks/useCategoriesData.ts +0 -33
  54. package/template/src/screens/Categories/types.ts +0 -7
  55. package/template/src/screens/Favorites/Favorites.tsx +0 -130
  56. package/template/src/screens/ForceChangePassword/ForceChangePasswordScreen.tsx +0 -155
  57. package/template/src/screens/History/History.tsx +0 -430
  58. package/template/src/screens/History/hooks/useHistoryData.ts +0 -49
  59. package/template/src/screens/History/types.ts +0 -7
  60. package/template/src/screens/InquiredBill/InquiredBill.tsx +0 -443
  61. package/template/src/screens/InquiredBill/hooks/useInquiredData.ts +0 -91
  62. package/template/src/screens/PaymentConfirmation/PaymentConfirmation.tsx +0 -326
  63. package/template/src/screens/Providers/Providers.tsx +0 -166
  64. package/template/src/screens/Providers/hooks/useProvidersData.ts +0 -33
  65. package/template/src/screens/Providers/types.ts +0 -7
  66. package/template/src/screens/ReceiptScreen/ReceiptScreen.tsx +0 -181
  67. package/template/src/screens/ReceiptScreen/hooks/useReceiptData.ts +0 -46
  68. package/template/src/screens/ReceiptScreen/utils/utils.tsx +0 -156
  69. package/template/src/screens/Services/Services.tsx +0 -144
  70. package/template/src/screens/Services/hooks/useServicesData.ts +0 -41
  71. package/template/src/screens/SingleService/Components/FawryInputs.tsx +0 -446
  72. package/template/src/screens/SingleService/SingleService.tsx +0 -229
  73. package/template/src/screens/SingleService/hooks/useServiceData.ts +0 -164
  74. package/template/src/services/SunmiPrinterInternal.js +0 -268
  75. package/template/src/types/sunmiPrepaid.d.ts +0 -20
  76. package/template/src/utils/SunmiPrinter.ts +0 -442
  77. package/template/src/utils/feesCalculator.ts +0 -92
@@ -1,27 +1,170 @@
1
1
  import {TextStyle} from 'react-native';
2
+ import {ElevationShadow} from './shadows';
3
+ import {PrimaryColors, NaturalColors, AlertColors} from './colors';
2
4
 
3
5
  export type ThemeMode = 'light' | 'dark';
4
6
 
7
+ export interface ISize {
8
+ font: {
9
+ // Almarai Design System Typography
10
+ bodySmall: number;
11
+ bodyMedium: number;
12
+ bodyLarge: number;
13
+ bodyXLarge: number;
14
+ heading6: number;
15
+ heading4: number;
16
+ heading3: number;
17
+ heading2: number;
18
+ heading1: number;
19
+
20
+ // Legacy support
21
+ extraSmall: number;
22
+ extraSmallPlus: number;
23
+ small: number;
24
+ smallPlus: number;
25
+ medium: number;
26
+ mediumPlus: number;
27
+ extraMedium: number;
28
+ large: number;
29
+ largePlus: number;
30
+ extraLarge: number;
31
+ extraLargePlus: number;
32
+ };
33
+ letterSpacing: {
34
+ // Almarai Design System
35
+ bodySmall: number;
36
+ bodyMedium: number;
37
+ bodyLarge: number;
38
+ bodyXLarge: number;
39
+ heading6: number;
40
+ heading4: number;
41
+ heading3: number;
42
+ heading2: number;
43
+ heading1: number;
44
+
45
+ // Legacy support
46
+ extraSmall: number;
47
+ extraSmallPlus: number;
48
+ small: number;
49
+ smallPlus: number;
50
+ medium: number;
51
+ mediumPlus: number;
52
+ large: number;
53
+ largePlus: number;
54
+ extraLarge: number;
55
+ extraLargePlus: number;
56
+ };
57
+ lineHeight: {
58
+ // Almarai Design System
59
+ bodySmall: number;
60
+ bodyMedium: number;
61
+ bodyLarge: number;
62
+ bodyXLarge: number;
63
+ heading6: number;
64
+ heading4: number;
65
+ heading3: number;
66
+ heading2: number;
67
+ heading1: number;
68
+
69
+ // Legacy support
70
+ extraSmall: number;
71
+ extraSmallPlus: number;
72
+ small: number;
73
+ smallPlus: number;
74
+ medium: number;
75
+ mediumPlus: number;
76
+ large: number;
77
+ largePlus: number;
78
+ extraLarge: number;
79
+ extraLargePlus: number;
80
+ };
81
+ spacing: {
82
+ // Design System Spacing Scale
83
+ none: number; // space / 0
84
+ xSmall: number; // space / 2
85
+ small: number; // space / 4
86
+ medium: number; // space / 8
87
+ large: number; // space / 12
88
+ xLarge: number; // space / 16
89
+ xxLarge: number; // space / 24 (2X-Large)
90
+ xxxLarge: number; // space / 32 (3X-Large)
91
+ xxxxLarge: number; // space / 48 (4X-Large)
92
+ xxxxxLarge: number; // space / 64 (5X-Large)
93
+ xxxxxxLarge: number; // space / 80 (6X-Large)
94
+ full: number; // space / 100 (Full)
95
+
96
+ // Legacy support
97
+ xs: number;
98
+ sm: number;
99
+ md: number;
100
+ lg: number;
101
+ xl: number;
102
+ };
103
+ borderRadius: {
104
+ // Design System Border Radius Scale
105
+ none: number; // Border / 0
106
+ xSmall: number; // Border / 2
107
+ small: number; // Border / 4
108
+ medium: number; // Border / 8
109
+ large: number; // Border / 12
110
+ xLarge: number; // Border / 16
111
+ xxLarge: number; // Border / 24 (2X-Large)
112
+ full: number; // Border / 1000 (Full)
113
+
114
+ // Legacy support
115
+ xs: number;
116
+ sm: number;
117
+ md: number;
118
+ lg: number;
119
+ xl: number;
120
+ };
121
+ borderWidth: {
122
+ // Design System Stroke Scale
123
+ none: number; // Stroke / 0
124
+ xSmall: number; // Stroke / 0.5
125
+ small: number; // Stroke / 1
126
+ medium: number; // Stroke / 1.5
127
+ large: number; // Stroke / 2
128
+
129
+ // Legacy support
130
+ extraSmall: number;
131
+ };
132
+ }
133
+
5
134
  export interface Theme {
6
135
  mode: ThemeMode;
7
- colors: {
8
- indigoBlue: string;
9
- mutedLavender: string;
10
- tintColor: string;
11
- mutedLavender30: string;
12
- balanceBackground: string;
13
- white: string;
14
- backgroundOpacity: string;
15
- black: string;
16
- background: string;
17
- surface: string;
18
- card: string;
19
- shadow: string;
20
- red: string;
21
- };
136
+ colors: typeof PrimaryColors & typeof NaturalColors & typeof AlertColors;
22
137
  text: {
138
+ // Almarai Design System Typography
139
+ // Headings
23
140
  header1: TextStyle;
24
141
  header2: TextStyle;
142
+ header3: TextStyle;
143
+ header4: TextStyle;
144
+ header6: TextStyle;
145
+
146
+ // Body Text with different weights
147
+ bodyXLargeLight: TextStyle;
148
+ bodyXLargeRegular: TextStyle;
149
+ bodyXLargeBold: TextStyle;
150
+ bodyXLargeExtraBold: TextStyle;
151
+
152
+ bodyLargeLight: TextStyle;
153
+ bodyLargeRegular: TextStyle;
154
+ bodyLargeBold: TextStyle;
155
+ bodyLargeExtraBold: TextStyle;
156
+
157
+ bodyMediumLight: TextStyle;
158
+ bodyMediumRegular: TextStyle;
159
+ bodyMediumBold: TextStyle;
160
+ bodyMediumExtraBold: TextStyle;
161
+
162
+ bodySmallLight: TextStyle;
163
+ bodySmallRegular: TextStyle;
164
+ bodySmallBold: TextStyle;
165
+ bodySmallExtraBold: TextStyle;
166
+
167
+ // Legacy styles for backward compatibility
25
168
  balanceTitle: TextStyle;
26
169
  balanceAmount: TextStyle;
27
170
  balanceLabel: TextStyle;
@@ -35,6 +178,21 @@ export interface Theme {
35
178
  navBar: TextStyle;
36
179
  };
37
180
  spacing: {
181
+ // Design System Spacing Scale
182
+ none: number;
183
+ xSmall: number;
184
+ small: number;
185
+ medium: number;
186
+ large: number;
187
+ xLarge: number;
188
+ xxLarge: number;
189
+ xxxLarge: number;
190
+ xxxxLarge: number;
191
+ xxxxxLarge: number;
192
+ xxxxxxLarge: number;
193
+ full: number;
194
+
195
+ // Legacy support
38
196
  xs: number;
39
197
  sm: number;
40
198
  md: number;
@@ -42,10 +200,38 @@ export interface Theme {
42
200
  xl: number;
43
201
  };
44
202
  borderRadius: {
203
+ // Design System Border Radius Scale
204
+ none: number;
205
+ xSmall: number;
206
+ small: number;
207
+ medium: number;
208
+ large: number;
209
+ xLarge: number;
210
+ xxLarge: number;
211
+ full: number;
212
+
213
+ // Legacy support
45
214
  xs: number;
46
215
  sm: number;
47
216
  md: number;
48
217
  lg: number;
49
218
  xl: number;
50
219
  };
220
+ borderWidth: {
221
+ // Design System Stroke Scale
222
+ none: number;
223
+ xSmall: number;
224
+ small: number;
225
+ medium: number;
226
+ large: number;
227
+
228
+ // Legacy support
229
+ extraSmall: number;
230
+ };
231
+ shadows: {
232
+ elevation1: ElevationShadow;
233
+ elevation2: ElevationShadow;
234
+ elevation3: ElevationShadow;
235
+ elevation4: ElevationShadow;
236
+ };
51
237
  }
@@ -1,17 +1,16 @@
1
1
  import {NativeStackNavigationProp} from '@react-navigation/native-stack';
2
2
  import React from 'react';
3
3
  import {Image, StyleSheet, TouchableOpacity, View} from 'react-native';
4
- import {ImageResources} from '../common/ImageResources.g';
4
+ import {useRTL} from '../common/localization/LocalizationProvider';
5
5
  import {CommonSizes} from '../core/theme/commonSizes';
6
6
  import {screenWidth} from '../core/theme/commonStyles';
7
+ import {scaleWidth} from '../core/theme/scaling';
7
8
  import {useTheme} from '../core/theme/ThemeProvider';
8
9
  import {RootStackParamList} from './types';
9
- import {useRTL} from '../common/localization/LocalizationProvider';
10
- import {scaleWidth} from '../core/theme/scaling';
11
10
  export function Header() {
12
11
  return (
13
12
  <View style={styles.headerBase}>
14
- <Image source={ImageResources.light_header_logo} style={styles.logo} />
13
+ <Image source={0} style={styles.logo} />
15
14
  </View>
16
15
  );
17
16
  }
@@ -20,7 +19,7 @@ export function HeaderBack({onPress}: {onPress: () => void}) {
20
19
  return (
21
20
  <View style={styles.headerWithBack}>
22
21
  <BackButton onPress={onPress} />
23
- <Image source={ImageResources.light_header_logo} style={styles.logo} />
22
+ <Image source={0} style={styles.logo} />
24
23
  <View style={{width: 40}} />
25
24
  </View>
26
25
  );
@@ -36,16 +35,6 @@ export function HeaderButton({onPress}: {onPress: () => void}) {
36
35
  );
37
36
  }
38
37
 
39
- export function HomeHeader({onPress}: {onPress: () => void}) {
40
- return (
41
- <View style={styles.headerWithBack}>
42
- <RefreshButton onPress={onPress} />
43
- <Image source={ImageResources.light_header_logo} style={styles.logo} />
44
- <View style={{width: 40}} />
45
- </View>
46
- );
47
- }
48
-
49
38
  export function WebViewHeader({
50
39
  navigation,
51
40
  }: {
@@ -64,25 +53,12 @@ function BackButton({onPress}: {onPress: () => void}) {
64
53
  return (
65
54
  <TouchableOpacity style={styles.backButton} onPressIn={onPress}>
66
55
  <Image
67
- tintColor={theme.colors.tintColor}
56
+ tintColor={theme.colors.PlatinateBlue_100}
68
57
  style={{
69
58
  ...styles.backIcon,
70
59
  transform: [{rotate: isRTL ? '180deg' : '0deg'}],
71
60
  }}
72
- source={ImageResources.arrow_left}
73
- />
74
- </TouchableOpacity>
75
- );
76
- }
77
-
78
- function RefreshButton({onPress}: {onPress: () => void}) {
79
- const {theme} = useTheme();
80
- return (
81
- <TouchableOpacity style={styles.backButton} onPressIn={onPress}>
82
- <Image
83
- tintColor={theme.colors.tintColor}
84
- style={styles.backIcon}
85
- source={ImageResources.repeat}
61
+ source={0}
86
62
  />
87
63
  </TouchableOpacity>
88
64
  );
@@ -4,11 +4,10 @@ import {DefaultTheme, NavigationContainer} from '@react-navigation/native';
4
4
  import * as React from 'react';
5
5
  import {useRef} from 'react';
6
6
  import {useAppSelector} from '../core/store/reduxHelpers';
7
+ import {NaturalColors} from '../core/theme/colors';
7
8
  import {AuthStack} from './AuthStack';
8
9
  import {AppMainNavigator} from './MainStack';
9
10
  import {navigationRef} from './RootNavigation';
10
- import {NewColors} from '../core/theme/colors';
11
- import {Fonts} from '../core/theme/fonts';
12
11
 
13
12
  function AppNavigator() {
14
13
  const routeNameRef = useRef<string | undefined>(undefined);
@@ -24,7 +23,7 @@ function AppNavigator() {
24
23
  dark: false,
25
24
  colors: {
26
25
  primary: '#000',
27
- background: NewColors.background,
26
+ background: NaturalColors.background_2,
28
27
  card: '#fff',
29
28
  text: '#000',
30
29
  border: '#000',
@@ -1,24 +1,11 @@
1
1
  import {createBottomTabNavigator} from '@react-navigation/bottom-tabs';
2
2
  import React from 'react';
3
- import {ImageResources} from '../common/ImageResources.g';
4
3
  import {useTranslation} from '../common/localization/LocalizationProvider';
5
4
 
6
- import {TabBar} from './TabBar';
7
5
  import {createNativeStackNavigator} from '@react-navigation/native-stack';
8
- import {
9
- Favorites,
10
- History,
11
- Profile,
12
- Services,
13
- SingleService,
14
- InquiredBill,
15
- PaymentConfirmation,
16
- Categories,
17
- Providers,
18
- ReceiptScreen,
19
- } from '../screens';
20
- import {ForceChangePasswordScreen} from '../screens/ForceChangePassword/ForceChangePasswordScreen';
6
+ import {Profile} from '../screens';
21
7
  import {HomeScreen} from '../screens/home/HomeScreen';
8
+ import {TabBar} from './TabBar';
22
9
 
23
10
  const Tab = createBottomTabNavigator();
24
11
  const Stack = createNativeStackNavigator();
@@ -33,28 +20,8 @@ export function AppMainNavigator() {
33
20
  options: {
34
21
  tabBarLabel: t('tabs.Main', 'mainNavigation'),
35
22
  headerShown: false,
36
- icon: ImageResources.services,
37
- selectedIcon: ImageResources.services,
38
- },
39
- },
40
- {
41
- id: 'Favorites',
42
- component: Favorites,
43
- options: {
44
- tabBarLabel: t('tabs.Favorites', 'mainNavigation'),
45
- headerShown: false,
46
- icon: ImageResources.favourites,
47
- selectedIcon: ImageResources.favourites,
48
- },
49
- },
50
- {
51
- id: 'Financials',
52
- component: History,
53
- options: {
54
- tabBarLabel: t('tabs.Financials', 'mainNavigation'),
55
- headerShown: false,
56
- icon: ImageResources.financials,
57
- selectedIcon: ImageResources.financials,
23
+ icon: 0,
24
+ selectedIcon: 0,
58
25
  },
59
26
  },
60
27
  {
@@ -63,66 +30,8 @@ export function AppMainNavigator() {
63
30
  options: {
64
31
  tabBarLabel: t('tabs.Account', 'mainNavigation'),
65
32
  headerShown: false,
66
- icon: ImageResources.account,
67
- selectedIcon: ImageResources.account,
68
- },
69
- },
70
- {
71
- id: 'ForceChangePassword',
72
- component: ForceChangePasswordScreen,
73
- options: {
74
- headerShown: false,
75
- title: t('screens.ForceChangePassword', 'mainNavigation'),
76
- },
77
- },
78
- {
79
- id: 'Services',
80
- component: Services,
81
- options: {
82
- headerShown: false,
83
- title: t('screens.Services', 'mainNavigation'),
84
- },
85
- },
86
- {
87
- id: 'SingleService',
88
- component: SingleService,
89
- options: {
90
- headerShown: false,
91
- },
92
- },
93
- {
94
- id: 'InquiredBill',
95
- component: InquiredBill,
96
- options: {
97
- headerShown: false,
98
- },
99
- },
100
- {
101
- id: 'PaymentConfirmation',
102
- component: PaymentConfirmation,
103
- options: {
104
- headerShown: false,
105
- },
106
- },
107
- {
108
- id: 'ReceiptScreen',
109
- component: ReceiptScreen,
110
- options: {
111
- headerShown: false,
112
- },
113
- },
114
- {
115
- id: 'Categories',
116
- component: Categories,
117
- options: {
118
- headerShown: false,
119
- },
120
- },
121
- {
122
- id: 'Providers',
123
- component: Providers,
124
- options: {
125
- headerShown: false,
33
+ icon: 0,
34
+ selectedIcon: 0,
126
35
  },
127
36
  },
128
37
  ];
@@ -1,7 +1,7 @@
1
1
  import {useNavigation} from '@react-navigation/native';
2
2
  import type {NativeStackNavigationProp} from '@react-navigation/native-stack';
3
3
  import React, {useRef, useState} from 'react';
4
- import {Dimensions, StyleSheet} from 'react-native';
4
+ import {StyleSheet} from 'react-native';
5
5
  import {KeyboardAwareScrollView} from 'react-native-keyboard-aware-scroll-view';
6
6
  import {ButtonType} from '../../../types';
7
7
  import {Container} from '../../common/components/Container';
@@ -9,10 +9,9 @@ import {PrimaryButton} from '../../common/components/PrimaryButton';
9
9
  import {PrimaryTextInput} from '../../common/components/PrimaryTextInput';
10
10
  import {RTLAwareText} from '../../common/components/RTLAwareText';
11
11
  import {RTLAwareView} from '../../common/components/RTLAwareView';
12
- import {ImageResources} from '../../common/ImageResources.g';
13
12
  import {
14
- useTranslation,
15
13
  useRTL,
14
+ useTranslation,
16
15
  } from '../../common/localization/LocalizationProvider';
17
16
  import {phoneValidations} from '../../common/validations/authValidations';
18
17
  import {emptyValidation} from '../../common/validations/commonValidations';
@@ -24,7 +23,6 @@ import {Fonts} from '../../core/theme/fonts';
24
23
  import {useTheme} from '../../core/theme/ThemeProvider';
25
24
  import {Header} from '../../navigation/HeaderComponents';
26
25
  import type {RootStackParamList} from '../../navigation/types';
27
- import {scaleHeight} from '../../core/theme/scaling';
28
26
 
29
27
  export function Login(): JSX.Element {
30
28
  const dispatch = useAppDispatch();
@@ -82,10 +80,10 @@ export function Login(): JSX.Element {
82
80
  testID={'LoginScreenID'}
83
81
  contentContainerStyle={styles.contentContainer}
84
82
  style={styles.container}
85
- backgroundImage={ImageResources.background_2}
83
+ backgroundImage={0}
86
84
  withoutPadding
87
85
  extendedBackground
88
- backgroundColor={theme.colors.background}>
86
+ backgroundColor={theme.colors.background_2}>
89
87
  <Header />
90
88
  <RTLAwareText style={{...theme.text.header1, textAlign: 'center'}}>
91
89
  {t('welcome', 'login')}
@@ -144,7 +142,7 @@ const styles = StyleSheet.create({
144
142
  },
145
143
  title: {
146
144
  textAlign: 'center',
147
- fontSize: CommonSizes.fontSize.header1,
145
+ fontSize: CommonSizes.font.bodyLarge,
148
146
  fontWeight: 'bold',
149
147
  fontFamily: Fonts.regular,
150
148
  },
@@ -1,26 +1,25 @@
1
1
  import {useNavigation, useRoute} from '@react-navigation/native';
2
2
  import type {NativeStackNavigationProp} from '@react-navigation/native-stack';
3
3
  import React, {useRef, useState} from 'react';
4
- import {StyleSheet, Text, View} from 'react-native';
4
+ import {StyleSheet, View} from 'react-native';
5
5
  import {KeyboardAwareScrollView} from 'react-native-keyboard-aware-scroll-view';
6
6
  import {ButtonType} from '../../../types';
7
7
  import {Container} from '../../common/components/Container';
8
- import {PrimaryButton} from '../../common/components/PrimaryButton';
9
8
  import {OTPInput} from '../../common/components/OTPInput';
9
+ import {PrimaryButton} from '../../common/components/PrimaryButton';
10
+ import {RTLAwareText} from '../../common/components/RTLAwareText';
11
+ import {RTLAwareView} from '../../common/components/RTLAwareView';
12
+ import {
13
+ useRTL,
14
+ useTranslation,
15
+ } from '../../common/localization/LocalizationProvider';
10
16
  import {useInputError} from '../../common/validations/hooks/useInputError';
11
17
  import {useAppDispatch} from '../../core/store/reduxHelpers';
18
+ import {verifyOTP} from '../../core/store/user/userActions';
12
19
  import {CommonSizes} from '../../core/theme/commonSizes';
13
20
  import {useTheme} from '../../core/theme/ThemeProvider';
14
- import {ImageResources} from '../../common/ImageResources.g';
15
- import {Header, HeaderBack} from '../../navigation/HeaderComponents';
21
+ import {HeaderBack} from '../../navigation/HeaderComponents';
16
22
  import type {RootStackParamList} from '../../navigation/types';
17
- import {verifyOTP} from '../../core/store/user/userActions';
18
- import {
19
- useTranslation,
20
- useRTL,
21
- } from '../../common/localization/LocalizationProvider';
22
- import {RTLAwareText} from '../../common/components/RTLAwareText';
23
- import {RTLAwareView} from '../../common/components/RTLAwareView';
24
23
 
25
24
  export function OTPScreen(): JSX.Element {
26
25
  const dispatch = useAppDispatch();
@@ -93,10 +92,10 @@ export function OTPScreen(): JSX.Element {
93
92
  testID={'OTPScreenID'}
94
93
  contentContainerStyle={styles.contentContainer}
95
94
  style={styles.container}
96
- backgroundImage={ImageResources.background_2}
95
+ backgroundImage={0}
97
96
  withoutPadding
98
97
  extendedBackground
99
- backgroundColor={theme.colors.background}>
98
+ backgroundColor={theme.colors.background_2}>
100
99
  <HeaderBack onPress={() => navigation.goBack()} />
101
100
  <RTLAwareText style={{...theme.text.header1, textAlign: 'center'}}>
102
101
  {t('title', 'otp')}