From 125f5282260420865f641f42e820d8c9565c0b93 Mon Sep 17 00:00:00 2001 From: Tuan Anh Le Date: Wed, 13 Oct 2021 10:49:06 +0700 Subject: [PATCH 1/5] fix: fix build --- ios/boilerplate.xcodeproj/project.pbxproj | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/ios/boilerplate.xcodeproj/project.pbxproj b/ios/boilerplate.xcodeproj/project.pbxproj index b5b9bbc..91c6b9a 100644 --- a/ios/boilerplate.xcodeproj/project.pbxproj +++ b/ios/boilerplate.xcodeproj/project.pbxproj @@ -51,9 +51,9 @@ 524DBD1A92E9490C9D5487B0 /* Entypo.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Entypo.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Entypo.ttf"; sourceTree = ""; }; 538EF29B5E1F7D05A9858191 /* Pods-boilerplate-boilerplateTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-boilerplate-boilerplateTests.debug.xcconfig"; path = "Target Support Files/Pods-boilerplate-boilerplateTests/Pods-boilerplate-boilerplateTests.debug.xcconfig"; sourceTree = ""; }; 5B27CC67714A488CA13B23B2 /* FontAwesome5_Regular.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Regular.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Regular.ttf"; sourceTree = ""; }; - 670A9534BC834AF081FFD6EB /* iCielGalanoGrotesque-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "iCielGalanoGrotesque-Regular.otf"; path = "../assets/fonts/iCielGalanoGrotesque-Regular.otf"; sourceTree = ""; }; + 670A9534BC834AF081FFD6EB /* iCielGalanoGrotesque-Regular.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "iCielGalanoGrotesque-Regular.otf"; path = "../assets/fonts/iCielGalanoGrotesque-Regular.otf"; sourceTree = ""; }; 68A2749418D646B599D9134D /* Ionicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Ionicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Ionicons.ttf"; sourceTree = ""; }; - 784F6AFFE16A4273B4CB2D3A /* iCielGalanoGrotesque-SemiBold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "iCielGalanoGrotesque-SemiBold.otf"; path = "../assets/fonts/iCielGalanoGrotesque-SemiBold.otf"; sourceTree = ""; }; + 784F6AFFE16A4273B4CB2D3A /* iCielGalanoGrotesque-SemiBold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "iCielGalanoGrotesque-SemiBold.otf"; path = "../assets/fonts/iCielGalanoGrotesque-SemiBold.otf"; sourceTree = ""; }; 78748B2A4FE34B1E94ED71A1 /* MaterialCommunityIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialCommunityIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialCommunityIcons.ttf"; sourceTree = ""; }; 7C8C771EB5B94C22B6ED646A /* SimpleLineIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = SimpleLineIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf"; sourceTree = ""; }; 827E293D76F4422B9673F411 /* Zocial.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Zocial.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Zocial.ttf"; sourceTree = ""; }; @@ -61,12 +61,12 @@ 9E5606BE7B08463BAAC2DCAD /* FontAwesome5_Solid.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = FontAwesome5_Solid.ttf; path = "../node_modules/react-native-vector-icons/Fonts/FontAwesome5_Solid.ttf"; sourceTree = ""; }; A7F72A80DBA8481D9A72E157 /* Fontisto.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Fontisto.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Fontisto.ttf"; sourceTree = ""; }; AC0E43112F5349D09E20FE85 /* Octicons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Octicons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Octicons.ttf"; sourceTree = ""; }; - BD5E33A20A30470081FBEB26 /* iCielGalanoGrotesque-Medium.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "iCielGalanoGrotesque-Medium.otf"; path = "../assets/fonts/iCielGalanoGrotesque-Medium.otf"; sourceTree = ""; }; + BD5E33A20A30470081FBEB26 /* iCielGalanoGrotesque-Medium.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "iCielGalanoGrotesque-Medium.otf"; path = "../assets/fonts/iCielGalanoGrotesque-Medium.otf"; sourceTree = ""; }; DA7108D6A4950FC7DE23C1C3 /* Pods-boilerplate.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-boilerplate.release.xcconfig"; path = "Target Support Files/Pods-boilerplate/Pods-boilerplate.release.xcconfig"; sourceTree = ""; }; DCCD7727AE9D4156BEC16E4D /* MaterialIcons.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = MaterialIcons.ttf; path = "../node_modules/react-native-vector-icons/Fonts/MaterialIcons.ttf"; sourceTree = ""; }; E53969750F8F41AE9C2C7177 /* Foundation.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = Foundation.ttf; path = "../node_modules/react-native-vector-icons/Fonts/Foundation.ttf"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; - ED31B2D237AF46EB8F9F99FE /* iCielGalanoGrotesque-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = undefined; includeInIndex = 0; lastKnownFileType = unknown; name = "iCielGalanoGrotesque-Bold.otf"; path = "../assets/fonts/iCielGalanoGrotesque-Bold.otf"; sourceTree = ""; }; + ED31B2D237AF46EB8F9F99FE /* iCielGalanoGrotesque-Bold.otf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "iCielGalanoGrotesque-Bold.otf"; path = "../assets/fonts/iCielGalanoGrotesque-Bold.otf"; sourceTree = ""; }; EDA45DE1BCFED62525205527 /* Pods-boilerplate.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-boilerplate.debug.xcconfig"; path = "Target Support Files/Pods-boilerplate/Pods-boilerplate.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -632,7 +632,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = ( /usr/lib/swift, "$(inherited)", @@ -641,6 +641,7 @@ "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", "\"$(inherited)\"", + "\"$(SDKROOT)/usr/lib/swift\"", ); MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; @@ -690,7 +691,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 10.0; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; LD_RUNPATH_SEARCH_PATHS = ( /usr/lib/swift, "$(inherited)", @@ -699,6 +700,7 @@ "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", "\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"", "\"$(inherited)\"", + "\"$(SDKROOT)/usr/lib/swift\"", ); MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; From 4d60677d13f2e8ab7942c1d40c1ac35491a14b05 Mon Sep 17 00:00:00 2001 From: Tuan Anh Le Date: Wed, 13 Oct 2021 11:42:37 +0700 Subject: [PATCH 2/5] feat: change path name --- .babelrc | 24 ++++++------ .gitignore | 3 ++ .vscode/settings.json | 9 ++++- App.tsx | 6 +-- app/components/KeyboardContainer.tsx | 7 +--- app/components/NavBar.tsx | 5 +-- app/components/__tests__/NavBar.test.tsx | 11 ------ .../__tests__/NotificationContainer.test.tsx | 11 ------ .../__snapshots__/NavBar.test.tsx.snap | 29 --------------- .../NotificationContainer.test.tsx.snap | 7 ---- app/navigation/navigator/AppNavigator.tsx | 2 +- app/navigation/navigator/Main.tsx | 2 +- app/styles/theme/Theme.tsx | 12 ++---- app/utils/translations/localization/en.ts | 2 +- app/utils/translations/localization/vi.ts | 2 +- package.json | 2 +- tsconfig.json | 25 +++++++------ yarn.lock | 37 ++++++++++--------- 18 files changed, 72 insertions(+), 124 deletions(-) delete mode 100644 app/components/__tests__/NavBar.test.tsx delete mode 100644 app/components/__tests__/NotificationContainer.test.tsx delete mode 100644 app/components/__tests__/__snapshots__/NavBar.test.tsx.snap delete mode 100644 app/components/__tests__/__snapshots__/NotificationContainer.test.tsx.snap diff --git a/.babelrc b/.babelrc index dcf0b1d..b8a8d0c 100644 --- a/.babelrc +++ b/.babelrc @@ -6,18 +6,18 @@ { "root": ["."], "alias": { - "app" : "./app", - "assets/*": "./assets/*", - "images": "./assets/images", - "navigation": "./app/navigation", - "screens": "./app/screens", - "utils": "./app/utils", - "translations": "./app/utils/translations", - "languages": "./languages", - "styles": "./app/styles", - "components": "./app/components", - "constant": "./app/constant", - "context": "./app/context" + "@app": "./app", + "@assets/*": "./assets/*", + "@images": "./assets/images", + "@navigation": "./app/navigation", + "@screens": "./app/screens", + "@utils": "./app/utils", + "@translations": "./app/utils/translations", + "@languages": "./languages", + "@styles": "./app/styles", + "@components": "./app/components", + "@constant": "./app/constant", + "@context": "./app/context" } } ], diff --git a/.gitignore b/.gitignore index ad572e6..c3477a5 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,6 @@ buck-out/ # CocoaPods /ios/Pods/ + +# Test +__snapshots__ diff --git a/.vscode/settings.json b/.vscode/settings.json index 1e12d51..ab96aa2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,5 +6,12 @@ "source.organizeImports": false }, "eslint.packageManager": "yarn", - "cSpell.words": ["bootsplash", "bandcamp", "Entypo", "gorhom", "gradlew"] + "cSpell.words": [ + "bootsplash", + "bandcamp", + "Entypo", + "gorhom", + "gradlew", + "initi18next" + ] } diff --git a/App.tsx b/App.tsx index 2ae908e..b4cb140 100644 --- a/App.tsx +++ b/App.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { StatusBar } from 'react-native'; import { SafeAreaProvider } from 'react-native-safe-area-context'; -import AppNavigator from 'navigation/navigator/AppNavigator'; -import 'translations/initi18next'; -import AppTheme, { Colors } from 'styles'; +import AppNavigator from '@navigation/navigator/AppNavigator'; +import '@translations/initi18next'; +import AppTheme, { Colors } from '@styles'; const App = () => { return ( diff --git a/app/components/KeyboardContainer.tsx b/app/components/KeyboardContainer.tsx index c9f4321..c189f1e 100644 --- a/app/components/KeyboardContainer.tsx +++ b/app/components/KeyboardContainer.tsx @@ -2,7 +2,7 @@ import React from 'react'; import type { KeyboardAvoidingViewProps } from 'react-native'; import { KeyboardAvoidingView, StyleSheet } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; -import { isIOS13, isIOS } from 'utils/platform'; +import { isIOS } from '@utils/platform'; interface Props { modal?: boolean; @@ -10,13 +10,10 @@ interface Props { const KeyboardContainer: React.FC = ({ style, - modal, ...props }) => { const { bottom } = useSafeAreaInsets(); - const verticalOffset = isIOS - ? 8 + (modal && isIOS13 ? (bottom || 16) + 16 : 0) - : 4; + const verticalOffset = isIOS ? 8 : 4; return ( = ({ }) => { const navigation = useNavigation(); - const isSpecialHeader = isIOS13 && type === 'modal'; + const isSpecialHeader = false; const popToTop = () => { navigation.dispatch(StackActions.popToTop()); diff --git a/app/components/__tests__/NavBar.test.tsx b/app/components/__tests__/NavBar.test.tsx deleted file mode 100644 index 465d9e7..0000000 --- a/app/components/__tests__/NavBar.test.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; -import { shallow } from 'enzyme'; - -import NavBar from '../NavBar'; - -describe('NavBar', () => { - it('navbar match to snapshoot', () => { - const nav = shallow(); - expect(nav).toMatchSnapshot(); - }); -}); diff --git a/app/components/__tests__/NotificationContainer.test.tsx b/app/components/__tests__/NotificationContainer.test.tsx deleted file mode 100644 index b7ce03d..0000000 --- a/app/components/__tests__/NotificationContainer.test.tsx +++ /dev/null @@ -1,11 +0,0 @@ -import React from 'react'; -import { shallow } from 'enzyme'; - -import NotificationContainer from '../NotificationContainer'; - -describe('NotificationContainer', () => { - it('notification match to snapshoot', () => { - const notification = shallow(); - expect(notification).toMatchSnapshot(); - }); -}); diff --git a/app/components/__tests__/__snapshots__/NavBar.test.tsx.snap b/app/components/__tests__/__snapshots__/NavBar.test.tsx.snap deleted file mode 100644 index 0e1a833..0000000 --- a/app/components/__tests__/__snapshots__/NavBar.test.tsx.snap +++ /dev/null @@ -1,29 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`NavBar navbar match to snapshoot 1`] = ` - -`; diff --git a/app/components/__tests__/__snapshots__/NotificationContainer.test.tsx.snap b/app/components/__tests__/__snapshots__/NotificationContainer.test.tsx.snap deleted file mode 100644 index d848480..0000000 --- a/app/components/__tests__/__snapshots__/NotificationContainer.test.tsx.snap +++ /dev/null @@ -1,7 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`NotificationContainer notification match to snapshoot 1`] = ` - -`; diff --git a/app/navigation/navigator/AppNavigator.tsx b/app/navigation/navigator/AppNavigator.tsx index ba7fa6e..d9eb1a1 100644 --- a/app/navigation/navigator/AppNavigator.tsx +++ b/app/navigation/navigator/AppNavigator.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { NavigationContainer } from '@react-navigation/native'; -import { AuthProvider } from 'context/AuthContext'; +import { AuthProvider } from '@context/AuthContext'; import RNBootSplash from 'react-native-bootsplash'; import MainScreen from './Main'; diff --git a/app/navigation/navigator/Main.tsx b/app/navigation/navigator/Main.tsx index 6e44c82..6aa0baf 100644 --- a/app/navigation/navigator/Main.tsx +++ b/app/navigation/navigator/Main.tsx @@ -1,6 +1,6 @@ import React from 'react'; import { createNativeStackNavigator } from 'react-native-screens/native-stack'; -import Home from 'screens/home'; +import Home from '@screens/home'; const MainStack = createNativeStackNavigator(); diff --git a/app/styles/theme/Theme.tsx b/app/styles/theme/Theme.tsx index 6a63324..8d2b99c 100644 --- a/app/styles/theme/Theme.tsx +++ b/app/styles/theme/Theme.tsx @@ -1,12 +1,8 @@ import React from 'react'; -import { - ViewStyle, - Platform, - TextStyle, - ImageStyle, - TouchableOpacity as TouchableComponent, -} from 'react-native'; -import { ThemeProvider, FullTheme } from 'react-native-elements'; +import type { ViewStyle, TextStyle, ImageStyle } from 'react-native'; +import { Platform, TouchableOpacity as TouchableComponent } from 'react-native'; +import type { FullTheme } from 'react-native-elements'; +import { ThemeProvider } from 'react-native-elements'; import { Colors } from '../colors'; import { AndroidFontFamily, FontSize, FontWeight, FontFamily } from '../fonts'; diff --git a/app/utils/translations/localization/en.ts b/app/utils/translations/localization/en.ts index e111bf1..95c7d3e 100644 --- a/app/utils/translations/localization/en.ts +++ b/app/utils/translations/localization/en.ts @@ -1,4 +1,4 @@ -import { en as common } from 'languages'; +import { en as common } from '@languages'; const en = { common, diff --git a/app/utils/translations/localization/vi.ts b/app/utils/translations/localization/vi.ts index eae38fa..c9b79ac 100644 --- a/app/utils/translations/localization/vi.ts +++ b/app/utils/translations/localization/vi.ts @@ -1,4 +1,4 @@ -import { vi as common } from 'languages'; +import { vi as common } from '@languages'; const vi = { common, diff --git a/package.json b/package.json index 86c3ec4..0dd6b12 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "lint": "eslint . --ext .js,.jsx,.ts,.tsx" }, "dependencies": { - "@gorhom/bottom-sheet": "^3.6.4", + "@gorhom/bottom-sheet": "^4.1.2", "@react-hook/throttle": "^2.2.0", "@react-native-async-storage/async-storage": "^1.15.4", "@react-native-community/hooks": "^2.6.0", diff --git a/tsconfig.json b/tsconfig.json index a662ef9..cef91bc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,18 +14,19 @@ "resolveJsonModule": true, "baseUrl": ".", "paths": { - "app/*": ["app/*"], - "images": ["assets/images"], - "navigation/*": ["app/navigation/*"], - "screens/*": ["app/screens/*"], - "utils/*": ["app/utils/*"], - "utils": ["app/utils"], - "translations/*": ["app/utils/translations/*"], - "languages/*": ["languages/*"], - "styles": ["app/styles"], - "components/*": ["app/components/*"], - "constant/*": ["app/constant/*"], - "context/*": ["app/context/*"] + "@app/*": ["app/*"], + "@images": ["assets/images"], + "@navigation/*": ["app/navigation/*"], + "@screens/*": ["app/screens/*"], + "@utils/*": ["app/utils/*"], + "@utils": ["app/utils"], + "@translations/*": ["app/utils/translations/*"], + "@languages/*": ["languages/*"], + "@languages": ["languages"], + "@styles": ["app/styles"], + "@components/*": ["app/components/*"], + "@constant/*": ["app/constant/*"], + "@context/*": ["app/context/*"] } }, "exclude": [ diff --git a/yarn.lock b/yarn.lock index e429d54..856ad38 100644 --- a/yarn.lock +++ b/yarn.lock @@ -775,22 +775,21 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@gorhom/bottom-sheet@^3.6.4": - version "3.6.6" - resolved "https://registry.yarnpkg.com/@gorhom/bottom-sheet/-/bottom-sheet-3.6.6.tgz#73e8ffaba6b417c353a8933a3ed09f10a8fd3e9d" - integrity sha512-zI6NJDp1aApSIioPXdxfwaaxoHIu/YP3onAfYLjKzbdRNG+fwoRYiF1NsxXJAnpCP1I7krNvFemWp/obSOddQw== +"@gorhom/bottom-sheet@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@gorhom/bottom-sheet/-/bottom-sheet-4.1.2.tgz#c648f47d0853fa3cf7279813dad6de8dbf2e6e72" + integrity sha512-nSKSkUDEzRaMTv1PN5CVy1aZLYvenDZrxtSQLB1JOb8qRF4jRqgJc3I2Hil9lB9MeyrtiC07a3Q2m/HccN1FxQ== dependencies: - "@gorhom/portal" "^1.0.4" + "@gorhom/portal" "^1.0.9" invariant "^2.2.4" nanoid "^3.1.20" - react-native-redash "^16.0.10" + react-native-redash "^16.1.1" -"@gorhom/portal@^1.0.4": - version "1.0.7" - resolved "https://registry.yarnpkg.com/@gorhom/portal/-/portal-1.0.7.tgz#e27cd40f8e2b6cb742050bcaa00fdcf94f3dfca8" - integrity sha512-lDZZ5/cjvg1GHrK6Swljv1EssndiVz0iXsIOpsI8FS6IDyxIDDnzbHQ6ZhLp95jDhDyE0UTUsAjL2PeI2yVKMQ== +"@gorhom/portal@^1.0.9": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@gorhom/portal/-/portal-1.0.9.tgz#bd66e0e27e49fa3163b89c4c23661f31471a6343" + integrity sha512-tQUBKf1kDLK1l+0duYBxRqNMtdIrOAIp2H36Bc7/qUZXRxP1rUvj7EMmv6tdlKN/MzEiKPGx9wY0EmOYTjXIFQ== dependencies: - immer "^9.0.3" nanoid "^3.1.23" "@hapi/hoek@^9.0.0": @@ -4213,11 +4212,6 @@ image-size@^0.6.0: resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.3.tgz#e7e5c65bb534bd7cdcedd6cb5166272a85f75fb2" integrity sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA== -immer@^9.0.3: - version "9.0.5" - resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.5.tgz#a7154f34fe7064f15f00554cc94c66cc0bf453ec" - integrity sha512-2WuIehr2y4lmYz9gaQzetPR2ECniCifk4ORaQbU3g5EalLt+0IVTosEPJ5BoYl/75ky2mivzdRzV8wWgQGOSYQ== - import-fresh@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" @@ -6704,7 +6698,7 @@ react-native-reanimated@^2.2.1: mockdate "^3.0.2" string-hash-64 "^1.0.3" -react-native-redash@^16.0.10, react-native-redash@^16.0.11: +react-native-redash@^16.0.11: version "16.2.0" resolved "https://registry.yarnpkg.com/react-native-redash/-/react-native-redash-16.2.0.tgz#72204bdcdc5c48ccd8bd630e3a954ae5174809b3" integrity sha512-4xRWT6sUTjTM7i7Yd6fEiuylzIPmjYl9XlhL7Tz/NJOPBs+ib6ku7ptF5PRgQIshbQ6kIFwXJWoQ9H71zOMwvA== @@ -6713,6 +6707,15 @@ react-native-redash@^16.0.10, react-native-redash@^16.0.11: normalize-svg-path "^1.0.1" parse-svg-path "^0.1.2" +react-native-redash@^16.1.1: + version "16.2.2" + resolved "https://registry.yarnpkg.com/react-native-redash/-/react-native-redash-16.2.2.tgz#99ecb49810aab8ed778b6d8c8726a29117065d96" + integrity sha512-febggvSI93H796DS1ufNNf/8FQMw21UTiMYBRscmhzyIamcC194oNamW1UtbreRSC1OweKBDEbyxPSugiuncmQ== + dependencies: + abs-svg-path "^0.1.1" + normalize-svg-path "^1.0.1" + parse-svg-path "^0.1.2" + react-native-safe-area-context@^3.2.0: version "3.3.0" resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-3.3.0.tgz#6e0b45baa031589ec9c54f8359ace166a36aa5e5" From d7f0d3749374912dcc978c97d824f6e276bbb176 Mon Sep 17 00:00:00 2001 From: Tuan Anh Le Date: Wed, 13 Oct 2021 16:41:07 +0700 Subject: [PATCH 3/5] feat: pump reanimated ver2.2.2 --- index.js | 1 + ios/Podfile.lock | 4 ++-- package.json | 2 +- yarn.lock | 8 ++++---- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/index.js b/index.js index 016f62c..2ff5bdc 100644 --- a/index.js +++ b/index.js @@ -2,6 +2,7 @@ * @format */ +import 'react-native-gesture-handler'; import { AppRegistry } from 'react-native'; import App from './App'; diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 662213a..dfe4ec8 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -349,7 +349,7 @@ PODS: - React-Core - RNLocalize (2.1.1): - React-Core - - RNReanimated (2.2.1): + - RNReanimated (2.2.2): - DoubleConversion - FBLazyVector - FBReactNativeSpec @@ -604,7 +604,7 @@ SPEC CHECKSUMS: RNDeviceInfo: 7b82d1467b87f7e74d1c7ba9439a9a57d0c68ee9 RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211 RNLocalize: 82a569022724d35461e2dc5b5d015a13c3ca995b - RNReanimated: d29057cf85e771be4f0180ba1d00a7185e423a7d + RNReanimated: ad24db8af24e3fe1b5c462785bc3db8d5baae2ee RNScreens: 01ab149b5dd5c27f5ff26741b1d2bdf2cee1af35 RNSVG: 551acb6562324b1d52a4e0758f7ca0ec234e278f RNVectorIcons: 31cebfcf94e8cf8686eb5303ae0357da64d7a5a4 diff --git a/package.json b/package.json index 0dd6b12..80c67ab 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "react-native-linear-gradient": "^2.5.6", "react-native-localize": "^2.0.2", "react-native-modal": "^11.10.0", - "react-native-reanimated": "^2.2.1", + "react-native-reanimated": "^2.2.2", "react-native-redash": "^16.0.11", "react-native-safe-area-context": "^3.2.0", "react-native-screens": "^3.2.0", diff --git a/yarn.lock b/yarn.lock index 856ad38..f81efa6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6688,10 +6688,10 @@ react-native-ratings@8.0.4: dependencies: lodash "^4.17.15" -react-native-reanimated@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-2.2.1.tgz#e9109aa2482c893266c5c0c546aebf1b764bf233" - integrity sha512-uyAlqFZCcriL3hPXq5zJ4KqAjxBoeinYoJogTIpwlEhmYfsP6oRNktq3PyYCu6/Dj5dXp7MXUcZInXyVSi/c9Q== +react-native-reanimated@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-2.2.2.tgz#8bc81c7ee93d599991507bb826050a5eeee1e7f2" + integrity sha512-Lfv4ogbNLU9x3DqhXUFza9pnzyTvPrw5xGC1wWA6aGXqZgyaikNLgC5dNWzxVbfEwRdOuLPFsai3LAcIM92TCg== dependencies: "@babel/plugin-transform-object-assign" "^7.10.4" fbjs "^3.0.0" From c0cb3ead2905a434e5dedc8e7d8ab0a460ef6088 Mon Sep 17 00:00:00 2001 From: Tuan Anh Le Date: Wed, 13 Oct 2021 20:16:33 +0700 Subject: [PATCH 4/5] feat: change param type --- app/navigation/navigator/AppNavigator.tsx | 7 +-- app/navigation/navigator/Main.tsx | 7 ++- app/navigation/utils/Navigation.tsx | 48 ++++++++++++++++++ app/navigation/utils/index.ts | 1 + app/screens/home/index.tsx | 15 +++++- ios/Podfile.lock | 12 ++--- package.json | 13 +++-- yarn.lock | 61 ++++++++++------------- 8 files changed, 109 insertions(+), 55 deletions(-) create mode 100644 app/navigation/utils/Navigation.tsx create mode 100644 app/navigation/utils/index.ts diff --git a/app/navigation/navigator/AppNavigator.tsx b/app/navigation/navigator/AppNavigator.tsx index d9eb1a1..19e0384 100644 --- a/app/navigation/navigator/AppNavigator.tsx +++ b/app/navigation/navigator/AppNavigator.tsx @@ -1,17 +1,18 @@ -import React from 'react'; +import React, { useCallback } from 'react'; import { NavigationContainer } from '@react-navigation/native'; import { AuthProvider } from '@context/AuthContext'; import RNBootSplash from 'react-native-bootsplash'; +import { navigateRef } from '@navigation/utils'; import MainScreen from './Main'; const App = () => { - const hideSplash = React.useCallback(() => { + const hideSplash = useCallback(() => { RNBootSplash.hide({ fade: true }); }, []); return ( - + diff --git a/app/navigation/navigator/Main.tsx b/app/navigation/navigator/Main.tsx index 6aa0baf..c82e1ec 100644 --- a/app/navigation/navigator/Main.tsx +++ b/app/navigation/navigator/Main.tsx @@ -1,8 +1,11 @@ import React from 'react'; import { createNativeStackNavigator } from 'react-native-screens/native-stack'; +import type { HomeScreenParam } from '@screens/home'; import Home from '@screens/home'; -const MainStack = createNativeStackNavigator(); +type MainParam = HomeScreenParam; + +const MainStack = createNativeStackNavigator(); const MainScreen = () => { return ( @@ -10,7 +13,7 @@ const MainScreen = () => { screenOptions={{ headerShown: false, }}> - + ); }; diff --git a/app/navigation/utils/Navigation.tsx b/app/navigation/utils/Navigation.tsx new file mode 100644 index 0000000..572e8df --- /dev/null +++ b/app/navigation/utils/Navigation.tsx @@ -0,0 +1,48 @@ +import type React from 'react'; +import { createRef } from 'react'; +import type { + NavigationContainerRef, + NavigationProp, + ParamListBase, + RouteProp, +} from '@react-navigation/core'; + +export const navigateRef = createRef(); + +export type ScreenComponent< + P extends ParamListBase = ParamListBase, + N extends keyof P = string, +> = React.ComponentType<{ + route: RouteProp; + navigation: NavigationProp

