NTP-7916 | React Native Version Bump (#1011)

Co-authored-by: varnit goyal <github.cicd@navi.com>
Co-authored-by: Varnit Goyal <varnit.goyal@navi.com>
This commit is contained in:
Mantri Ramkishor
2024-11-20 10:47:47 +05:30
committed by GitHub
parent 89c268f9ce
commit 690e235026
20 changed files with 1579 additions and 991 deletions

View File

@@ -43,7 +43,7 @@ on:
default: "3.2.1"
jobs:
generate:
runs-on: [ default ]
runs-on: [macos]
outputs:
package_version: ${{ github.event.inputs.version_name }}
build_number: ${{ github.event.inputs.version_code }}
@@ -55,10 +55,10 @@ jobs:
submodules: recursive
- name: update codepush key QA
if: (github.event.inputs.environment == 'QA' || inputs.environment == 'QA')
run: sed -i "s/pastekeyhere/${{ secrets.CODEPUSH_QA_KEY }}/" android/app/src/main/res/values/strings.xml && cat android/app/src/main/res/values/strings.xml
run: sed -i "" "s/pastekeyhere/${{ secrets.CODEPUSH_QA_KEY }}/" android/app/src/main/res/values/strings.xml && cat android/app/src/main/res/values/strings.xml
- name: update codepush key PROD
if: (github.event.inputs.environment == 'Prod' || inputs.environment == 'Prod')
run: sed -i "s/pastekeyhere/${{ secrets.CODEPUSH_PROD_KEY }}/" android/app/src/main/res/values/strings.xml && cat android/app/src/main/res/values/strings.xml
run: sed -i "" "s/pastekeyhere/${{ secrets.CODEPUSH_PROD_KEY }}/" android/app/src/main/res/values/strings.xml && cat android/app/src/main/res/values/strings.xml
- name: Generate keystore
if: (github.event.inputs.type == 'release' || inputs.type == 'release')
run: echo "${{ secrets.KEY_STORE }}" > keystore.asc && gpg -d --passphrase "${{ secrets.PASSPHARASE }}" --batch keystore.asc > android/app/my-upload-key.keystore
@@ -72,10 +72,10 @@ jobs:
run: yarn
- name: Override App Version Code
if: github.event_name == 'workflow_dispatch' && github.event.inputs.version_code != ''
run: sed -i 's/def VERSION_CODE = [0-9].*/def VERSION_CODE = ${{ github.event.inputs.version_code }}/g' android/app/build.gradle
run: sed -i "" 's/def VERSION_CODE = [0-9].*/def VERSION_CODE = ${{ github.event.inputs.version_code }}/g' android/app/build.gradle
- name: Override App Version Name
if: github.event_name == 'workflow_dispatch' && github.event.inputs.version_name != ''
run: sed -i 's/def VERSION_NAME = "[0-9].*"/def VERSION_NAME = "${{ github.event.inputs.version_name }}"/g' android/app/build.gradle
run: sed -i "" 's/def VERSION_NAME = "[0-9].*"/def VERSION_NAME = "${{ github.event.inputs.version_name }}"/g' android/app/build.gradle
- name: Log Build Metadata
run: |
echo "Commit SHA: ${{ github.sha }}"
@@ -168,7 +168,7 @@ jobs:
generate_source_map:
needs: generate
runs-on: [default]
runs-on: [macos]
outputs:
package_version: ${{ needs.generate.outputs.package_version }}
build_number: ${{ needs.generate.outputs.build_number }}
@@ -233,7 +233,7 @@ jobs:
upload_sourcemap_cybertron:
needs: generate_source_map
runs-on: [default]
runs-on: [macos]
if: success() && (github.event.inputs.environment == 'Prod')
steps:
- name: Download Source Map
@@ -267,7 +267,7 @@ jobs:
create_release_tag:
needs: generate_source_map
runs-on: [default]
runs-on: [macos]
if: success() && (github.event.inputs.environment == 'Prod') && (github.event.inputs.releaseType == 'HARD_RELEASE' || inputs.releaseType == 'HARD_RELEASE') # Only create source map for Prod releases and not for test builds
steps:
- name: Checkout

View File

@@ -1,9 +1,6 @@
apply plugin: "com.android.application"
apply plugin: "com.google.gms.google-services"
apply plugin: "com.google.firebase.crashlytics"
apply plugin: 'com.google.firebase.firebase-perf'
apply plugin: "com.facebook.react"
import com.android.build.OutputFile
import org.apache.tools.ant.taskdefs.condition.Os
/**
@@ -86,19 +83,8 @@ project.ext.react = [
enableNewArchitecture: true
]
apply from: "../../node_modules/react-native/react.gradle"
apply from: "../../node_modules/react-native-code-push/android/codepush.gradle"
/**
* Set this to true to create two separate APKs instead of one:
* - An APK that only works on ARM devices
* - An APK that only works on x86 devices
* The advantage is the size of the APK is reduced by about 4MB.
* Upload all the APKs to the Play Store and people will download
* the correct one based on the CPU architecture of their device.
*/
def enableSeparateBuildPerCPUArchitecture = false
/**
* Run Proguard to shrink the Java bytecode in release builds.
*/
@@ -126,18 +112,12 @@ def jscFlavor = 'org.webkit:android-jsc:+'
*/
def enableHermes = project.ext.react.get("enableHermes", false);
/**
* Architectures to build native code for.
*/
def reactNativeArchitectures() {
def value = project.getProperties().get("reactNativeArchitectures")
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
}
def VERSION_CODE = 215
def VERSION_NAME = "2.15.1"
def VERSION_CODE = 216
def VERSION_NAME = "2.15.2"
android {
namespace "com.avapp"
ndkVersion rootProject.ext.ndkVersion
compileSdkVersion rootProject.ext.compileSdkVersion
@@ -148,80 +128,12 @@ android {
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode VERSION_CODE
versionName VERSION_NAME
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
buildConfigField "string", "FLAVOR", '"'
buildConfigField "string", "BUILD_FLAVOR", '"'
buildConfigField "string", "APP_NAME", '"'
buildConfigField "string", "API_KEY", '"'
if (isNewArchitectureEnabled()) {
// We configure the CMake build only if you decide to opt-in for the New Architecture.
externalNativeBuild {
cmake {
arguments "-DPROJECT_BUILD_DIR=$buildDir",
"-DREACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid",
"-DREACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build",
"-DNODE_MODULES_DIR=$rootDir/../node_modules",
"-DANDROID_STL=c++_shared"
}
}
if (!enableSeparateBuildPerCPUArchitecture) {
ndk {
abiFilters (*reactNativeArchitectures())
}
}
}
}
if (isNewArchitectureEnabled()) {
// We configure the NDK build only if you decide to opt-in for the New Architecture.
externalNativeBuild {
cmake {
path "$projectDir/src/main/jni/CMakeLists.txt"
}
}
def reactAndroidProjectDir = project(':ReactAndroid').projectDir
def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) {
dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck")
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
into("$buildDir/react-ndk/exported")
}
def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) {
dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck")
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
into("$buildDir/react-ndk/exported")
}
afterEvaluate {
// If you wish to add a custom TurboModule or component locally,
// you should uncomment this line.
// preBuild.dependsOn("generateCodegenArtifactsFromSchema")
preDebugBuild.dependsOn(packageReactNdkDebugLibs)
preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)
// Due to a bug inside AGP, we have to explicitly set a dependency
// between configureCMakeDebug* tasks and the preBuild tasks.
// This can be removed once this is solved: https://issuetracker.google.com/issues/207403732
configureCMakeRelWithDebInfo.dependsOn(preReleaseBuild)
configureCMakeDebug.dependsOn(preDebugBuild)
reactNativeArchitectures().each { architecture ->
tasks.findByName("configureCMakeDebug[${architecture}]")?.configure {
dependsOn("preDebugBuild")
}
tasks.findByName("configureCMakeRelWithDebInfo[${architecture}]")?.configure {
dependsOn("preReleaseBuild")
}
}
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include (*reactNativeArchitectures())
}
}
signingConfigs {
debug {
if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
@@ -259,21 +171,6 @@ android {
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// https://developer.android.com/studio/build/configure-apk-splits.html
// Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
defaultConfig.versionCode * 1000 + versionCodes.get(abi)
}
}
}
flavorDimensions "env"
productFlavors {
fieldAgentsQA {
@@ -328,48 +225,22 @@ dependencies {
implementation 'androidx.work:work-runtime-ktx:2.8.1'
//noinspection GradleDynamicVersion
implementation "com.facebook.react:react-native:+" // From node_modules
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
exclude group:'com.facebook.fbjni'
}
implementation("com.facebook.react:react-android")
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}")
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
exclude group:'com.squareup.okhttp3', module:'okhttp'
}
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
}
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}")
if (enableHermes) {
//noinspection GradleDynamicVersion
implementation("com.facebook.react:hermes-engine:+") { // From node_modules
exclude group:'com.facebook.fbjni'
}
implementation("com.facebook.react:hermes-android")
} else {
implementation jscFlavor
}
}
if (isNewArchitectureEnabled()) {
// If new architecture is enabled, we let you build RN from source
// Otherwise we fallback to a prebuilt .aar bundled in the NPM package.
// This will be applied to all the imported transtitive dependency.
configurations.all {
resolutionStrategy.dependencySubstitution {
substitute(module("com.facebook.react:react-native"))
.using(project(":ReactAndroid"))
.because("On New Architecture we're building React Native from source")
substitute(module("com.facebook.react:hermes-engine"))
.using(project(":ReactAndroid:hermes-engine"))
.because("On New Architecture we're building Hermes from source")
}
}
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
@@ -379,13 +250,8 @@ task copyDownloadableDepsToLibs(type: Copy) {
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
def isNewArchitectureEnabled() {
// To opt-in for the New Architecture, you can either:
// - Set `newArchEnabled` to true inside the `gradle.properties` file
// - Invoke gradle with `-newArchEnabled=true`
// - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
}
apply plugin: 'com.google.gms.google-services'
apply plugin: "com.google.firebase.crashlytics"
apply plugin: 'com.google.firebase.firebase-perf'

View File

@@ -27,7 +27,7 @@
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.RECEIVE_WAP_PUSH" />
<uses-permission android:name="android.permission.POST_NOTIFICATION" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>

View File

@@ -62,12 +62,12 @@ public class MainActivity extends ReactActivity implements AlfredFirebaseHelper
return reactRootView;
}
@Override
protected boolean isConcurrentRootEnabled() {
// If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).
// More on this on https://reactjs.org/blog/2022/03/29/react-v18.html
return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
}
// @Override
// protected boolean isConcurrentRootEnabled() {
// // If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).
// // More on this on https://reactjs.org/blog/2022/03/29/react-v18.html
// return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
// }
}
@Override

