gt-react-native 0.0.1-alpha.1 → 0.0.1-alpha.10
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.
- package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeGtReactNativeSpec.java +2 -2
- package/android/app/build/generated/source/codegen/jni/GtReactNativeSpec-generated.cpp +6 -6
- package/android/app/build/generated/source/codegen/jni/react/renderer/components/GtReactNativeSpec/GtReactNativeSpecJSI-generated.cpp +6 -6
- package/android/app/build/generated/source/codegen/jni/react/renderer/components/GtReactNativeSpec/GtReactNativeSpecJSI.h +10 -10
- package/android/build.gradle +12 -1
- package/android/src/main/java/com/gtreactnative/{GtReactNativeModule.kt → GtReactNativeModuleImpl.kt} +11 -23
- package/android/src/main/java/com/gtreactnative/GtReactNativePackage.kt +9 -7
- package/android/src/newarch/com/gtreactnative/GtReactNativeModule.kt +30 -0
- package/android/src/oldarch/com/gtreactnative/GtReactNativeModule.kt +36 -0
- package/ios/GtReactNative.h +9 -1
- package/ios/GtReactNative.mm +47 -12
- package/lib/module/NativeGtReactNative.js.map +1 -1
- package/lib/module/provider/hooks/locale/useDetermineLocale.js +16 -14
- package/lib/module/provider/hooks/locale/useDetermineLocale.js.map +1 -1
- package/lib/module/provider/hooks/useRegionState.js +10 -22
- package/lib/module/provider/hooks/useRegionState.js.map +1 -1
- package/lib/module/utils/polyfill.js +8 -7
- package/lib/module/utils/polyfill.js.map +1 -1
- package/lib/module/utils/utils.js +1 -4
- package/lib/module/utils/utils.js.map +1 -1
- package/lib/typescript/src/NativeGtReactNative.d.ts +1 -1
- package/lib/typescript/src/NativeGtReactNative.d.ts.map +1 -1
- package/lib/typescript/src/provider/hooks/locale/useDetermineLocale.d.ts +1 -1
- package/lib/typescript/src/provider/hooks/locale/useDetermineLocale.d.ts.map +1 -1
- package/lib/typescript/src/provider/hooks/useRegionState.d.ts.map +1 -1
- package/lib/typescript/src/utils/polyfill.d.ts +6 -6
- package/lib/typescript/src/utils/polyfill.d.ts.map +1 -1
- package/lib/typescript/src/utils/utils.d.ts.map +1 -1
- package/package.json +4 -5
- package/src/NativeGtReactNative.ts +2 -2
- package/src/provider/hooks/locale/useDetermineLocale.ts +15 -13
- package/src/provider/hooks/useRegionState.ts +9 -21
- package/src/utils/polyfill.ts +9 -9
- package/src/utils/utils.ts +2 -3
- package/lib/module/utils/constants.js +0 -8
- package/lib/module/utils/constants.js.map +0 -1
- package/lib/typescript/src/utils/constants.d.ts +0 -3
- package/lib/typescript/src/utils/constants.d.ts.map +0 -1
- package/src/utils/constants.ts +0 -5
|
@@ -43,9 +43,9 @@ public abstract class NativeGtReactNativeSpec extends ReactContextBaseJavaModule
|
|
|
43
43
|
|
|
44
44
|
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
45
45
|
@DoNotStrip
|
|
46
|
-
public abstract @Nullable String
|
|
46
|
+
public abstract @Nullable String nativeStoreGet(String key);
|
|
47
47
|
|
|
48
48
|
@ReactMethod
|
|
49
49
|
@DoNotStrip
|
|
50
|
-
public abstract void
|
|
50
|
+
public abstract void nativeStoreSet(String key, String value);
|
|
51
51
|
}
|
|
@@ -22,22 +22,22 @@ static facebook::jsi::Value __hostFunction_NativeGtReactNativeSpecJSI_getNativeL
|
|
|
22
22
|
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, ArrayKind, "getNativeLocales", "()Lcom/facebook/react/bridge/WritableArray;", args, count, cachedMethodId);
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
-
static facebook::jsi::Value
|
|
25
|
+
static facebook::jsi::Value __hostFunction_NativeGtReactNativeSpecJSI_nativeStoreGet(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
26
26
|
static jmethodID cachedMethodId = nullptr;
|
|
27
|
-
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, StringKind, "
|
|
27
|
+
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, StringKind, "nativeStoreGet", "(Ljava/lang/String;)Ljava/lang/String;", args, count, cachedMethodId);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
static facebook::jsi::Value
|
|
30
|
+
static facebook::jsi::Value __hostFunction_NativeGtReactNativeSpecJSI_nativeStoreSet(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
31
31
|
static jmethodID cachedMethodId = nullptr;
|
|
32
|
-
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, VoidKind, "
|
|
32
|
+
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, VoidKind, "nativeStoreSet", "(Ljava/lang/String;Ljava/lang/String;)V", args, count, cachedMethodId);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
NativeGtReactNativeSpecJSI::NativeGtReactNativeSpecJSI(const JavaTurboModule::InitParams ¶ms)
|
|
36
36
|
: JavaTurboModule(params) {
|
|
37
37
|
methodMap_["multiply"] = MethodMetadata {2, __hostFunction_NativeGtReactNativeSpecJSI_multiply};
|
|
38
38
|
methodMap_["getNativeLocales"] = MethodMetadata {0, __hostFunction_NativeGtReactNativeSpecJSI_getNativeLocales};
|
|
39
|
-
methodMap_["
|
|
40
|
-
methodMap_["
|
|
39
|
+
methodMap_["nativeStoreGet"] = MethodMetadata {1, __hostFunction_NativeGtReactNativeSpecJSI_nativeStoreGet};
|
|
40
|
+
methodMap_["nativeStoreSet"] = MethodMetadata {2, __hostFunction_NativeGtReactNativeSpecJSI_nativeStoreSet};
|
|
41
41
|
}
|
|
42
42
|
|
|
43
43
|
std::shared_ptr<TurboModule> GtReactNativeSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams ¶ms) {
|
|
@@ -23,15 +23,15 @@ static jsi::Value __hostFunction_NativeGtReactNativeCxxSpecJSI_getNativeLocales(
|
|
|
23
23
|
rt
|
|
24
24
|
);
|
|
25
25
|
}
|
|
26
|
-
static jsi::Value
|
|
27
|
-
auto result = static_cast<NativeGtReactNativeCxxSpecJSI *>(&turboModule)->
|
|
26
|
+
static jsi::Value __hostFunction_NativeGtReactNativeCxxSpecJSI_nativeStoreGet(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
27
|
+
auto result = static_cast<NativeGtReactNativeCxxSpecJSI *>(&turboModule)->nativeStoreGet(
|
|
28
28
|
rt,
|
|
29
29
|
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
|
|
30
30
|
);
|
|
31
31
|
return result ? jsi::Value(std::move(*result)) : jsi::Value::null();
|
|
32
32
|
}
|
|
33
|
-
static jsi::Value
|
|
34
|
-
static_cast<NativeGtReactNativeCxxSpecJSI *>(&turboModule)->
|
|
33
|
+
static jsi::Value __hostFunction_NativeGtReactNativeCxxSpecJSI_nativeStoreSet(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
34
|
+
static_cast<NativeGtReactNativeCxxSpecJSI *>(&turboModule)->nativeStoreSet(
|
|
35
35
|
rt,
|
|
36
36
|
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
|
|
37
37
|
count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt)
|
|
@@ -43,8 +43,8 @@ NativeGtReactNativeCxxSpecJSI::NativeGtReactNativeCxxSpecJSI(std::shared_ptr<Cal
|
|
|
43
43
|
: TurboModule("GtReactNative", jsInvoker) {
|
|
44
44
|
methodMap_["multiply"] = MethodMetadata {2, __hostFunction_NativeGtReactNativeCxxSpecJSI_multiply};
|
|
45
45
|
methodMap_["getNativeLocales"] = MethodMetadata {0, __hostFunction_NativeGtReactNativeCxxSpecJSI_getNativeLocales};
|
|
46
|
-
methodMap_["
|
|
47
|
-
methodMap_["
|
|
46
|
+
methodMap_["nativeStoreGet"] = MethodMetadata {1, __hostFunction_NativeGtReactNativeCxxSpecJSI_nativeStoreGet};
|
|
47
|
+
methodMap_["nativeStoreSet"] = MethodMetadata {2, __hostFunction_NativeGtReactNativeCxxSpecJSI_nativeStoreSet};
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
|
|
@@ -22,8 +22,8 @@ protected:
|
|
|
22
22
|
public:
|
|
23
23
|
virtual double multiply(jsi::Runtime &rt, double a, double b) = 0;
|
|
24
24
|
virtual jsi::Array getNativeLocales(jsi::Runtime &rt) = 0;
|
|
25
|
-
virtual std::optional<jsi::String>
|
|
26
|
-
virtual void
|
|
25
|
+
virtual std::optional<jsi::String> nativeStoreGet(jsi::Runtime &rt, jsi::String key) = 0;
|
|
26
|
+
virtual void nativeStoreSet(jsi::Runtime &rt, jsi::String key, jsi::String value) = 0;
|
|
27
27
|
|
|
28
28
|
};
|
|
29
29
|
|
|
@@ -70,21 +70,21 @@ private:
|
|
|
70
70
|
return bridging::callFromJs<jsi::Array>(
|
|
71
71
|
rt, &T::getNativeLocales, jsInvoker_, instance_);
|
|
72
72
|
}
|
|
73
|
-
std::optional<jsi::String>
|
|
73
|
+
std::optional<jsi::String> nativeStoreGet(jsi::Runtime &rt, jsi::String key) override {
|
|
74
74
|
static_assert(
|
|
75
|
-
bridging::getParameterCount(&T::
|
|
76
|
-
"Expected
|
|
75
|
+
bridging::getParameterCount(&T::nativeStoreGet) == 2,
|
|
76
|
+
"Expected nativeStoreGet(...) to have 2 parameters");
|
|
77
77
|
|
|
78
78
|
return bridging::callFromJs<std::optional<jsi::String>>(
|
|
79
|
-
rt, &T::
|
|
79
|
+
rt, &T::nativeStoreGet, jsInvoker_, instance_, std::move(key));
|
|
80
80
|
}
|
|
81
|
-
void
|
|
81
|
+
void nativeStoreSet(jsi::Runtime &rt, jsi::String key, jsi::String value) override {
|
|
82
82
|
static_assert(
|
|
83
|
-
bridging::getParameterCount(&T::
|
|
84
|
-
"Expected
|
|
83
|
+
bridging::getParameterCount(&T::nativeStoreSet) == 3,
|
|
84
|
+
"Expected nativeStoreSet(...) to have 3 parameters");
|
|
85
85
|
|
|
86
86
|
return bridging::callFromJs<void>(
|
|
87
|
-
rt, &T::
|
|
87
|
+
rt, &T::nativeStoreSet, jsInvoker_, instance_, std::move(key), std::move(value));
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
private:
|
package/android/build.gradle
CHANGED
|
@@ -15,11 +15,16 @@ buildscript {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
def isNewArchitectureEnabled() {
|
|
19
|
+
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
|
|
20
|
+
}
|
|
18
21
|
|
|
19
22
|
apply plugin: "com.android.library"
|
|
20
23
|
apply plugin: "kotlin-android"
|
|
21
24
|
|
|
22
|
-
|
|
25
|
+
if (isNewArchitectureEnabled()) {
|
|
26
|
+
apply plugin: "com.facebook.react"
|
|
27
|
+
}
|
|
23
28
|
|
|
24
29
|
def getExtOrIntegerDefault(name) {
|
|
25
30
|
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["GtReactNative_" + name]).toInteger()
|
|
@@ -31,6 +36,7 @@ android {
|
|
|
31
36
|
compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
|
|
32
37
|
|
|
33
38
|
defaultConfig {
|
|
39
|
+
buildConfigField("boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString())
|
|
34
40
|
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
|
35
41
|
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
|
36
42
|
}
|
|
@@ -60,6 +66,11 @@ android {
|
|
|
60
66
|
"generated/java",
|
|
61
67
|
"generated/jni"
|
|
62
68
|
]
|
|
69
|
+
if (isNewArchitectureEnabled()) {
|
|
70
|
+
java.srcDirs += ["src/newarch"]
|
|
71
|
+
} else {
|
|
72
|
+
java.srcDirs += ["src/oldarch"]
|
|
73
|
+
}
|
|
63
74
|
}
|
|
64
75
|
}
|
|
65
76
|
}
|
|
@@ -6,28 +6,16 @@ import android.os.LocaleList
|
|
|
6
6
|
import com.facebook.react.bridge.Arguments
|
|
7
7
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
8
8
|
import com.facebook.react.bridge.WritableArray
|
|
9
|
-
import com.facebook.react.module.annotations.ReactModule
|
|
10
9
|
import java.util.Locale
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
NativeGtReactNativeSpec(reactContext) {
|
|
11
|
+
object GtReactNativeModuleImpl {
|
|
12
|
+
const val NAME = "GtReactNative"
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
reactApplicationContext.getSharedPreferences("gt_store", Context.MODE_PRIVATE)
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
override fun getName(): String {
|
|
21
|
-
return NAME
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// Example method
|
|
25
|
-
// See https://reactnative.dev/docs/native-modules-android
|
|
26
|
-
override fun multiply(a: Double, b: Double): Double {
|
|
14
|
+
fun multiply(a: Double, b: Double): Double {
|
|
27
15
|
return a * b
|
|
28
16
|
}
|
|
29
17
|
|
|
30
|
-
|
|
18
|
+
fun getNativeLocales(reactContext: ReactApplicationContext): WritableArray {
|
|
31
19
|
val locales = Arguments.createArray()
|
|
32
20
|
val seenLocales = mutableSetOf<String>()
|
|
33
21
|
|
|
@@ -56,13 +44,13 @@ class GtReactNativeModule(reactContext: ReactApplicationContext) :
|
|
|
56
44
|
return locales
|
|
57
45
|
}
|
|
58
46
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
prefs.edit().putString(key, value).apply()
|
|
47
|
+
fun nativeStoreGet(reactContext: ReactApplicationContext, key: String): String? {
|
|
48
|
+
val prefs = reactContext.getSharedPreferences("gt_store", Context.MODE_PRIVATE)
|
|
49
|
+
return prefs.getString(key, null)
|
|
63
50
|
}
|
|
64
51
|
|
|
65
|
-
|
|
66
|
-
|
|
52
|
+
fun nativeStoreSet(reactContext: ReactApplicationContext, key: String, value: String) {
|
|
53
|
+
val prefs = reactContext.getSharedPreferences("gt_store", Context.MODE_PRIVATE)
|
|
54
|
+
prefs.edit().putString(key, value).apply()
|
|
67
55
|
}
|
|
68
|
-
}
|
|
56
|
+
}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
package com.gtreactnative
|
|
2
2
|
|
|
3
|
-
import com.
|
|
3
|
+
import com.gtreactnative.GtReactNativeModuleImpl
|
|
4
|
+
import com.facebook.react.TurboReactPackage
|
|
4
5
|
import com.facebook.react.bridge.NativeModule
|
|
5
6
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
7
|
import com.facebook.react.module.model.ReactModuleInfo
|
|
7
8
|
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
8
9
|
import java.util.HashMap
|
|
9
10
|
|
|
10
|
-
class GtReactNativePackage :
|
|
11
|
+
class GtReactNativePackage : TurboReactPackage() {
|
|
11
12
|
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
|
|
12
|
-
return if (name ==
|
|
13
|
+
return if (name == GtReactNativeModuleImpl.NAME) {
|
|
13
14
|
GtReactNativeModule(reactContext)
|
|
14
15
|
} else {
|
|
15
16
|
null
|
|
@@ -19,13 +20,14 @@ class GtReactNativePackage : BaseReactPackage() {
|
|
|
19
20
|
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
|
|
20
21
|
return ReactModuleInfoProvider {
|
|
21
22
|
val moduleInfos: MutableMap<String, ReactModuleInfo> = HashMap()
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
val isTurboModule = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
|
|
24
|
+
moduleInfos[GtReactNativeModuleImpl.NAME] = ReactModuleInfo(
|
|
25
|
+
GtReactNativeModuleImpl.NAME,
|
|
26
|
+
GtReactNativeModuleImpl.NAME,
|
|
25
27
|
false, // canOverrideExistingModule
|
|
26
28
|
false, // needsEagerInit
|
|
27
29
|
false, // isCxxModule
|
|
28
|
-
|
|
30
|
+
isTurboModule // isTurboModule
|
|
29
31
|
)
|
|
30
32
|
moduleInfos
|
|
31
33
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
package com.gtreactnative
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
|
+
import com.facebook.react.bridge.WritableArray
|
|
5
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
6
|
+
|
|
7
|
+
@ReactModule(name = GtReactNativeModuleImpl.NAME)
|
|
8
|
+
class GtReactNativeModule(reactContext: ReactApplicationContext) :
|
|
9
|
+
NativeGtReactNativeSpec(reactContext) {
|
|
10
|
+
|
|
11
|
+
override fun getName(): String {
|
|
12
|
+
return GtReactNativeModuleImpl.NAME
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
override fun multiply(a: Double, b: Double): Double {
|
|
16
|
+
return GtReactNativeModuleImpl.multiply(a, b)
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
override fun getNativeLocales(): WritableArray {
|
|
20
|
+
return GtReactNativeModuleImpl.getNativeLocales(reactApplicationContext)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
override fun nativeStoreGet(key: String): String? {
|
|
24
|
+
return GtReactNativeModuleImpl.nativeStoreGet(reactApplicationContext, key)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
override fun nativeStoreSet(key: String, value: String) {
|
|
28
|
+
GtReactNativeModuleImpl.nativeStoreSet(reactApplicationContext, key, value)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
package com.gtreactnative
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
5
|
+
import com.facebook.react.bridge.ReactMethod
|
|
6
|
+
import com.facebook.react.bridge.WritableArray
|
|
7
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
8
|
+
|
|
9
|
+
@ReactModule(name = GtReactNativeModuleImpl.NAME)
|
|
10
|
+
class GtReactNativeModule(reactContext: ReactApplicationContext) :
|
|
11
|
+
ReactContextBaseJavaModule(reactContext) {
|
|
12
|
+
|
|
13
|
+
override fun getName(): String {
|
|
14
|
+
return GtReactNativeModuleImpl.NAME
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
18
|
+
fun multiply(a: Double, b: Double): Double {
|
|
19
|
+
return GtReactNativeModuleImpl.multiply(a, b)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
23
|
+
fun getNativeLocales(): WritableArray {
|
|
24
|
+
return GtReactNativeModuleImpl.getNativeLocales(reactApplicationContext)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@ReactMethod(isBlockingSynchronousMethod = true)
|
|
28
|
+
fun nativeStoreGet(key: String): String? {
|
|
29
|
+
return GtReactNativeModuleImpl.nativeStoreGet(reactApplicationContext, key)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@ReactMethod
|
|
33
|
+
fun nativeStoreSet(key: String, value: String) {
|
|
34
|
+
GtReactNativeModuleImpl.nativeStoreSet(reactApplicationContext, key, value)
|
|
35
|
+
}
|
|
36
|
+
}
|
package/ios/GtReactNative.h
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
2
2
|
|
|
3
|
+
#import <GtReactNativeSpec/GtReactNativeSpec.h>
|
|
3
4
|
@interface GtReactNative : NSObject <NativeGtReactNativeSpec>
|
|
4
5
|
|
|
6
|
+
#else
|
|
7
|
+
|
|
8
|
+
#import <React/RCTBridgeModule.h>
|
|
9
|
+
@interface GtReactNative : NSObject <RCTBridgeModule>
|
|
10
|
+
|
|
11
|
+
#endif
|
|
12
|
+
|
|
5
13
|
@end
|
package/ios/GtReactNative.mm
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
NSUserDefaults *_defaults;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
+
RCT_EXPORT_MODULE();
|
|
8
|
+
|
|
7
9
|
- (instancetype)init
|
|
8
10
|
{
|
|
9
11
|
if ((self = [super init])) {
|
|
@@ -11,13 +13,13 @@
|
|
|
11
13
|
}
|
|
12
14
|
return self;
|
|
13
15
|
}
|
|
14
|
-
- (NSNumber *)multiply:(double)a b:(double)b {
|
|
15
|
-
NSNumber *result = @(a * b);
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
// Internal implementation methods
|
|
18
|
+
- (NSNumber *)multiplyImpl:(double)a b:(double)b {
|
|
19
|
+
return @(a * b);
|
|
18
20
|
}
|
|
19
21
|
|
|
20
|
-
- (NSArray<NSString *> *)
|
|
22
|
+
- (NSArray<NSString *> *)getNativeLocalesImpl {
|
|
21
23
|
NSMutableArray<NSString *> *locales = [[NSMutableArray alloc] init];
|
|
22
24
|
|
|
23
25
|
// Add current locale first
|
|
@@ -38,27 +40,60 @@
|
|
|
38
40
|
return [locales copy];
|
|
39
41
|
}
|
|
40
42
|
|
|
41
|
-
- (nullable NSString *)
|
|
43
|
+
- (nullable NSString *)nativeStoreGetImpl:(NSString *)key
|
|
42
44
|
{
|
|
43
45
|
if (key == nil) { return nil; }
|
|
44
46
|
return [_defaults stringForKey:key];
|
|
45
47
|
}
|
|
46
48
|
|
|
47
|
-
- (void)
|
|
49
|
+
- (void)nativeStoreSetImpl:(NSString *)key value:(NSString *)value
|
|
48
50
|
{
|
|
49
51
|
if (key == nil || value == nil) { return; }
|
|
50
52
|
[_defaults setObject:value forKey:key];
|
|
51
53
|
}
|
|
52
54
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
56
|
+
|
|
57
|
+
// New architecture
|
|
58
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:(const facebook::react::ObjCTurboModule::InitParams &)params {
|
|
56
59
|
return std::make_shared<facebook::react::NativeGtReactNativeSpecJSI>(params);
|
|
57
60
|
}
|
|
58
61
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
+
- (NSNumber *)multiply:(double)a b:(double)b {
|
|
63
|
+
return [self multiplyImpl:a b:b];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
- (NSArray<NSString *> *)getNativeLocales {
|
|
67
|
+
return [self getNativeLocalesImpl];
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
- (NSString *)nativeStoreGet:(NSString *)key {
|
|
71
|
+
return [self nativeStoreGetImpl:key];
|
|
62
72
|
}
|
|
63
73
|
|
|
74
|
+
- (void)nativeStoreSet:(NSString *)key value:(NSString *)value {
|
|
75
|
+
[self nativeStoreSetImpl:key value:value];
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
#else
|
|
79
|
+
|
|
80
|
+
// Old architecture
|
|
81
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(multiply:(double)a b:(double)b) {
|
|
82
|
+
return [self multiplyImpl:a b:b];
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getNativeLocales) {
|
|
86
|
+
return [self getNativeLocalesImpl];
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(nativeStoreGet:(NSString *)key) {
|
|
90
|
+
return [self nativeStoreGetImpl:key];
|
|
91
|
+
}
|
|
92
|
+
t
|
|
93
|
+
RCT_EXPORT_METHOD(nativeStoreSet:(NSString *)key value:(NSString *)value) {
|
|
94
|
+
[self nativeStoreSetImpl:key value:value];
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
#endif
|
|
98
|
+
|
|
64
99
|
@end
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeGtReactNative.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeGtReactNative.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAQlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,eAAe,CAAC","ignoreList":[]}
|
|
@@ -5,14 +5,13 @@ import { determineLocale, resolveAliasLocale } from 'generaltranslation';
|
|
|
5
5
|
import { libraryDefaultLocale } from 'generaltranslation/internal';
|
|
6
6
|
import { getNativeLocales } from "../../../utils/getNativeLocales.js";
|
|
7
7
|
import { nativeStoreGet, nativeStoreSet } from "../../../utils/nativeStore.js";
|
|
8
|
-
import { LOCALE_KEY } from "../../../utils/constants.js";
|
|
9
8
|
export function useDetermineLocale({
|
|
10
9
|
locale: _locale = '',
|
|
11
10
|
defaultLocale = libraryDefaultLocale,
|
|
12
11
|
locales = [],
|
|
13
12
|
localeCookieName = 'generaltranslation.locale',
|
|
14
|
-
ssr =
|
|
15
|
-
//
|
|
13
|
+
ssr = false,
|
|
14
|
+
// not relevant
|
|
16
15
|
customMapping
|
|
17
16
|
}) {
|
|
18
17
|
// resolve alias locale
|
|
@@ -34,7 +33,7 @@ export function useDetermineLocale({
|
|
|
34
33
|
const [locale, _setLocale] = useState(initializeLocale());
|
|
35
34
|
|
|
36
35
|
// Functions for setting internal locale state
|
|
37
|
-
const [setLocale,
|
|
36
|
+
const [setLocale, setLocaleWithoutPersist] = createSetLocale({
|
|
38
37
|
locale,
|
|
39
38
|
locales,
|
|
40
39
|
defaultLocale,
|
|
@@ -53,8 +52,8 @@ export function useDetermineLocale({
|
|
|
53
52
|
localeCookieName,
|
|
54
53
|
customMapping
|
|
55
54
|
});
|
|
56
|
-
|
|
57
|
-
}, [_locale, locale, locales, defaultLocale, localeCookieName, customMapping,
|
|
55
|
+
setLocaleWithoutPersist(newLocale);
|
|
56
|
+
}, [_locale, locale, locales, defaultLocale, localeCookieName, customMapping, setLocaleWithoutPersist]);
|
|
58
57
|
return [locale, setLocale];
|
|
59
58
|
}
|
|
60
59
|
|
|
@@ -73,6 +72,7 @@ function getNewLocale({
|
|
|
73
72
|
locale,
|
|
74
73
|
locales,
|
|
75
74
|
defaultLocale,
|
|
75
|
+
localeCookieName,
|
|
76
76
|
customMapping
|
|
77
77
|
}) {
|
|
78
78
|
// No change, return
|
|
@@ -81,7 +81,7 @@ function getNewLocale({
|
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
// Check for locale in native store
|
|
84
|
-
let storedLocale = nativeStoreGet(
|
|
84
|
+
let storedLocale = nativeStoreGet(localeCookieName);
|
|
85
85
|
if (storedLocale) {
|
|
86
86
|
storedLocale = resolveAliasLocale(storedLocale, customMapping);
|
|
87
87
|
}
|
|
@@ -104,7 +104,7 @@ function getNewLocale({
|
|
|
104
104
|
|
|
105
105
|
// if stored locale not valid, change it back to whatever we use for fallback
|
|
106
106
|
if (storedLocale && storedLocale !== newLocale) {
|
|
107
|
-
nativeStoreSet(
|
|
107
|
+
nativeStoreSet(localeCookieName, newLocale);
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
// return new locale
|
|
@@ -115,10 +115,12 @@ function createSetLocale({
|
|
|
115
115
|
locales,
|
|
116
116
|
defaultLocale,
|
|
117
117
|
_setLocale,
|
|
118
|
+
localeCookieName,
|
|
118
119
|
customMapping
|
|
119
120
|
}) {
|
|
120
121
|
locale = resolveAliasLocale(locale, customMapping);
|
|
121
|
-
|
|
122
|
+
// Just update the internal state, don't persist it
|
|
123
|
+
const setLocaleWithoutPersist = newLocale => {
|
|
122
124
|
// validate locale
|
|
123
125
|
const validatedLocale = resolveAliasLocale(determineLocale(newLocale, locales, customMapping) || locale || defaultLocale, customMapping);
|
|
124
126
|
if (validatedLocale !== newLocale) {
|
|
@@ -128,13 +130,13 @@ function createSetLocale({
|
|
|
128
130
|
_setLocale(validatedLocale);
|
|
129
131
|
return validatedLocale;
|
|
130
132
|
};
|
|
131
|
-
// update locale and
|
|
133
|
+
// update locale and persist it in native store
|
|
132
134
|
const setLocale = newLocale => {
|
|
133
135
|
newLocale = resolveAliasLocale(newLocale, customMapping);
|
|
134
|
-
|
|
135
|
-
const validatedLocale =
|
|
136
|
-
nativeStoreSet(
|
|
136
|
+
setLocaleWithoutPersist(newLocale);
|
|
137
|
+
const validatedLocale = setLocaleWithoutPersist(newLocale);
|
|
138
|
+
nativeStoreSet(localeCookieName, validatedLocale);
|
|
137
139
|
};
|
|
138
|
-
return [setLocale,
|
|
140
|
+
return [setLocale, setLocaleWithoutPersist];
|
|
139
141
|
}
|
|
140
142
|
//# sourceMappingURL=useDetermineLocale.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useState","determineLocale","resolveAliasLocale","libraryDefaultLocale","getNativeLocales","nativeStoreGet","nativeStoreSet","
|
|
1
|
+
{"version":3,"names":["useEffect","useState","determineLocale","resolveAliasLocale","libraryDefaultLocale","getNativeLocales","nativeStoreGet","nativeStoreSet","useDetermineLocale","locale","_locale","defaultLocale","locales","localeCookieName","ssr","customMapping","map","initializeLocale","result","getNewLocale","_setLocale","setLocale","setLocaleWithoutPersist","createSetLocale","newLocale","storedLocale","preferredLocales","length","l","validatedLocale","console","warn"],"sourceRoot":"../../../../../src","sources":["provider/hooks/locale/useDetermineLocale.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,29 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useEffect, useState } from 'react';
|
|
4
|
+
import { nativeStoreGet, nativeStoreSet } from "../../utils/nativeStore.js";
|
|
4
5
|
function getNewRegion({
|
|
5
|
-
_region
|
|
6
|
+
_region,
|
|
7
|
+
regionCookieName
|
|
6
8
|
}) {
|
|
7
|
-
// Check for region in
|
|
8
|
-
|
|
9
|
-
// typeof document !== 'undefined'
|
|
10
|
-
// ? document.cookie
|
|
11
|
-
// .split('; ')
|
|
12
|
-
// .find((row) => row.startsWith(`${regionCookieName}=`))
|
|
13
|
-
// ?.split('=')[1]
|
|
14
|
-
// : undefined;
|
|
15
|
-
const cookieRegion = undefined;
|
|
9
|
+
// Check for region in native store
|
|
10
|
+
const cookieRegion = nativeStoreGet(regionCookieName) || undefined;
|
|
16
11
|
const newRegion = _region || cookieRegion;
|
|
17
12
|
|
|
18
|
-
//
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
// typeof document !== 'undefined'
|
|
23
|
-
// ) {
|
|
24
|
-
// document.cookie = `${regionCookieName}=${newRegion};path=/`;
|
|
25
|
-
// }
|
|
26
|
-
|
|
13
|
+
// if state not valid, change it to newRegion
|
|
14
|
+
if (cookieRegion && cookieRegion !== newRegion) {
|
|
15
|
+
nativeStoreSet(regionCookieName, newRegion || '');
|
|
16
|
+
}
|
|
27
17
|
return newRegion;
|
|
28
18
|
}
|
|
29
19
|
export function useRegionState({
|
|
@@ -37,9 +27,7 @@ export function useRegionState({
|
|
|
37
27
|
}));
|
|
38
28
|
const setRegion = newRegion => {
|
|
39
29
|
_setRegion(newRegion);
|
|
40
|
-
|
|
41
|
-
// document.cookie = `${regionCookieName}=${newRegion || ''};path=/`;
|
|
42
|
-
// }
|
|
30
|
+
nativeStoreSet(regionCookieName, newRegion || '');
|
|
43
31
|
};
|
|
44
32
|
useEffect(() => {
|
|
45
33
|
_setRegion(getNewRegion({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useState","getNewRegion","_region","cookieRegion","undefined","newRegion","useRegionState","ssr","
|
|
1
|
+
{"version":3,"names":["useEffect","useState","nativeStoreGet","nativeStoreSet","getNewRegion","_region","regionCookieName","cookieRegion","undefined","newRegion","useRegionState","ssr","region","_setRegion","setRegion"],"sourceRoot":"../../../../src","sources":["provider/hooks/useRegionState.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAK3C,SAASC,cAAc,EAAEC,cAAc,QAAQ,4BAAyB;AAExE,SAASC,YAAYA,CAAC;EACpBC,OAAO;EACPC;AAIF,CAAC,EAAE;EACD;EACA,MAAMC,YAAY,GAAGL,cAAc,CAACI,gBAAgB,CAAC,IAAIE,SAAS;EAClE,MAAMC,SAAS,GAAGJ,OAAO,IAAIE,YAAY;;EAEzC;EACA,IAAIA,YAAY,IAAIA,YAAY,KAAKE,SAAS,EAAE;IAC9CN,cAAc,CAACG,gBAAgB,EAAEG,SAAS,IAAI,EAAE,CAAC;EACnD;EAEA,OAAOA,SAAS;AAClB;AAEA,OAAO,SAASC,cAAcA,CAAC;EAC7BL,OAAO;EACPM,GAAG;EACHL;AACoB,CAAC,EAAwB;EAC7C,MAAM,CAACM,MAAM,EAAEC,UAAU,CAAC,GAAGZ,QAAQ,CACnCU,GAAG,GACCH,SAAS,GACTJ,YAAY,CAAC;IACXC,OAAO;IACPC;EACF,CAAC,CACP,CAAC;EACD,MAAMQ,SAAS,GAAIL,SAA6B,IAAK;IACnDI,UAAU,CAACJ,SAAS,CAAC;IACrBN,cAAc,CAACG,gBAAgB,EAAEG,SAAS,IAAI,EAAE,CAAC;EACnD,CAAC;EACDT,SAAS,CAAC,MAAM;IACda,UAAU,CAACT,YAAY,CAAC;MAAEC,OAAO;MAAEC;IAAiB,CAAC,CAAC,CAAC;EACzD,CAAC,EAAE,CAACD,OAAO,EAAEC,gBAAgB,CAAC,CAAC;EAC/B,OAAO;IACLM,MAAM;IACNE;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
//
|
|
3
|
+
// Intl object not natively supported, see: https://formatjs.github.io/docs/polyfills
|
|
4
|
+
// See also: The Ultimate Guide to React Native Optimization - page 124
|
|
4
5
|
|
|
5
6
|
import '@formatjs/intl-getcanonicallocales/polyfill';
|
|
6
7
|
import '@formatjs/intl-locale/polyfill';
|
|
7
8
|
import '@formatjs/intl-displaynames/polyfill';
|
|
9
|
+
import '@formatjs/intl-listformat/polyfill';
|
|
10
|
+
import '@formatjs/intl-pluralrules/polyfill-force'; // https://github.com/formatjs/formatjs/issues/4463
|
|
11
|
+
import '@formatjs/intl-numberformat/polyfill';
|
|
12
|
+
import '@formatjs/intl-relativetimeformat/polyfill';
|
|
13
|
+
import '@formatjs/intl-datetimeformat/polyfill';
|
|
14
|
+
import '@formatjs/intl-datetimeformat/add-all-tz';
|
|
8
15
|
import '@formatjs/intl-displaynames/locale-data/en';
|
|
9
16
|
import '@formatjs/intl-displaynames/locale-data/zh';
|
|
10
17
|
import '@formatjs/intl-displaynames/locale-data/es';
|
|
11
|
-
import '@formatjs/intl-listformat/polyfill';
|
|
12
18
|
import '@formatjs/intl-listformat/locale-data/en';
|
|
13
19
|
import '@formatjs/intl-listformat/locale-data/zh';
|
|
14
20
|
import '@formatjs/intl-listformat/locale-data/es';
|
|
15
|
-
import '@formatjs/intl-pluralrules/polyfill';
|
|
16
21
|
import '@formatjs/intl-pluralrules/locale-data/en';
|
|
17
22
|
import '@formatjs/intl-pluralrules/locale-data/zh';
|
|
18
23
|
import '@formatjs/intl-pluralrules/locale-data/es';
|
|
19
|
-
import '@formatjs/intl-numberformat/polyfill';
|
|
20
24
|
import '@formatjs/intl-numberformat/locale-data/en';
|
|
21
25
|
import '@formatjs/intl-numberformat/locale-data/zh';
|
|
22
26
|
import '@formatjs/intl-numberformat/locale-data/es';
|
|
23
|
-
import '@formatjs/intl-relativetimeformat/polyfill';
|
|
24
27
|
import '@formatjs/intl-relativetimeformat/locale-data/en';
|
|
25
28
|
import '@formatjs/intl-relativetimeformat/locale-data/zh';
|
|
26
29
|
import '@formatjs/intl-relativetimeformat/locale-data/es';
|
|
27
|
-
import '@formatjs/intl-datetimeformat/polyfill';
|
|
28
|
-
import '@formatjs/intl-datetimeformat/add-all-tz';
|
|
29
30
|
import '@formatjs/intl-datetimeformat/locale-data/en';
|
|
30
31
|
import '@formatjs/intl-datetimeformat/locale-data/zh';
|
|
31
32
|
import '@formatjs/intl-datetimeformat/locale-data/es';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["utils/polyfill.ts"],"mappings":";;AAAA;;AAEA,OAAO,6CAA6C;
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["utils/polyfill.ts"],"mappings":";;AAAA;AACA;;AAEA,OAAO,6CAA6C;AACpD,OAAO,gCAAgC;AACvC,OAAO,sCAAsC;AAC7C,OAAO,oCAAoC;AAC3C,OAAO,2CAA2C,CAAC,CAAC;AACpD,OAAO,sCAAsC;AAC7C,OAAO,4CAA4C;AACnD,OAAO,wCAAwC;AAC/C,OAAO,0CAA0C;AAEjD,OAAO,4CAA4C;AACnD,OAAO,4CAA4C;AACnD,OAAO,4CAA4C;AAEnD,OAAO,0CAA0C;AACjD,OAAO,0CAA0C;AACjD,OAAO,0CAA0C;AAEjD,OAAO,2CAA2C;AAClD,OAAO,2CAA2C;AAClD,OAAO,2CAA2C;AAElD,OAAO,4CAA4C;AACnD,OAAO,4CAA4C;AACnD,OAAO,4CAA4C;AAEnD,OAAO,kDAAkD;AACzD,OAAO,kDAAkD;AACzD,OAAO,kDAAkD;AAEzD,OAAO,8CAA8C;AACrD,OAAO,8CAA8C;AACrD,OAAO,8CAA8C","ignoreList":[]}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
// import Config from 'react-native-config';
|
|
4
|
-
|
|
5
3
|
export function readAuthFromEnv(params) {
|
|
6
4
|
const {
|
|
7
5
|
projectId,
|
|
@@ -9,8 +7,7 @@ export function readAuthFromEnv(params) {
|
|
|
9
7
|
} = params;
|
|
10
8
|
return {
|
|
11
9
|
projectId: projectId || '',
|
|
12
|
-
|
|
13
|
-
devApiKey: devApiKey //|| Config.GT_DEV_API_KEY || undefined,
|
|
10
|
+
devApiKey: devApiKey
|
|
14
11
|
};
|
|
15
12
|
}
|
|
16
13
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["readAuthFromEnv","params","projectId","devApiKey"],"sourceRoot":"../../../src","sources":["utils/utils.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["readAuthFromEnv","params","projectId","devApiKey"],"sourceRoot":"../../../src","sources":["utils/utils.ts"],"mappings":";;AAKA,OAAO,SAASA,eAAeA,CAACC,MAAyB,EAAqB;EAC5E,MAAM;IAAEC,SAAS;IAAEC;EAAU,CAAC,GAAGF,MAAM;EACvC,OAAO;IACLC,SAAS,EAAEA,SAAS,IAAI,EAAE;IAC1BC,SAAS,EAAEA;EACb,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeGtReactNative.d.ts","sourceRoot":"","sources":["../../../src/NativeGtReactNative.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"NativeGtReactNative.d.ts","sourceRoot":"","sources":["../../../src/NativeGtReactNative.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvC,gBAAgB,IAAI,MAAM,EAAE,CAAC;IAC7B,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC3C,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAClD;;AAED,wBAAuE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { UseDetermineLocaleParams, UseDetermineLocaleReturn } from '@generaltranslation/react-core/types';
|
|
2
|
-
export declare function useDetermineLocale({ locale: _locale, defaultLocale, locales, localeCookieName, ssr, //
|
|
2
|
+
export declare function useDetermineLocale({ locale: _locale, defaultLocale, locales, localeCookieName, ssr, // not relevant
|
|
3
3
|
customMapping, }: UseDetermineLocaleParams): UseDetermineLocaleReturn;
|
|
4
4
|
//# sourceMappingURL=useDetermineLocale.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDetermineLocale.d.ts","sourceRoot":"","sources":["../../../../../../src/provider/hooks/locale/useDetermineLocale.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"useDetermineLocale.d.ts","sourceRoot":"","sources":["../../../../../../src/provider/hooks/locale/useDetermineLocale.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,sCAAsC,CAAC;AAI9C,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EAAE,OAAY,EACpB,aAAoC,EACpC,OAAY,EACZ,gBAA8C,EAC9C,GAAW,EAAE,eAAe;AAC5B,aAAa,GACd,EAAE,wBAAwB,GAAG,wBAAwB,CA2DrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRegionState.d.ts","sourceRoot":"","sources":["../../../../../src/provider/hooks/useRegionState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"useRegionState.d.ts","sourceRoot":"","sources":["../../../../../src/provider/hooks/useRegionState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,sCAAsC,CAAC;AAsB9C,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,GAAG,EACH,gBAAgB,GACjB,EAAE,oBAAoB,GAAG,oBAAoB,CAoB7C"}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import '@formatjs/intl-getcanonicallocales/polyfill';
|
|
2
2
|
import '@formatjs/intl-locale/polyfill';
|
|
3
3
|
import '@formatjs/intl-displaynames/polyfill';
|
|
4
|
+
import '@formatjs/intl-listformat/polyfill';
|
|
5
|
+
import '@formatjs/intl-pluralrules/polyfill-force';
|
|
6
|
+
import '@formatjs/intl-numberformat/polyfill';
|
|
7
|
+
import '@formatjs/intl-relativetimeformat/polyfill';
|
|
8
|
+
import '@formatjs/intl-datetimeformat/polyfill';
|
|
9
|
+
import '@formatjs/intl-datetimeformat/add-all-tz';
|
|
4
10
|
import '@formatjs/intl-displaynames/locale-data/en';
|
|
5
11
|
import '@formatjs/intl-displaynames/locale-data/zh';
|
|
6
12
|
import '@formatjs/intl-displaynames/locale-data/es';
|
|
7
|
-
import '@formatjs/intl-listformat/polyfill';
|
|
8
13
|
import '@formatjs/intl-listformat/locale-data/en';
|
|
9
14
|
import '@formatjs/intl-listformat/locale-data/zh';
|
|
10
15
|
import '@formatjs/intl-listformat/locale-data/es';
|
|
11
|
-
import '@formatjs/intl-pluralrules/polyfill';
|
|
12
16
|
import '@formatjs/intl-pluralrules/locale-data/en';
|
|
13
17
|
import '@formatjs/intl-pluralrules/locale-data/zh';
|
|
14
18
|
import '@formatjs/intl-pluralrules/locale-data/es';
|
|
15
|
-
import '@formatjs/intl-numberformat/polyfill';
|
|
16
19
|
import '@formatjs/intl-numberformat/locale-data/en';
|
|
17
20
|
import '@formatjs/intl-numberformat/locale-data/zh';
|
|
18
21
|
import '@formatjs/intl-numberformat/locale-data/es';
|
|
19
|
-
import '@formatjs/intl-relativetimeformat/polyfill';
|
|
20
22
|
import '@formatjs/intl-relativetimeformat/locale-data/en';
|
|
21
23
|
import '@formatjs/intl-relativetimeformat/locale-data/zh';
|
|
22
24
|
import '@formatjs/intl-relativetimeformat/locale-data/es';
|
|
23
|
-
import '@formatjs/intl-datetimeformat/polyfill';
|
|
24
|
-
import '@formatjs/intl-datetimeformat/add-all-tz';
|
|
25
25
|
import '@formatjs/intl-datetimeformat/locale-data/en';
|
|
26
26
|
import '@formatjs/intl-datetimeformat/locale-data/zh';
|
|
27
27
|
import '@formatjs/intl-datetimeformat/locale-data/es';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polyfill.d.ts","sourceRoot":"","sources":["../../../../src/utils/polyfill.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"polyfill.d.ts","sourceRoot":"","sources":["../../../../src/utils/polyfill.ts"],"names":[],"mappings":"AAGA,OAAO,6CAA6C,CAAC;AACrD,OAAO,gCAAgC,CAAC;AACxC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,oCAAoC,CAAC;AAC5C,OAAO,2CAA2C,CAAC;AACnD,OAAO,sCAAsC,CAAC;AAC9C,OAAO,4CAA4C,CAAC;AACpD,OAAO,wCAAwC,CAAC;AAChD,OAAO,0CAA0C,CAAC;AAElD,OAAO,4CAA4C,CAAC;AACpD,OAAO,4CAA4C,CAAC;AACpD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,0CAA0C,CAAC;AAClD,OAAO,0CAA0C,CAAC;AAClD,OAAO,0CAA0C,CAAC;AAElD,OAAO,2CAA2C,CAAC;AACnD,OAAO,2CAA2C,CAAC;AACnD,OAAO,2CAA2C,CAAC;AAEnD,OAAO,4CAA4C,CAAC;AACpD,OAAO,4CAA4C,CAAC;AACpD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,kDAAkD,CAAC;AAC1D,OAAO,kDAAkD,CAAC;AAC1D,OAAO,kDAAkD,CAAC;AAE1D,OAAO,8CAA8C,CAAC;AACtD,OAAO,8CAA8C,CAAC;AACtD,OAAO,8CAA8C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/utils/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/utils/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,sCAAsC,CAAC;AAE9C,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAM5E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gt-react-native",
|
|
3
|
-
"version": "0.0.1-alpha.
|
|
3
|
+
"version": "0.0.1-alpha.10",
|
|
4
4
|
"description": "An i18n package for React Native",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -19,7 +19,6 @@
|
|
|
19
19
|
"ios",
|
|
20
20
|
"cpp",
|
|
21
21
|
"*.podspec",
|
|
22
|
-
"react-native.config.js",
|
|
23
22
|
"!ios/build",
|
|
24
23
|
"!android/build",
|
|
25
24
|
"!android/gradle",
|
|
@@ -38,8 +37,8 @@
|
|
|
38
37
|
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
39
38
|
"clean": "del-cli android/build example/android/build example/android/app/build example/ios/build lib",
|
|
40
39
|
"prepare": "bob build",
|
|
41
|
-
"release": "yarn clean && yarn npm publish --tag latest",
|
|
42
|
-
"release:alpha": "yarn clean && npm publish --tag alpha"
|
|
40
|
+
"release": "yarn clean && yarn prepare && npm publish --tag latest",
|
|
41
|
+
"release:alpha": "yarn clean && yarn prepare && npm publish --tag alpha"
|
|
43
42
|
},
|
|
44
43
|
"keywords": [
|
|
45
44
|
"react-native",
|
|
@@ -145,7 +144,7 @@
|
|
|
145
144
|
"codegenConfig": {
|
|
146
145
|
"name": "GtReactNativeSpec",
|
|
147
146
|
"type": "modules",
|
|
148
|
-
"jsSrcsDir": "src",
|
|
147
|
+
"jsSrcsDir": "./src",
|
|
149
148
|
"android": {
|
|
150
149
|
"javaPackageName": "com.gtreactnative"
|
|
151
150
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
import { TurboModuleRegistry } from 'react-native';
|
|
3
3
|
export interface Spec extends TurboModule {
|
|
4
4
|
multiply(a: number, b: number): number;
|
|
5
5
|
getNativeLocales(): string[];
|
|
@@ -8,14 +8,13 @@ import type {
|
|
|
8
8
|
} from '@generaltranslation/react-core/types';
|
|
9
9
|
import { getNativeLocales } from '../../../utils/getNativeLocales';
|
|
10
10
|
import { nativeStoreGet, nativeStoreSet } from '../../../utils/nativeStore';
|
|
11
|
-
import { LOCALE_KEY } from '../../../utils/constants';
|
|
12
11
|
|
|
13
12
|
export function useDetermineLocale({
|
|
14
13
|
locale: _locale = '',
|
|
15
14
|
defaultLocale = libraryDefaultLocale,
|
|
16
15
|
locales = [],
|
|
17
16
|
localeCookieName = 'generaltranslation.locale',
|
|
18
|
-
ssr =
|
|
17
|
+
ssr = false, // not relevant
|
|
19
18
|
customMapping,
|
|
20
19
|
}: UseDetermineLocaleParams): UseDetermineLocaleReturn {
|
|
21
20
|
// resolve alias locale
|
|
@@ -45,7 +44,7 @@ export function useDetermineLocale({
|
|
|
45
44
|
const [locale, _setLocale] = useState<string>(initializeLocale());
|
|
46
45
|
|
|
47
46
|
// Functions for setting internal locale state
|
|
48
|
-
const [setLocale,
|
|
47
|
+
const [setLocale, setLocaleWithoutPersist] = createSetLocale({
|
|
49
48
|
locale,
|
|
50
49
|
locales,
|
|
51
50
|
defaultLocale,
|
|
@@ -64,7 +63,7 @@ export function useDetermineLocale({
|
|
|
64
63
|
localeCookieName,
|
|
65
64
|
customMapping,
|
|
66
65
|
});
|
|
67
|
-
|
|
66
|
+
setLocaleWithoutPersist(newLocale);
|
|
68
67
|
}, [
|
|
69
68
|
_locale,
|
|
70
69
|
locale,
|
|
@@ -72,7 +71,7 @@ export function useDetermineLocale({
|
|
|
72
71
|
defaultLocale,
|
|
73
72
|
localeCookieName,
|
|
74
73
|
customMapping,
|
|
75
|
-
|
|
74
|
+
setLocaleWithoutPersist,
|
|
76
75
|
]);
|
|
77
76
|
|
|
78
77
|
return [locale, setLocale];
|
|
@@ -93,6 +92,7 @@ function getNewLocale({
|
|
|
93
92
|
locale,
|
|
94
93
|
locales,
|
|
95
94
|
defaultLocale,
|
|
95
|
+
localeCookieName,
|
|
96
96
|
customMapping,
|
|
97
97
|
}: {
|
|
98
98
|
_locale: string;
|
|
@@ -112,7 +112,7 @@ function getNewLocale({
|
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
// Check for locale in native store
|
|
115
|
-
let storedLocale = nativeStoreGet(
|
|
115
|
+
let storedLocale = nativeStoreGet(localeCookieName);
|
|
116
116
|
if (storedLocale) {
|
|
117
117
|
storedLocale = resolveAliasLocale(storedLocale, customMapping);
|
|
118
118
|
}
|
|
@@ -141,7 +141,7 @@ function getNewLocale({
|
|
|
141
141
|
|
|
142
142
|
// if stored locale not valid, change it back to whatever we use for fallback
|
|
143
143
|
if (storedLocale && storedLocale !== newLocale) {
|
|
144
|
-
nativeStoreSet(
|
|
144
|
+
nativeStoreSet(localeCookieName, newLocale);
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
// return new locale
|
|
@@ -153,6 +153,7 @@ function createSetLocale({
|
|
|
153
153
|
locales,
|
|
154
154
|
defaultLocale,
|
|
155
155
|
_setLocale,
|
|
156
|
+
localeCookieName,
|
|
156
157
|
customMapping,
|
|
157
158
|
}: {
|
|
158
159
|
locale: string;
|
|
@@ -163,7 +164,8 @@ function createSetLocale({
|
|
|
163
164
|
customMapping?: CustomMapping;
|
|
164
165
|
}): [(newLocale: string) => void, (newLocale: string) => void] {
|
|
165
166
|
locale = resolveAliasLocale(locale, customMapping);
|
|
166
|
-
|
|
167
|
+
// Just update the internal state, don't persist it
|
|
168
|
+
const setLocaleWithoutPersist = (newLocale: string): string => {
|
|
167
169
|
// validate locale
|
|
168
170
|
const validatedLocale = resolveAliasLocale(
|
|
169
171
|
determineLocale(newLocale, locales, customMapping) ||
|
|
@@ -181,12 +183,12 @@ function createSetLocale({
|
|
|
181
183
|
|
|
182
184
|
return validatedLocale;
|
|
183
185
|
};
|
|
184
|
-
// update locale and
|
|
186
|
+
// update locale and persist it in native store
|
|
185
187
|
const setLocale = (newLocale: string): void => {
|
|
186
188
|
newLocale = resolveAliasLocale(newLocale, customMapping);
|
|
187
|
-
|
|
188
|
-
const validatedLocale =
|
|
189
|
-
nativeStoreSet(
|
|
189
|
+
setLocaleWithoutPersist(newLocale);
|
|
190
|
+
const validatedLocale = setLocaleWithoutPersist(newLocale);
|
|
191
|
+
nativeStoreSet(localeCookieName, validatedLocale);
|
|
190
192
|
};
|
|
191
|
-
return [setLocale,
|
|
193
|
+
return [setLocale, setLocaleWithoutPersist];
|
|
192
194
|
}
|
|
@@ -3,33 +3,23 @@ import type {
|
|
|
3
3
|
UseRegionStateParams,
|
|
4
4
|
UseRegionStateReturn,
|
|
5
5
|
} from '@generaltranslation/react-core/types';
|
|
6
|
+
import { nativeStoreGet, nativeStoreSet } from '../../utils/nativeStore';
|
|
6
7
|
|
|
7
8
|
function getNewRegion({
|
|
8
9
|
_region,
|
|
10
|
+
regionCookieName,
|
|
9
11
|
}: {
|
|
10
12
|
_region: string | undefined;
|
|
11
13
|
regionCookieName: string;
|
|
12
14
|
}) {
|
|
13
|
-
// Check for region in
|
|
14
|
-
|
|
15
|
-
// typeof document !== 'undefined'
|
|
16
|
-
// ? document.cookie
|
|
17
|
-
// .split('; ')
|
|
18
|
-
// .find((row) => row.startsWith(`${regionCookieName}=`))
|
|
19
|
-
// ?.split('=')[1]
|
|
20
|
-
// : undefined;
|
|
21
|
-
const cookieRegion = undefined;
|
|
22
|
-
|
|
15
|
+
// Check for region in native store
|
|
16
|
+
const cookieRegion = nativeStoreGet(regionCookieName) || undefined;
|
|
23
17
|
const newRegion = _region || cookieRegion;
|
|
24
18
|
|
|
25
|
-
//
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
// typeof document !== 'undefined'
|
|
30
|
-
// ) {
|
|
31
|
-
// document.cookie = `${regionCookieName}=${newRegion};path=/`;
|
|
32
|
-
// }
|
|
19
|
+
// if state not valid, change it to newRegion
|
|
20
|
+
if (cookieRegion && cookieRegion !== newRegion) {
|
|
21
|
+
nativeStoreSet(regionCookieName, newRegion || '');
|
|
22
|
+
}
|
|
33
23
|
|
|
34
24
|
return newRegion;
|
|
35
25
|
}
|
|
@@ -49,9 +39,7 @@ export function useRegionState({
|
|
|
49
39
|
);
|
|
50
40
|
const setRegion = (newRegion: string | undefined) => {
|
|
51
41
|
_setRegion(newRegion);
|
|
52
|
-
|
|
53
|
-
// document.cookie = `${regionCookieName}=${newRegion || ''};path=/`;
|
|
54
|
-
// }
|
|
42
|
+
nativeStoreSet(regionCookieName, newRegion || '');
|
|
55
43
|
};
|
|
56
44
|
useEffect(() => {
|
|
57
45
|
_setRegion(getNewRegion({ _region, regionCookieName }));
|
package/src/utils/polyfill.ts
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Intl object not natively supported, see: https://formatjs.github.io/docs/polyfills
|
|
2
|
+
// See also: The Ultimate Guide to React Native Optimization - page 124
|
|
2
3
|
|
|
3
4
|
import '@formatjs/intl-getcanonicallocales/polyfill';
|
|
4
|
-
|
|
5
5
|
import '@formatjs/intl-locale/polyfill';
|
|
6
|
-
|
|
7
6
|
import '@formatjs/intl-displaynames/polyfill';
|
|
7
|
+
import '@formatjs/intl-listformat/polyfill';
|
|
8
|
+
import '@formatjs/intl-pluralrules/polyfill-force'; // https://github.com/formatjs/formatjs/issues/4463
|
|
9
|
+
import '@formatjs/intl-numberformat/polyfill';
|
|
10
|
+
import '@formatjs/intl-relativetimeformat/polyfill';
|
|
11
|
+
import '@formatjs/intl-datetimeformat/polyfill';
|
|
12
|
+
import '@formatjs/intl-datetimeformat/add-all-tz';
|
|
13
|
+
|
|
8
14
|
import '@formatjs/intl-displaynames/locale-data/en';
|
|
9
15
|
import '@formatjs/intl-displaynames/locale-data/zh';
|
|
10
16
|
import '@formatjs/intl-displaynames/locale-data/es';
|
|
11
17
|
|
|
12
|
-
import '@formatjs/intl-listformat/polyfill';
|
|
13
18
|
import '@formatjs/intl-listformat/locale-data/en';
|
|
14
19
|
import '@formatjs/intl-listformat/locale-data/zh';
|
|
15
20
|
import '@formatjs/intl-listformat/locale-data/es';
|
|
16
21
|
|
|
17
|
-
import '@formatjs/intl-pluralrules/polyfill';
|
|
18
22
|
import '@formatjs/intl-pluralrules/locale-data/en';
|
|
19
23
|
import '@formatjs/intl-pluralrules/locale-data/zh';
|
|
20
24
|
import '@formatjs/intl-pluralrules/locale-data/es';
|
|
21
25
|
|
|
22
|
-
import '@formatjs/intl-numberformat/polyfill';
|
|
23
26
|
import '@formatjs/intl-numberformat/locale-data/en';
|
|
24
27
|
import '@formatjs/intl-numberformat/locale-data/zh';
|
|
25
28
|
import '@formatjs/intl-numberformat/locale-data/es';
|
|
26
29
|
|
|
27
|
-
import '@formatjs/intl-relativetimeformat/polyfill';
|
|
28
30
|
import '@formatjs/intl-relativetimeformat/locale-data/en';
|
|
29
31
|
import '@formatjs/intl-relativetimeformat/locale-data/zh';
|
|
30
32
|
import '@formatjs/intl-relativetimeformat/locale-data/es';
|
|
31
33
|
|
|
32
|
-
import '@formatjs/intl-datetimeformat/polyfill';
|
|
33
|
-
import '@formatjs/intl-datetimeformat/add-all-tz';
|
|
34
34
|
import '@formatjs/intl-datetimeformat/locale-data/en';
|
|
35
35
|
import '@formatjs/intl-datetimeformat/locale-data/zh';
|
|
36
36
|
import '@formatjs/intl-datetimeformat/locale-data/es';
|
package/src/utils/utils.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// import Config from 'react-native-config';
|
|
2
1
|
import type {
|
|
3
2
|
AuthFromEnvParams,
|
|
4
3
|
AuthFromEnvReturn,
|
|
@@ -7,7 +6,7 @@ import type {
|
|
|
7
6
|
export function readAuthFromEnv(params: AuthFromEnvParams): AuthFromEnvReturn {
|
|
8
7
|
const { projectId, devApiKey } = params;
|
|
9
8
|
return {
|
|
10
|
-
projectId: projectId || '',
|
|
11
|
-
devApiKey: devApiKey,
|
|
9
|
+
projectId: projectId || '',
|
|
10
|
+
devApiKey: devApiKey,
|
|
12
11
|
};
|
|
13
12
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["LOCALE_KEY","REGION_KEY"],"sourceRoot":"../../../src","sources":["utils/constants.ts"],"mappings":";;AAAA;AACA,OAAO,MAAMA,UAAU,GAAG,2BAA2B;;AAErD;AACA,OAAO,MAAMC,UAAU,GAAG,2BAA2B","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/utils/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,8BAA8B,CAAC;AAGtD,eAAO,MAAM,UAAU,8BAA8B,CAAC"}
|