; +}>; + +type ScreenType< + P extends ParamListBase, + N extends keyof P, + O extends Record, +> = { + screen: { + name: N; + component: ScreenComponent; + options?: O; + }; + present: (n: NavigationProp

, p?: P[N]) => void; +}; + +export function registerScreen< + P extends ParamListBase = ParamListBase, + N extends keyof P = string, + O extends Record = Record, +>(name: N, Comp: ScreenComponent, options?: O): ScreenType { + return { + screen: { + name, + component: Comp, + options, + }, + present: (navigation: NavigationProp

, params?: P[N]) => { + navigation.navigate({ name, params: params as P[N] }); + }, + }; +} diff --git a/app/navigation/utils/index.ts b/app/navigation/utils/index.ts new file mode 100644 index 0000000..95e14a9 --- /dev/null +++ b/app/navigation/utils/index.ts @@ -0,0 +1 @@ +export * from './Navigation'; diff --git a/app/screens/home/index.tsx b/app/screens/home/index.tsx index 495e143..61524ba 100644 --- a/app/screens/home/index.tsx +++ b/app/screens/home/index.tsx @@ -1,8 +1,19 @@ import React from 'react'; import { View } from 'react-native'; +import type { ScreenComponent } from '@navigation/utils'; +import { registerScreen } from '@navigation/utils'; -const HomeScreen = () => { +const Name = 'HomeScreen'; + +export type HomeScreenParam = { + [Name]: Record; +}; + +const HomeScreen: ScreenComponent = () => { return ; }; -export default HomeScreen; +export default registerScreen( + 'HomeScreen', + HomeScreen, +); diff --git a/ios/Podfile.lock b/ios/Podfile.lock index dfe4ec8..3f775ad 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -271,7 +271,7 @@ PODS: - React-jsi (= 0.65.1) - React-perflogger (= 0.65.1) - React-jsinspector (0.65.1) - - react-native-safe-area-context (3.3.0): + - react-native-safe-area-context (3.3.2): - React-Core - React-perflogger (0.65.1) - React-RCTActionSheet (0.65.1): @@ -343,11 +343,11 @@ PODS: - React-Core - RNCMaskedView (0.1.11): - React - - RNDeviceInfo (8.3.1): + - RNDeviceInfo (8.4.0): - React-Core - RNGestureHandler (1.10.3): - React-Core - - RNLocalize (2.1.1): + - RNLocalize (2.1.5): - React-Core - RNReanimated (2.2.2): - DoubleConversion @@ -585,7 +585,7 @@ SPEC CHECKSUMS: React-jsi: 12913c841713a15f64eabf5c9ad98592c0ec5940 React-jsiexecutor: 43f2542aed3c26e42175b339f8d37fe3dd683765 React-jsinspector: 41e58e5b8e3e0bf061fdf725b03f2144014a8fb0 - react-native-safe-area-context: 61c8c484a3a9e7d1fda19f7b1794b35bbfd2262a + react-native-safe-area-context: 584dc04881deb49474363f3be89e4ca0e854c057 React-perflogger: fd28ee1f2b5b150b00043f0301d96bd417fdc339 React-RCTActionSheet: 7f3fa0855c346aa5d7c60f9ced16e067db6d29fa React-RCTAnimation: 2119a18ee26159004b001bc56404ca5dbaae6077 @@ -601,9 +601,9 @@ SPEC CHECKSUMS: RNBootSplash: 4844706cbb56a3270556c9b94e59dedadccd47e4 RNCAsyncStorage: b7c6564ce662366dd44d0189456183ef7eda2d4d RNCMaskedView: 0e1bc4bfa8365eba5fbbb71e07fbdc0555249489 - RNDeviceInfo: 7b82d1467b87f7e74d1c7ba9439a9a57d0c68ee9 + RNDeviceInfo: 8a06046616c6b5c03787b04f265fa3b52b37c80b RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211 - RNLocalize: 82a569022724d35461e2dc5b5d015a13c3ca995b + RNLocalize: 74b82db20cc3895ccc25af992c644879bcec2815 RNReanimated: ad24db8af24e3fe1b5c462785bc3db8d5baae2ee RNScreens: 01ab149b5dd5c27f5ff26741b1d2bdf2cee1af35 RNSVG: 551acb6562324b1d52a4e0758f7ca0ec234e278f diff --git a/package.json b/package.json index 80c67ab..9de09df 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "@react-navigation/core": "^5.15.3", "@react-navigation/native": "^5.9.4", "@react-navigation/stack": "^5.14.5", - "axios": "^0.21.1", + "axios": "^0.23.0", "i18n-js": "^3.8.0", "i18next": "^20.2.1", "intl": "^1.2.5", @@ -30,15 +30,14 @@ "react-i18next": "^11.8.13", "react-native": "0.65.1", "react-native-bootsplash": "^3.2.3", - "react-native-device-info": "^8.1.3", - "react-native-elements": "^3.4.1", + "react-native-device-info": "^8.4.0", + "react-native-elements": "^3.4.2", "react-native-gesture-handler": "^1.10.3", "react-native-linear-gradient": "^2.5.6", - "react-native-localize": "^2.0.2", - "react-native-modal": "^11.10.0", + "react-native-localize": "^2.1.5", + "react-native-modal": "^13.0.0", "react-native-reanimated": "^2.2.2", - "react-native-redash": "^16.0.11", - "react-native-safe-area-context": "^3.2.0", + "react-native-safe-area-context": "^3.3.2", "react-native-screens": "^3.2.0", "react-native-svg": "^12.1.1", "react-native-vector-icons": "^8.1.0" diff --git a/yarn.lock b/yarn.lock index f81efa6..0c2a4fd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2224,12 +2224,12 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -axios@^0.21.1: - version "0.21.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.1.tgz#22563481962f4d6bde9a76d516ef0e5d3c09b2b8" - integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== +axios@^0.23.0: + version "0.23.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.23.0.tgz#b0fa5d0948a8d1d75e3d5635238b6c4625b05149" + integrity sha512-NmvAE4i0YAv5cKq8zlDoPd1VLKAqX5oLuZKs8xkJa4qi6RGn0uhCYFjWtHHC9EM/MwOwYWOs53W+V0aqEXq1sg== dependencies: - follow-redirects "^1.10.0" + follow-redirects "^1.14.4" babel-core@^7.0.0-bridge.0: version "7.0.0-bridge.0" @@ -3814,10 +3814,10 @@ flow-parser@^0.121.0: resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.121.0.tgz#9f9898eaec91a9f7c323e9e992d81ab5c58e618f" integrity sha512-1gIBiWJNR0tKUNv8gZuk7l9rVX06OuLzY9AoGio7y/JT4V1IZErEMEq2TJS+PFcw/y0RshZ1J/27VfK1UQzYVg== -follow-redirects@^1.10.0: - version "1.14.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.2.tgz#cecb825047c00f5e66b142f90fed4f515dec789b" - integrity sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA== +follow-redirects@^1.14.4: + version "1.14.4" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.4.tgz#838fdf48a8bbdd79e52ee51fb1c94e3ed98b9379" + integrity sha512-zwGkiSXC1MUJG/qmeIFH2HBJx9u0V46QGUe3YR1fXG8bXQxq7fLj0RjLZQ5nubr9qNJUZrH+xUcwXEoXNpfS+g== for-in@^0.1.3: version "0.1.8" @@ -6628,12 +6628,12 @@ react-native-codegen@^0.0.7: jscodeshift "^0.11.0" nullthrows "^1.1.1" -react-native-device-info@^8.1.3: - version "8.3.1" - resolved "https://registry.yarnpkg.com/react-native-device-info/-/react-native-device-info-8.3.1.tgz#f32cbb22a74e51b05b896c03649fcbfd0a0da513" - integrity sha512-tEJlyECZeFVZcEJVSZIN8OGghnlrZmSy0J8PGU4mCNk4KMTvx3tHpHMc6c7afl3lS2vOBP3jslzHzRMDgh42cA== +react-native-device-info@^8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/react-native-device-info/-/react-native-device-info-8.4.0.tgz#c434af5c928c7f8e2c3b1a1ca07061b83d50ccd4" + integrity sha512-/ZHDJajkEmjNmjvm52o7pqIpR2uKocD66iH00GMe5QpUdM9u9vDxS2hgcRbgrVaKEfA5IRIBctpalYMrrbQU+Q== -react-native-elements@^3.4.1: +react-native-elements@^3.4.2: version "3.4.2" resolved "https://registry.yarnpkg.com/react-native-elements/-/react-native-elements-3.4.2.tgz#66602be9c5e0e0a2a831913adec80ff6518d1ee2" integrity sha512-m0eAWOn7JuR1wNTNY0WHuaqst4LI/gFE4N5Bbyfsc4DiryWsMST7aAg5w/Gos4IexWIzhLKCIkPxthND1m/8Xg== @@ -6668,15 +6668,15 @@ react-native-linear-gradient@^2.5.6: resolved "https://registry.yarnpkg.com/react-native-linear-gradient/-/react-native-linear-gradient-2.5.6.tgz#96215cbc5ec7a01247a20890888aa75b834d44a0" integrity sha512-HDwEaXcQIuXXCV70O+bK1rizFong3wj+5Q/jSyifKFLg0VWF95xh8XQgfzXwtq0NggL9vNjPKXa016KuFu+VFg== -react-native-localize@^2.0.2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/react-native-localize/-/react-native-localize-2.1.1.tgz#da8f8776991d2b748708c408db05152602cefb38" - integrity sha512-+uyz2/b0vyLq19fcb7r1qU1gqmzbp3aC6EMTvOVXwfBuiN+aJXR/fDdFOJJ8D7+bLccKeuS2zBDrazh+ZayX/g== +react-native-localize@^2.1.5: + version "2.1.5" + resolved "https://registry.yarnpkg.com/react-native-localize/-/react-native-localize-2.1.5.tgz#79b4cd39151d4f38f8d6602572b0cbf9d7e7578d" + integrity sha512-1ADxILk78P1iA5vdhfD/UsrlliINA1iuExu0n7l+0XpYsNIo5S68HFAkhGiZqO8cZUPNlpx75klZkAu9c3iMXw== -react-native-modal@^11.10.0: - version "11.10.0" - resolved "https://registry.yarnpkg.com/react-native-modal/-/react-native-modal-11.10.0.tgz#94a6d3a2428ba5228cfb4dc174cacea79c871591" - integrity sha512-syRYDJYSh16bR37R5EKU9T/wC+5bEOfF17IUqf5URdhbEDd+hxyMInC++l45E8oI+MtdOaEp9yAws5xDqk8dnA== +react-native-modal@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/react-native-modal/-/react-native-modal-13.0.0.tgz#b7117400cae8548e713eed760077dee44f78628e" + integrity sha512-k6r9T31mc7HIDFj1V53ceAAN1dwc8052c4JLtDVEmEQ19Bbq9yiLXoDsQuNb+hB8A+2tVOXmo5Gq4IQfb11upw== dependencies: prop-types "^15.6.2" react-native-animatable "1.3.3" @@ -6698,15 +6698,6 @@ react-native-reanimated@^2.2.2: mockdate "^3.0.2" string-hash-64 "^1.0.3" -react-native-redash@^16.0.11: - version "16.2.0" - resolved "https://registry.yarnpkg.com/react-native-redash/-/react-native-redash-16.2.0.tgz#72204bdcdc5c48ccd8bd630e3a954ae5174809b3" - integrity sha512-4xRWT6sUTjTM7i7Yd6fEiuylzIPmjYl9XlhL7Tz/NJOPBs+ib6ku7ptF5PRgQIshbQ6kIFwXJWoQ9H71zOMwvA== - dependencies: - abs-svg-path "^0.1.1" - normalize-svg-path "^1.0.1" - parse-svg-path "^0.1.2" - react-native-redash@^16.1.1: version "16.2.2" resolved "https://registry.yarnpkg.com/react-native-redash/-/react-native-redash-16.2.2.tgz#99ecb49810aab8ed778b6d8c8726a29117065d96" @@ -6716,10 +6707,10 @@ react-native-redash@^16.1.1: normalize-svg-path "^1.0.1" parse-svg-path "^0.1.2" -react-native-safe-area-context@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-3.3.0.tgz#6e0b45baa031589ec9c54f8359ace166a36aa5e5" - integrity sha512-IrCNx56LO9RJ75yCf2CSSO1ceLj3mvxTAF+HWnehaeRIfF4pIcIn3WEUlXulFiha641OKS5X0+1XZCbbQ7pITA== +react-native-safe-area-context@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-3.3.2.tgz#9549a2ce580f2374edb05e49d661258d1b8bcaed" + integrity sha512-yOwiiPJ1rk+/nfK13eafbpW6sKW0jOnsRem2C1LPJjM3tfTof6hlvV5eWHATye3XOpu2cJ7N+HdkUvUDGwFD2Q== react-native-screens@^3.2.0: version "3.5.0" From e21d7e7926aeebd5ed431c2d5043482056d2411f Mon Sep 17 00:00:00 2001 From: Tuan Anh Le Date: Wed, 13 Oct 2021 22:15:55 +0700 Subject: [PATCH 5/5] feat: update fonts --- .../src/main/assets/fonts/GoogleSans-Bold.ttf | Bin 0 -> 119180 bytes .../assets/fonts/GoogleSans-BoldItalic.ttf | Bin 0 -> 123192 bytes .../main/assets/fonts/GoogleSans-Italic.ttf | Bin 0 -> 125540 bytes .../main/assets/fonts/GoogleSans-Light.ttf | Bin 0 -> 92564 bytes .../main/assets/fonts/GoogleSans-Medium.ttf | Bin 0 -> 121168 bytes .../assets/fonts/GoogleSans-MediumItalic.ttf | Bin 0 -> 121588 bytes .../main/assets/fonts/GoogleSans-Regular.ttf | Bin 0 -> 122672 bytes .../fonts/iCielGalanoGrotesque-Bold.otf | Bin 59412 -> 0 bytes .../fonts/iCielGalanoGrotesque-Medium.otf | Bin 58480 -> 0 bytes .../fonts/iCielGalanoGrotesque-Regular.otf | Bin 57968 -> 0 bytes .../fonts/iCielGalanoGrotesque-SemiBold.otf | Bin 58964 -> 0 bytes app/styles/fonts/Fonts.ts | 13 ++++------ assets/fonts/GoogleSans-Bold.ttf | Bin 0 -> 119180 bytes assets/fonts/GoogleSans-Light.ttf | Bin 0 -> 92564 bytes assets/fonts/GoogleSans-Medium.ttf | Bin 0 -> 121168 bytes assets/fonts/GoogleSans-Regular.ttf | Bin 0 -> 122672 bytes assets/fonts/iCielGalanoGrotesque-Bold.otf | Bin 59412 -> 0 bytes assets/fonts/iCielGalanoGrotesque-Medium.otf | Bin 58480 -> 0 bytes assets/fonts/iCielGalanoGrotesque-Regular.otf | Bin 57968 -> 0 bytes .../fonts/iCielGalanoGrotesque-SemiBold.otf | Bin 58964 -> 0 bytes ios/boilerplate.xcodeproj/project.pbxproj | 24 ++++++++++++------ ios/boilerplate/Info.plist | 8 +++--- 22 files changed, 25 insertions(+), 20 deletions(-) create mode 100644 android/app/src/main/assets/fonts/GoogleSans-Bold.ttf create mode 100644 android/app/src/main/assets/fonts/GoogleSans-BoldItalic.ttf create mode 100644 android/app/src/main/assets/fonts/GoogleSans-Italic.ttf create mode 100644 android/app/src/main/assets/fonts/GoogleSans-Light.ttf create mode 100644 android/app/src/main/assets/fonts/GoogleSans-Medium.ttf create mode 100644 android/app/src/main/assets/fonts/GoogleSans-MediumItalic.ttf create mode 100644 android/app/src/main/assets/fonts/GoogleSans-Regular.ttf delete mode 100644 android/app/src/main/assets/fonts/iCielGalanoGrotesque-Bold.otf delete mode 100644 android/app/src/main/assets/fonts/iCielGalanoGrotesque-Medium.otf delete mode 100644 android/app/src/main/assets/fonts/iCielGalanoGrotesque-Regular.otf delete mode 100644 android/app/src/main/assets/fonts/iCielGalanoGrotesque-SemiBold.otf create mode 100644 assets/fonts/GoogleSans-Bold.ttf create mode 100644 assets/fonts/GoogleSans-Light.ttf create mode 100644 assets/fonts/GoogleSans-Medium.ttf create mode 100644 assets/fonts/GoogleSans-Regular.ttf delete mode 100644 assets/fonts/iCielGalanoGrotesque-Bold.otf delete mode 100644 assets/fonts/iCielGalanoGrotesque-Medium.otf delete mode 100644 assets/fonts/iCielGalanoGrotesque-Regular.otf delete mode 100644 assets/fonts/iCielGalanoGrotesque-SemiBold.otf diff --git a/android/app/src/main/assets/fonts/GoogleSans-Bold.ttf b/android/app/src/main/assets/fonts/GoogleSans-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..cc1dd2e32606dd50342f58f7f338387916e5c74e GIT binary patch literal 119180 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

QxU0;7O`ESYi#-+^vN9{~3a42ccO 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/assets/fonts/GoogleSans-BoldItalic.ttf b/android/app/src/main/assets/fonts/GoogleSans-BoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..557c583a9556271b0d63872c189f7ad724eacc20 GIT binary patch literal 123192 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