View File

@@ -23,7 +23,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle:7.2.1")
classpath("com.android.tools.build:gradle")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("de.undercouch:gradle-download-task:5.0.1")
// NOTE: Do not place your application dependencies here; they belong

View File

@@ -25,7 +25,7 @@ android.useAndroidX=true
android.enableJetifier=true
# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.125.0
FLIPPER_VERSION=0.182.0
VERSION_NAME=1.2.3
# Use this property to specify which architecture you want to build.

View File

@@ -1,5 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

9
android/gradlew vendored
View File

@@ -55,7 +55,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
@@ -84,6 +84,7 @@ APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
APP_NAME="Gradle"
APP_BASE_NAME=${0##*/}
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
@@ -205,6 +206,12 @@ set -- \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.

View File

@@ -2,7 +2,7 @@ rootProject.name = 'AVAPP'
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
include ':app', ':react-native-code-push'
include ':react-native-version-number'
includeBuild('../node_modules/react-native-gradle-plugin')
includeBuild('../node_modules/@react-native/gradle-plugin')
if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") {
include(":ReactAndroid")
@@ -10,6 +10,16 @@ if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true")
include(":ReactAndroid:hermes-engine")
project(":ReactAndroid:hermes-engine").projectDir = file('../node_modules/react-native/ReactAndroid/hermes-engine')
}
includeBuild('../node_modules/react-native') {
dependencySubstitution {
substitute(module("com.facebook.react:react-android")).using(project(":packages:react-native:ReactAndroid"))
substitute(module("com.facebook.react:react-native")).using(project(":packages:react-native:ReactAndroid"))
// substitute(module("com.facebook.react:hermes-android")).using(project(":packages:react-native:ReactAndroid:hermes-engine"))
// substitute(module("com.facebook.react:hermes-engine")).using(project(":packages:react-native:ReactAndroid:hermes-engine"))
}
}
project(':react-native-code-push').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-code-push/android/app')
project(':react-native-version-number').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-version-number/android')

