Skip to content

Commit b150050

Browse files
authored
chore(main): release 7.1.0 (#1303)
* feat: added tamagui configuration with custom theme, updated entire app UI, added modal example * chore: version release * chore: some depepndencies, updated image
1 parent 97de2e7 commit b150050

File tree

34 files changed

+2653
-2079
lines changed

34 files changed

+2653
-2079
lines changed

.husky/commit-msg

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/usr/bin/env sh
2+
. "$(dirname -- "$0")/_/husky.sh"
3+
4+
npx --no -- commitlint --edit ${1}

babel.config.js

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,13 @@ module.exports = {
44
[
55
'module-resolver',
66
{
7-
extensions: [
8-
'.js',
9-
'.jsx',
10-
'.ts',
11-
'.tsx',
12-
'.android.js',
13-
'.android.tsx',
14-
'.ios.js',
15-
'.ios.tsx',
16-
],
7+
extensions: ['.js', '.jsx', '.ts', '.tsx', '.android.js', '.android.tsx', '.ios.js', '.ios.tsx'],
178
root: ['.'],
189
alias: {
1910
'@api': './src/api',
2011
'@assets': './src/assets',
2112
'@components': './src/components',
13+
'@constants': './src/constants',
2214
'@hooks': './src/hooks',
2315
'@i18n': './src/i18n',
2416
'@mmkv': './src/mmkv',

commitlint.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = { extends: ['@commitlint/config-conventional'] };

ios/Podfile.lock

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ PODS:
7474
- hermes-engine/Pre-built (= 0.72.6)
7575
- hermes-engine/Pre-built (0.72.6)
7676
- libevent (2.1.12)
77-
- MMKV (1.3.1):
78-
- MMKVCore (~> 1.3.1)
79-
- MMKVCore (1.3.1)
77+
- MMKV (1.3.2):
78+
- MMKVCore (~> 1.3.2)
79+
- MMKVCore (1.3.2)
8080
- OpenSSL-Universal (1.1.1100)
8181
- RCT-Folly (2021.07.22.00):
8282
- boost
@@ -378,7 +378,7 @@ PODS:
378378
- React-jsinspector (0.72.6)
379379
- React-logger (0.72.6):
380380
- glog
381-
- react-native-mmkv (2.10.2):
381+
- react-native-mmkv (2.11.0):
382382
- MMKV (>= 1.2.13)
383383
- React-Core
384384
- react-native-safe-area-context (4.7.4):
@@ -497,14 +497,15 @@ PODS:
497497
- React-perflogger (= 0.72.6)
498498
- RNBootSplash (4.7.5):
499499
- React-Core
500-
- RNLocalize (3.0.2):
500+
- RNLocalize (3.0.3):
501501
- React-Core
502502
- RNScreens (3.27.0):
503503
- RCT-Folly (= 2021.07.22.00)
504504
- React-Core
505505
- RNSVG (13.14.0):
506506
- React-Core
507-
- RNVectorIcons (10.0.0):
507+
- RNVectorIcons (10.0.2):
508+
- RCT-Folly (= 2021.07.22.00)
508509
- React-Core
509510
- SocketRocket (0.6.1)
510511
- Yoga (1.14.0)
@@ -718,8 +719,8 @@ SPEC CHECKSUMS:
718719
glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b
719720
hermes-engine: 8057e75cfc1437b178ac86c8654b24e7fead7f60
720721
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
721-
MMKV: 5a07930c70c70b86cd87761a42c8f3836fb681d7
722-
MMKVCore: e50135dbd33235b6ab390635991bab437ab873c0
722+
MMKV: f21593c0af4b3f2a0ceb8f820f28bb639ea22bb7
723+
MMKVCore: 31b4cb83f8266467eef20a35b6d78e409a11060d
723724
OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c
724725
RCT-Folly: 424b8c9a7a0b9ab2886ffe9c3b041ef628fd4fb1
725726
RCTRequired: 28469809442eb4eb5528462705f7d852948c8a74
@@ -736,7 +737,7 @@ SPEC CHECKSUMS:
736737
React-jsiexecutor: 3bf18ff7cb03cd8dfdce08fbbc0d15058c1d71ae
737738
React-jsinspector: 194e32c6aab382d88713ad3dd0025c5f5c4ee072
738739
React-logger: cebf22b6cf43434e471dc561e5911b40ac01d289
739-
react-native-mmkv: 9ae7ca3977e8ef48dbf7f066974eb844c20b5fd7
740+
react-native-mmkv: e97c0c79403fb94577e5d902ab1ebd42b0715b43
740741
react-native-safe-area-context: 2cd91d532de12acdb0a9cbc8d43ac72a8e4c897c
741742
react-native-version-number: b415bbec6a13f2df62bf978e85bc0d699462f37f
742743
React-NativeModulesApple: 02e35e9a51e10c6422f04f5e4076a7c02243fff2
@@ -757,10 +758,10 @@ SPEC CHECKSUMS:
757758
React-utils: fa59c9a3375fb6f4aeb66714fd3f7f76b43a9f16
758759
ReactCommon: dd03c17275c200496f346af93a7b94c53f3093a4
759760
RNBootSplash: 85f6b879c080e958afdb4c62ee04497b05fd7552
760-
RNLocalize: dbea38dcb344bf80ff18a1757b1becf11f70cae4
761+
RNLocalize: 7ce27517894956a226aa6d614786802d253a0a0a
761762
RNScreens: 3c2d122f5e08c192e254c510b212306da97d2581
762763
RNSVG: d00c8f91c3cbf6d476451313a18f04d220d4f396
763-
RNVectorIcons: 8b5bb0fa61d54cd2020af4f24a51841ce365c7e9
764+
RNVectorIcons: 23b6e11af4aaf104d169b1b0afa7e5cf96c676ce
764765
SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
765766
Yoga: b76f1acfda8212aa16b7e26bcce3983230c82603
766767
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a

ios/ReactNativeStarterApp/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
</dict>
3737
</dict>
3838
<key>NSLocationWhenInUseUsageDescription</key>
39-
<string/>
39+
<string></string>
4040
<key>UILaunchStoryboardName</key>
4141
<string>BootSplash.storyboard</string>
4242
<key>UIRequiredDeviceCapabilities</key>

package.json

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-native-starter-app",
3-
"version": "7.0.1",
3+
"version": "7.1.0",
44
"private": true,
55
"scripts": {
66
"test": "jest",
@@ -40,36 +40,41 @@
4040
},
4141
"dependencies": {
4242
"@react-navigation/native": "^6.1.9",
43-
"@react-navigation/native-stack": "^6.9.15",
43+
"@react-navigation/native-stack": "^6.9.17",
4444
"@reduxjs/toolkit": "1.9.7",
45+
"@tamagui/shorthands": "^1.78.0",
46+
"@tamagui/themes": "^1.78.0",
4547
"axios": "^0.27.2",
4648
"i18next": "^22.5.0",
4749
"lodash": "^4.17.21",
48-
"native-base": "3.4.28",
4950
"react": "18.2.0",
5051
"react-i18next": "^12.3.1",
5152
"react-native": "0.72.6",
5253
"react-native-bootsplash": "^4.7.1",
5354
"react-native-indicators": "^0.17.0",
54-
"react-native-localize": "^3.0.0",
55-
"react-native-mmkv": "^2.8.0",
56-
"react-native-safe-area-context": "^4.5.3",
57-
"react-native-screens": "^3.20.0",
55+
"react-native-localize": "^3.0.3",
56+
"react-native-mmkv": "^2.11.0",
57+
"react-native-safe-area-context": "^4.7.4",
58+
"react-native-screens": "^3.27.0",
5859
"react-native-svg": "^13.14.0",
59-
"react-native-vector-icons": "^10.0.0",
60+
"react-native-toast-message": "^2.1.7",
61+
"react-native-vector-icons": "^10.0.2",
6062
"react-native-version-number": "^0.3.6",
6163
"react-redux": "8.1.3",
6264
"redux-persist": "^6.0.0",
63-
"redux-saga": "1.2.3"
65+
"redux-saga": "1.2.3",
66+
"tamagui": "^1.78.0"
6467
},
6568
"devDependencies": {
6669
"@babel/core": "^7.20.0",
6770
"@babel/preset-env": "^7.20.0",
6871
"@babel/runtime": "^7.20.0",
72+
"@commitlint/cli": "^18.4.3",
73+
"@commitlint/config-conventional": "^18.4.3",
6974
"@forward-software/react-native-toolbox": "^3.0.0",
7075
"@react-native/eslint-config": "^0.72.2",
7176
"@react-native/metro-config": "^0.72.11",
72-
"@trivago/prettier-plugin-sort-imports": "^4.2.0",
77+
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
7378
"@tsconfig/react-native": "^3.0.0",
7479
"@types/lodash": "^4.14.200",
7580
"@types/metro-config": "^0.76.3",

react-native-starter-kit.png

-3.81 KB
Loading

src/App.tsx

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,35 @@
1-
import CToaster from '@components/CToaster';
1+
import { DARK_THEME, LIGHT_THEME } from '@constants/theme';
22
import { messageHandlerReset } from '@redux/messageHandler/actions';
33
import { messageHandlerFullInfo } from '@redux/messageHandler/selectors';
44
import RootStackScreen from '@routes';
5-
import { useToast } from 'native-base';
6-
import React, { useCallback, useEffect, useRef } from 'react';
7-
import { StatusBar } from 'react-native';
5+
import React, { useEffect } from 'react';
6+
import { StatusBar, useColorScheme } from 'react-native';
7+
import Toast from 'react-native-toast-message';
88
import { useDispatch, useSelector } from 'react-redux';
99

1010
function App() {
11+
const colorScheme = useColorScheme() ?? LIGHT_THEME;
12+
const isDarkMode = colorScheme === DARK_THEME;
1113
const dispatch = useDispatch();
12-
const toast = useToast();
13-
const toastIdRef = useRef(null);
1414
const hasGeneralMessage = useSelector(messageHandlerFullInfo);
1515

16-
const onCloseToast = useCallback(() => {
17-
if (toastIdRef.current) {
18-
toast.close(toastIdRef.current);
19-
}
20-
}, [toast]);
21-
2216
useEffect(() => {
2317
if (hasGeneralMessage?.message) {
24-
toastIdRef.current = toast.show({
25-
render: () => (
26-
<CToaster status={hasGeneralMessage?.status} title={hasGeneralMessage?.message} onClose={onCloseToast} />
27-
),
28-
placement: 'top',
29-
onCloseComplete: () => dispatch(messageHandlerReset()),
30-
duration: 3000,
18+
Toast.show({
19+
position: 'top',
20+
onHide: () => dispatch(messageHandlerReset()),
21+
visibilityTime: 3000,
22+
topOffset: 60,
23+
type: hasGeneralMessage?.status,
24+
text1: hasGeneralMessage?.message,
25+
// text2: description.....
3126
});
3227
}
33-
// eslint-disable-next-line react-hooks/exhaustive-deps
3428
}, [hasGeneralMessage, dispatch]);
3529

3630
return (
3731
<>
38-
<StatusBar barStyle="dark-content" />
32+
<StatusBar barStyle={isDarkMode ? 'light-content' : 'dark-content'} />
3933

4034
<RootStackScreen />
4135
</>

src/ContainerApp.tsx

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,24 @@
1+
import { DARK_THEME, LIGHT_THEME } from '@constants/theme';
2+
import toastConfig from '@constants/toast';
13
import '@i18n';
2-
import { NavigationContainer } from '@react-navigation/native';
4+
import { DarkTheme, DefaultTheme, NavigationContainer } from '@react-navigation/native';
35
import { persistor, store } from '@redux/store';
46
import { navigationRef } from '@routes/utils';
5-
import customTheme from '@theme';
6-
import { NativeBaseProvider } from 'native-base';
7+
import appConfig from '@theme';
78
import React, { ReactElement, Suspense, useCallback, useEffect } from 'react';
8-
import { Text } from 'react-native';
9+
import { Text, useColorScheme } from 'react-native';
910
import RNBootSplash from 'react-native-bootsplash';
10-
import { SafeAreaProvider } from 'react-native-safe-area-context';
11+
import { SafeAreaProvider, initialWindowMetrics } from 'react-native-safe-area-context';
12+
import Toast from 'react-native-toast-message';
1113
import { Provider } from 'react-redux';
1214
import { PersistGate } from 'redux-persist/integration/react';
1315
import App from 'src/App';
16+
import { TamaguiProvider } from 'tamagui';
1417

1518
function ContainerApp(): ReactElement {
19+
const colorScheme = useColorScheme() ?? LIGHT_THEME;
20+
const isDarkMode = colorScheme === DARK_THEME;
21+
1622
const hideBootSplash = useCallback(async () => {
1723
await RNBootSplash.hide({ fade: true });
1824
}, []);
@@ -25,12 +31,14 @@ function ContainerApp(): ReactElement {
2531
<Suspense fallback="Loading...">
2632
<Provider store={store}>
2733
<PersistGate loading={<Text>Loading...</Text>} persistor={persistor}>
28-
<SafeAreaProvider>
29-
<NavigationContainer ref={navigationRef}>
30-
<NativeBaseProvider theme={customTheme}>
34+
<SafeAreaProvider initialMetrics={initialWindowMetrics}>
35+
<TamaguiProvider config={appConfig} defaultTheme={colorScheme}>
36+
<NavigationContainer ref={navigationRef} theme={isDarkMode ? DarkTheme : DefaultTheme}>
3137
<App />
32-
</NativeBaseProvider>
33-
</NavigationContainer>
38+
</NavigationContainer>
39+
40+
<Toast config={toastConfig} />
41+
</TamaguiProvider>
3442
</SafeAreaProvider>
3543
</PersistGate>
3644
</Provider>

src/components/AppVersion/index.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
import env from '@env';
2-
import { Flex, Text } from 'native-base';
32
import React, { FC } from 'react';
43
import VersionNumber from 'react-native-version-number';
4+
import { Text, YStack } from 'tamagui';
55

66
const EnvInfoView: FC = () => {
77
return (
8-
<Flex marginTop={5}>
8+
<YStack marginTop={5}>
99
{/* This is just to show you how to get values from the generated ENV file */}
10-
<Text fontSize="2xs" textAlign="center" paddingY="5px" color="ASBESTOS">{`ENV: ${env.ENV}`}</Text>
10+
<Text fontSize="$3" textAlign="center" paddingVertical={5} color="$absestos">{`ENV: ${env.ENV}`}</Text>
1111

1212
<Text
13-
fontSize="2xs"
13+
fontSize="$3"
1414
textAlign="center"
15-
color="ASBESTOS">{`v.${VersionNumber.appVersion}-${VersionNumber.buildVersion}`}</Text>
16-
</Flex>
15+
color="$absestos">{`v.${VersionNumber.appVersion}-${VersionNumber.buildVersion}`}</Text>
16+
</YStack>
1717
);
1818
};
1919

0 commit comments

Comments
 (0)