View File

@@ -1,3 +1,4 @@
const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
const { withSentryConfig } = require('@sentry/react-native/metro');
/**
@@ -7,7 +8,7 @@ const { withSentryConfig } = require('@sentry/react-native/metro');
* @format
*/
module.exports = withSentryConfig({
const config = withSentryConfig({
transformer: {
getTransformOptions: async () => ({
transform: {
@@ -17,3 +18,5 @@ module.exports = withSentryConfig({
}),
},
});
module.exports = mergeConfig(getDefaultConfig(__dirname), config);

View File

@@ -1,24 +1,24 @@
{
"name": "AV_APP",
"version": "2.15.1",
"buildNumber": "215",
"version": "2.15.2",
"buildNumber": "216",
"private": true,
"scripts": {
"android:dev": "yarn move:dev && react-native run-android",
"android:qa": "yarn move:qa && react-native run-android",
"android:prod": "yarn move:prod && react-native run-android",
"android-field:dev": "yarn move:dev && react-native run-android --variant=fieldAgentsQADebug",
"android-field:qa": "yarn move:qa && react-native run-android --variant=fieldAgentsQADebug",
"android-field:prod": "yarn move:prod && react-native run-android --variant=fieldAgentsProdDebug",
"release-field:dev": "yarn move:dev && react-native run-android --variant=fieldAgentsQARelease && cd android && ./gradlew assemblefieldAgentsQARelease",
"release-field:qa": "yarn move:qa && react-native run-android --variant=fieldAgentsQARelease && cd android && ./gradlew assemblefieldAgentsQARelease",
"release-field:prod": "yarn move:prod && react-native run-android --variant=fieldAgentsProdRelease && cd android && ./gradlew assemblefieldAgentsProdRelease",
"android-calling:dev": "yarn move:dev && react-native run-android --variant=callingAgentsQADebug",
"android-calling:qa": "yarn move:qa && react-native run-android --variant=callingAgentsQADebug",
"android-calling:prod": "yarn move:prod && react-native run-android --variant=callingAgentsProdDebug",
"release-calling:dev": "yarn move:dev && react-native run-android --variant=callingAgentsQARelease && cd android && ./gradlew assemblecallingAgentsQARelease",
"release-calling:qa": "yarn move:qa && react-native run-android --variant=callingAgentsQARelease && cd android && ./gradlew assemblecallingAgentsQARelease",
"release-calling:prod": "yarn move:dev && react-native run-android --variant=callingAgentsProdRelease && cd android && ./gradlew assemblecallingAgentsProdRelease",
"android-field:dev": "yarn move:dev && react-native run-android --mode=fieldAgentsQADebug",
"android-field:qa": "yarn move:qa && react-native run-android --mode=fieldAgentsQADebug",
"android-field:prod": "yarn move:prod && react-native run-android --mode=fieldAgentsProdDebug",
"release-field:dev": "yarn move:dev && react-native run-android --mode=fieldAgentsQARelease && cd android && ./gradlew assemblefieldAgentsQARelease",
"release-field:qa": "yarn move:qa && react-native run-android --mode=fieldAgentsQARelease && cd android && ./gradlew assemblefieldAgentsQARelease",
"release-field:prod": "yarn move:prod && react-native run-android --mode=fieldAgentsProdRelease && cd android && ./gradlew assemblefieldAgentsProdRelease",
"android-calling:dev": "yarn move:dev && react-native run-android --mode=callingAgentsQADebug",
"android-calling:qa": "yarn move:qa && react-native run-android --mode=callingAgentsQADebug",
"android-calling:prod": "yarn move:prod && react-native run-android --mode=callingAgentsProdDebug",
"release-calling:dev": "yarn move:dev && react-native run-android --mode=callingAgentsQARelease && cd android && ./gradlew assemblecallingAgentsQARelease",
"release-calling:qa": "yarn move:qa && react-native run-android --mode=callingAgentsQARelease && cd android && ./gradlew assemblecallingAgentsQARelease",
"release-calling:prod": "yarn move:dev && react-native run-android --mode=callingAgentsProdRelease && cd android && ./gradlew assemblecallingAgentsProdRelease",
"ios": "react-native run-ios",
"start": "react-native start",
"test": "jest",
@@ -39,22 +39,23 @@
"@bam.tech/react-native-image-resizer": "3.0.5",
"@notifee/react-native": "7.8.2",
"@nozbe/with-observables": "1.4.1",
"@react-native/metro-config": "0.72.11",
"@react-native-async-storage/async-storage": "1.17.11",
"@react-native-clipboard/clipboard": "^1.11.2",
"@react-native-community/netinfo": "9.3.7",
"@react-native-firebase/analytics": "16.4.6",
"@react-native-firebase/app": "16.4.6",
"@react-native-firebase/auth": "16.5.0",
"@react-native-firebase/crashlytics": "16.5.0",
"@react-native-firebase/database": "16.4.6",
"@react-native-firebase/firestore": "16.5.0",
"@react-native-firebase/messaging": "17.4.0",
"@react-native-firebase/perf": "16.5.2",
"@react-native-firebase/remote-config": "16.4.6",
"@react-native-google-signin/google-signin": "9.0.2",
"@react-navigation/bottom-tabs": "6.5.5",
"@react-navigation/native": "6.1.4",
"@react-navigation/native-stack": "6.9.4",
"@react-native-firebase/analytics": "16.7.0",
"@react-native-firebase/app": "16.7.0",
"@react-native-firebase/auth": "16.7.0",
"@react-native-firebase/crashlytics": "16.7.0",
"@react-native-firebase/database": "16.7.0",
"@react-native-firebase/firestore": "16.7.0",
"@react-native-firebase/messaging": "16.7.0",
"@react-native-firebase/perf": "16.7.0",
"@react-native-firebase/remote-config": "16.7.0",
"@react-native-google-signin/google-signin": "13.1.0",
"@react-navigation/bottom-tabs": "6.6.1",
"@react-navigation/native": "6.1.18",
"@react-navigation/native-stack": "6.11.0",
"@reduxjs/toolkit": "1.9.1",
"@sentry/react-native": "5.35.0",
"@shopify/flash-list": "1.4.3",
@@ -68,15 +69,15 @@
"dayjs": "1.11.9",
"fuzzysort": "2.0.4",
"lodash.chunk": "^4.2.0",
"lottie-react-native": "5.1.4",
"lottie-react-native": "6.4.0",
"patch-package": "8.0.0",
"postinstall-postinstall": "2.1.0",
"react": "18.1.0",
"react": "18.2.0",
"react-hook-form": "7.40.0",
"react-native": "0.70.6",
"react-native": "0.72.6",
"react-native-blob-util": "0.17.3",
"react-native-call-log": "2.1.2",
"react-native-code-push": "7.1.0",
"react-native-code-push": "8.3.1",
"react-native-contacts": "7.0.5",
"react-native-device-info": "10.3.0",
"react-native-fast-image": "8.6.3",
@@ -85,7 +86,7 @@
"react-native-get-sms-android": "2.1.0",
"react-native-gzip": "1.0.0",
"react-native-image-picker": "4.10.2",
"react-native-mmkv": "2.5.1",
"react-native-mmkv": "2.11.0",
"react-native-pager-view": "6.1.2",
"react-native-pdf-renderer": "1.1.1",
"react-native-permissions": "3.6.1",
@@ -102,7 +103,7 @@
"redux-persist": "6.0.0"
},
"devDependencies": {
"@babel/core": "7.12.9",
"@babel/core": "7.25.2",
"@babel/plugin-proposal-decorators": "7.20.7",
"@babel/runtime": "7.12.5",
"@tsconfig/react-native": "2.0.2",
@@ -110,7 +111,7 @@
"@types/d3-shape": "^3.1.3",
"@types/jest": "26.0.23",
"@types/react": "18.0.21",
"@types/react-native": "0.70.6",
"@types/react-native": "0.71.13",
"@types/react-native-fetch-blob": "0.10.7",
"@types/react-native-video": "5.0.14",
"@types/react-native-video-player": "0.10.3",
@@ -138,7 +139,7 @@
"husky": "8.0.0",
"jest": "26.6.3",
"lint-staged": "13.2.1",
"metro-react-native-babel-preset": "0.72.3",
"metro-react-native-babel-preset": "0.76.8",
"miragejs": "0.1.47",
"prettier": "^2.8.7",
"react-test-renderer": "18.1.0",

8
react-native.config.js Normal file
View File

@@ -0,0 +1,8 @@
module.exports = {
project: {
ios: {},
android: {
unstable_reactLegacyComponentNames: ['FastImageView', 'FlashList'],
},
},
};

View File

@@ -1444,7 +1444,7 @@ export const PermissionsToCheck: Permission[] = [
PermissionsAndroid.PERMISSIONS.READ_PHONE_STATE,
PermissionsAndroid.PERMISSIONS.SEND_SMS,
PermissionsAndroid.PERMISSIONS.RECEIVE_WAP_PUSH,
PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION,
PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS,
];
export const BLOCKER_SCREEN_DATA = {

View File

@@ -30,7 +30,7 @@ export const getPermissionsToRequest = async () => {
const permissionsToValidate = getPermissionsToValidate();
for (let i = 0; i < permissionsToValidate.length; i++) {
const permission = permissionsToValidate[i];
if (permission === PermissionsAndroid.PERMISSIONS.POST_NOTIFICATION) {
if (permission === PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS) {
const notificationPermission = await checkNotifications();
const notificationStatus = notificationPermission.status === 'granted';
isNotificationPermissionEnabled = notificationStatus;

View File

@@ -5,6 +5,7 @@ import {
Pressable,
LayoutAnimation,
UIManager,
Platform,
} from 'react-native';
import Text from '../../../RN-UI-LIB/src/components/Text';
import { COLORS } from '../../../RN-UI-LIB/src/styles/colors';
@@ -18,11 +19,10 @@ import { getPerformanceLevel } from './utils';
import { addClickstreamEvent } from '@services/clickstreamEventService';
import { CLICKSTREAM_EVENT_NAMES } from '@common/Constants';
if (
Platform.OS === 'android' &&
UIManager.setLayoutAnimationEnabledExperimental
) {
UIManager.setLayoutAnimationEnabledExperimental(true);
if (Platform.OS === 'android') {
if (UIManager.setLayoutAnimationEnabledExperimental) {
UIManager.setLayoutAnimationEnabledExperimental(true);
}
}
const PerformanceMeter = () => {

View File

@@ -150,4 +150,4 @@ const styles = StyleSheet.create({
color: COLORS.TEXT.DARK,
},
});
export default CaseItem;
export default React.memo(CaseItem);

View File

@@ -1,4 +1,4 @@
import React, { useCallback, useEffect, useMemo, useState } from 'react';
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
import { Modal, RefreshControl, ScrollView, StyleSheet, View } from 'react-native';
import Accordion from '../../../../RN-UI-LIB/src/components/accordian/Accordian';
import NavigationHeader from '../../../../RN-UI-LIB/src/components/NavigationHeader';
@@ -105,7 +105,7 @@ const FeedbackDetailContainer: React.FC<IFeedbackDetailContainer> = ({ route: ro
const [loading, setLoading] = useState(false);
const [currentPage, setCurrentPage] = useState(pageNo);
const [dataSourceCord, setDataSourceCord] = useState(0);
const [ref, setRef] = useState<GenericType>();
const ref = useRef();
const [showFilterModal, setShowFilterModal] = useState(false);
const fetchFeedbacks = useCallback(
@@ -188,7 +188,7 @@ const FeedbackDetailContainer: React.FC<IFeedbackDetailContainer> = ({ route: ro
if (!ref || !dataSourceCord) {
return;
}
ref.scrollTo({
ref?.current?.scrollTo({
x: 0,
y: dataSourceCord,
animated: true,
@@ -270,7 +270,7 @@ const FeedbackDetailContainer: React.FC<IFeedbackDetailContainer> = ({ route: ro
/>
}
style={[GenericStyles.ph16, GenericStyles.fill]}
ref={(x) => setRef(x)}
ref={ref}
>
<SuspenseLoader
loading={loading}

View File

@@ -87,12 +87,13 @@ function Login() {
try {
await GoogleSignin.hasPlayServices();
const userInfo: GoogleSigninUser = await GoogleSignin.signIn();
if (userInfo?.serverAuthCode) {
const serverAuthCode = userInfo?.data?.serverAuthCode || userInfo?.serverAuthCode
if (serverAuthCode) {
toast({
text1: ToastMessages.FETCHING_USER_DATA,
type: 'success',
});
await dispatch(verifyGoogleSignIn(userInfo.serverAuthCode));
await dispatch(verifyGoogleSignIn(serverAuthCode));
return;
}
throw userInfo;

2243
yarn.lock

File diff suppressed because it is too large Load Diff