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.
Files changed (39) hide show
  1. package/android/app/build/generated/source/codegen/java/com/facebook/fbreact/specs/NativeGtReactNativeSpec.java +2 -2
  2. package/android/app/build/generated/source/codegen/jni/GtReactNativeSpec-generated.cpp +6 -6
  3. package/android/app/build/generated/source/codegen/jni/react/renderer/components/GtReactNativeSpec/GtReactNativeSpecJSI-generated.cpp +6 -6
  4. package/android/app/build/generated/source/codegen/jni/react/renderer/components/GtReactNativeSpec/GtReactNativeSpecJSI.h +10 -10
  5. package/android/build.gradle +12 -1
  6. package/android/src/main/java/com/gtreactnative/{GtReactNativeModule.kt → GtReactNativeModuleImpl.kt} +11 -23
  7. package/android/src/main/java/com/gtreactnative/GtReactNativePackage.kt +9 -7
  8. package/android/src/newarch/com/gtreactnative/GtReactNativeModule.kt +30 -0
  9. package/android/src/oldarch/com/gtreactnative/GtReactNativeModule.kt +36 -0
  10. package/ios/GtReactNative.h +9 -1
  11. package/ios/GtReactNative.mm +47 -12
  12. package/lib/module/NativeGtReactNative.js.map +1 -1
  13. package/lib/module/provider/hooks/locale/useDetermineLocale.js +16 -14
  14. package/lib/module/provider/hooks/locale/useDetermineLocale.js.map +1 -1
  15. package/lib/module/provider/hooks/useRegionState.js +10 -22
  16. package/lib/module/provider/hooks/useRegionState.js.map +1 -1
  17. package/lib/module/utils/polyfill.js +8 -7
  18. package/lib/module/utils/polyfill.js.map +1 -1
  19. package/lib/module/utils/utils.js +1 -4
  20. package/lib/module/utils/utils.js.map +1 -1
  21. package/lib/typescript/src/NativeGtReactNative.d.ts +1 -1
  22. package/lib/typescript/src/NativeGtReactNative.d.ts.map +1 -1
  23. package/lib/typescript/src/provider/hooks/locale/useDetermineLocale.d.ts +1 -1
  24. package/lib/typescript/src/provider/hooks/locale/useDetermineLocale.d.ts.map +1 -1
  25. package/lib/typescript/src/provider/hooks/useRegionState.d.ts.map +1 -1
  26. package/lib/typescript/src/utils/polyfill.d.ts +6 -6
  27. package/lib/typescript/src/utils/polyfill.d.ts.map +1 -1
  28. package/lib/typescript/src/utils/utils.d.ts.map +1 -1
  29. package/package.json +4 -5
  30. package/src/NativeGtReactNative.ts +2 -2
  31. package/src/provider/hooks/locale/useDetermineLocale.ts +15 -13
  32. package/src/provider/hooks/useRegionState.ts +9 -21
  33. package/src/utils/polyfill.ts +9 -9
  34. package/src/utils/utils.ts +2 -3
  35. package/lib/module/utils/constants.js +0 -8
  36. package/lib/module/utils/constants.js.map +0 -1
  37. package/lib/typescript/src/utils/constants.d.ts +0 -3
  38. package/lib/typescript/src/utils/constants.d.ts.map +0 -1
  39. 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 get(String key);
46
+ public abstract @Nullable String nativeStoreGet(String key);
47
47
 
48
48
  @ReactMethod
49
49
  @DoNotStrip
50
- public abstract void set(String key, String value);
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 __hostFunction_NativeGtReactNativeSpecJSI_get(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
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, "get", "(Ljava/lang/String;)Ljava/lang/String;", args, count, cachedMethodId);
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 __hostFunction_NativeGtReactNativeSpecJSI_set(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
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, "set", "(Ljava/lang/String;Ljava/lang/String;)V", args, count, cachedMethodId);
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 &params)
36
36
  : JavaTurboModule(params) {
37
37
  methodMap_["multiply"] = MethodMetadata {2, __hostFunction_NativeGtReactNativeSpecJSI_multiply};
38
38
  methodMap_["getNativeLocales"] = MethodMetadata {0, __hostFunction_NativeGtReactNativeSpecJSI_getNativeLocales};
39
- methodMap_["get"] = MethodMetadata {1, __hostFunction_NativeGtReactNativeSpecJSI_get};
40
- methodMap_["set"] = MethodMetadata {2, __hostFunction_NativeGtReactNativeSpecJSI_set};
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 &params) {
@@ -23,15 +23,15 @@ static jsi::Value __hostFunction_NativeGtReactNativeCxxSpecJSI_getNativeLocales(
23
23
  rt
24
24
  );
25
25
  }
26
- static jsi::Value __hostFunction_NativeGtReactNativeCxxSpecJSI_get(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
27
- auto result = static_cast<NativeGtReactNativeCxxSpecJSI *>(&turboModule)->get(
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 __hostFunction_NativeGtReactNativeCxxSpecJSI_set(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
34
- static_cast<NativeGtReactNativeCxxSpecJSI *>(&turboModule)->set(
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_["get"] = MethodMetadata {1, __hostFunction_NativeGtReactNativeCxxSpecJSI_get};
47
- methodMap_["set"] = MethodMetadata {2, __hostFunction_NativeGtReactNativeCxxSpecJSI_set};
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> get(jsi::Runtime &rt, jsi::String key) = 0;
26
- virtual void set(jsi::Runtime &rt, jsi::String key, jsi::String value) = 0;
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> get(jsi::Runtime &rt, jsi::String key) override {
73
+ std::optional<jsi::String> nativeStoreGet(jsi::Runtime &rt, jsi::String key) override {
74
74
  static_assert(
75
- bridging::getParameterCount(&T::get) == 2,
76
- "Expected get(...) to have 2 parameters");
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::get, jsInvoker_, instance_, std::move(key));
79
+ rt, &T::nativeStoreGet, jsInvoker_, instance_, std::move(key));
80
80
  }
81
- void set(jsi::Runtime &rt, jsi::String key, jsi::String value) override {
81
+ void nativeStoreSet(jsi::Runtime &rt, jsi::String key, jsi::String value) override {
82
82
  static_assert(
83
- bridging::getParameterCount(&T::set) == 3,
84
- "Expected set(...) to have 3 parameters");
83
+ bridging::getParameterCount(&T::nativeStoreSet) == 3,
84
+ "Expected nativeStoreSet(...) to have 3 parameters");
85
85
 
86
86
  return bridging::callFromJs<void>(
87
- rt, &T::set, jsInvoker_, instance_, std::move(key), std::move(value));
87
+ rt, &T::nativeStoreSet, jsInvoker_, instance_, std::move(key), std::move(value));
88
88
  }
89
89
 
90
90
  private:
@@ -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
- apply plugin: "com.facebook.react"
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
- @ReactModule(name = GtReactNativeModule.NAME)
13
- class GtReactNativeModule(reactContext: ReactApplicationContext) :
14
- NativeGtReactNativeSpec(reactContext) {
11
+ object GtReactNativeModuleImpl {
12
+ const val NAME = "GtReactNative"
15
13
 
16
- private val prefs by lazy {
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
- override fun getNativeLocales(): WritableArray {
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
- override fun nativeStoreGet(key: String): String? = prefs.getString(key, null)
60
-
61
- override fun nativeStoreSet(key: String, value: String) {
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
- companion object {
66
- const val NAME = "GtReactNative"
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.facebook.react.BaseReactPackage
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 : BaseReactPackage() {
11
+ class GtReactNativePackage : TurboReactPackage() {
11
12
  override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
12
- return if (name == GtReactNativeModule.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
- moduleInfos[GtReactNativeModule.NAME] = ReactModuleInfo(
23
- GtReactNativeModule.NAME,
24
- GtReactNativeModule.NAME,
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
- true // isTurboModule
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
+ }
@@ -1,5 +1,13 @@
1
- #import <GtReactNativeSpec/GtReactNativeSpec.h>
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
@@ -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
- return result;
17
+ // Internal implementation methods
18
+ - (NSNumber *)multiplyImpl:(double)a b:(double)b {
19
+ return @(a * b);
18
20
  }
19
21
 
20
- - (NSArray<NSString *> *)getNativeLocales {
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 *)nativeStoreGet:(NSString *)key
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)nativeStoreSet:(NSString *)key value:(NSString *)value
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
- - (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
54
- (const facebook::react::ObjCTurboModule::InitParams &)params
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
- + (NSString *)moduleName
60
- {
61
- return @"GtReactNative";
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":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AASpE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,eAAe,CAAC","ignoreList":[]}
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 = true,
15
- // when false, breaks server side rendering by accessing document and navigator on first render
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, setLocaleWithoutSettingCookie] = createSetLocale({
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
- setLocaleWithoutSettingCookie(newLocale);
57
- }, [_locale, locale, locales, defaultLocale, localeCookieName, customMapping, setLocaleWithoutSettingCookie]);
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(LOCALE_KEY);
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(LOCALE_KEY, newLocale);
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
- const setLocaleWithoutSettingCookie = newLocale => {
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 store it in cookie
133
+ // update locale and persist it in native store
132
134
  const setLocale = newLocale => {
133
135
  newLocale = resolveAliasLocale(newLocale, customMapping);
134
- setLocaleWithoutSettingCookie(newLocale);
135
- const validatedLocale = setLocaleWithoutSettingCookie(newLocale);
136
- nativeStoreSet(LOCALE_KEY, validatedLocale);
136
+ setLocaleWithoutPersist(newLocale);
137
+ const validatedLocale = setLocaleWithoutPersist(newLocale);
138
+ nativeStoreSet(localeCookieName, validatedLocale);
137
139
  };
138
- return [setLocale, setLocaleWithoutSettingCookie];
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","LOCALE_KEY","useDetermineLocale","locale","_locale","defaultLocale","locales","localeCookieName","ssr","customMapping","map","initializeLocale","result","getNewLocale","_setLocale","setLocale","setLocaleWithoutSettingCookie","createSetLocale","newLocale","storedLocale","preferredLocales","length","l","validatedLocale","console","warn"],"sourceRoot":"../../../../../src","sources":["provider/hooks/locale/useDetermineLocale.ts"],"mappings":"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","ignoreList":[]}
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 cookie
8
- // const cookieRegion =
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
- // // if cookie not valid, change it to newRegion
19
- // if (
20
- // cookieRegion &&
21
- // cookieRegion !== newRegion &&
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
- // if (typeof document !== 'undefined') {
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","regionCookieName","region","_setRegion","setRegion"],"sourceRoot":"../../../../src","sources":["provider/hooks/useRegionState.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAM3C,SAASC,YAAYA,CAAC;EACpBC;AAIF,CAAC,EAAE;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,YAAY,GAAGC,SAAS;EAE9B,MAAMC,SAAS,GAAGH,OAAO,IAAIC,YAAY;;EAEzC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,OAAOE,SAAS;AAClB;AAEA,OAAO,SAASC,cAAcA,CAAC;EAC7BJ,OAAO;EACPK,GAAG;EACHC;AACoB,CAAC,EAAwB;EAC7C,MAAM,CAACC,MAAM,EAAEC,UAAU,CAAC,GAAGV,QAAQ,CACnCO,GAAG,GACCH,SAAS,GACTH,YAAY,CAAC;IACXC,OAAO;IACPM;EACF,CAAC,CACP,CAAC;EACD,MAAMG,SAAS,GAAIN,SAA6B,IAAK;IACnDK,UAAU,CAACL,SAAS,CAAC;IACrB;IACA;IACA;EACF,CAAC;EACDN,SAAS,CAAC,MAAM;IACdW,UAAU,CAACT,YAAY,CAAC;MAAEC,OAAO;MAAEM;IAAiB,CAAC,CAAC,CAAC;EACzD,CAAC,EAAE,CAACN,OAAO,EAAEM,gBAAgB,CAAC,CAAC;EAC/B,OAAO;IACLC,MAAM;IACNE;EACF,CAAC;AACH","ignoreList":[]}
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
- // This is a temporary solution, we will do something smarter before the first release
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;AAEpD,OAAO,gCAAgC;AAEvC,OAAO,sCAAsC;AAC7C,OAAO,4CAA4C;AACnD,OAAO,4CAA4C;AACnD,OAAO,4CAA4C;AAEnD,OAAO,oCAAoC;AAC3C,OAAO,0CAA0C;AACjD,OAAO,0CAA0C;AACjD,OAAO,0CAA0C;AAEjD,OAAO,qCAAqC;AAC5C,OAAO,2CAA2C;AAClD,OAAO,2CAA2C;AAClD,OAAO,2CAA2C;AAElD,OAAO,sCAAsC;AAC7C,OAAO,4CAA4C;AACnD,OAAO,4CAA4C;AACnD,OAAO,4CAA4C;AAEnD,OAAO,4CAA4C;AACnD,OAAO,kDAAkD;AACzD,OAAO,kDAAkD;AACzD,OAAO,kDAAkD;AAEzD,OAAO,wCAAwC;AAC/C,OAAO,0CAA0C;AACjD,OAAO,8CAA8C;AACrD,OAAO,8CAA8C;AACrD,OAAO,8CAA8C","ignoreList":[]}
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
- //|| Config.GT_PROJECT_ID || '',
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":";;AAAA;;AAMA,OAAO,SAASA,eAAeA,CAACC,MAAyB,EAAqB;EAC5E,MAAM;IAAEC,SAAS;IAAEC;EAAU,CAAC,GAAGF,MAAM;EACvC,OAAO;IACLC,SAAS,EAAEA,SAAS,IAAI,EAAE;IAAE;IAC5BC,SAAS,EAAEA,SAAS,CAAE;EACxB,CAAC;AACH","ignoreList":[]}
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,4 +1,4 @@
1
- import { type TurboModule } from 'react-native';
1
+ import type { TurboModule } from 'react-native';
2
2
  export interface Spec extends TurboModule {
3
3
  multiply(a: number, b: number): number;
4
4
  getNativeLocales(): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"NativeGtReactNative.d.ts","sourceRoot":"","sources":["../../../src/NativeGtReactNative.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,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
+ {"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, // when false, breaks server side rendering by accessing document and navigator on first render
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;AAK9C,wBAAgB,kBAAkB,CAAC,EACjC,MAAM,EAAE,OAAY,EACpB,aAAoC,EACpC,OAAY,EACZ,gBAA8C,EAC9C,GAAU,EAAE,+FAA+F;AAC3G,aAAa,GACd,EAAE,wBAAwB,GAAG,wBAAwB,CA2DrD"}
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;AAgC9C,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,GAAG,EACH,gBAAgB,GACjB,EAAE,oBAAoB,GAAG,oBAAoB,CAsB7C"}
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":"AAEA,OAAO,6CAA6C,CAAC;AAErD,OAAO,gCAAgC,CAAC;AAExC,OAAO,sCAAsC,CAAC;AAC9C,OAAO,4CAA4C,CAAC;AACpD,OAAO,4CAA4C,CAAC;AACpD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,oCAAoC,CAAC;AAC5C,OAAO,0CAA0C,CAAC;AAClD,OAAO,0CAA0C,CAAC;AAClD,OAAO,0CAA0C,CAAC;AAElD,OAAO,qCAAqC,CAAC;AAC7C,OAAO,2CAA2C,CAAC;AACnD,OAAO,2CAA2C,CAAC;AACnD,OAAO,2CAA2C,CAAC;AAEnD,OAAO,sCAAsC,CAAC;AAC9C,OAAO,4CAA4C,CAAC;AACpD,OAAO,4CAA4C,CAAC;AACpD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,4CAA4C,CAAC;AACpD,OAAO,kDAAkD,CAAC;AAC1D,OAAO,kDAAkD,CAAC;AAC1D,OAAO,kDAAkD,CAAC;AAE1D,OAAO,wCAAwC,CAAC;AAChD,OAAO,0CAA0C,CAAC;AAClD,OAAO,8CAA8C,CAAC;AACtD,OAAO,8CAA8C,CAAC;AACtD,OAAO,8CAA8C,CAAC"}
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":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,sCAAsC,CAAC;AAE9C,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,CAM5E"}
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.1",
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 { TurboModuleRegistry, type TurboModule } from 'react-native';
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 = true, // when false, breaks server side rendering by accessing document and navigator on first render
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, setLocaleWithoutSettingCookie] = createSetLocale({
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
- setLocaleWithoutSettingCookie(newLocale);
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
- setLocaleWithoutSettingCookie,
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(LOCALE_KEY);
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(LOCALE_KEY, newLocale);
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
- const setLocaleWithoutSettingCookie = (newLocale: string): string => {
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 store it in cookie
186
+ // update locale and persist it in native store
185
187
  const setLocale = (newLocale: string): void => {
186
188
  newLocale = resolveAliasLocale(newLocale, customMapping);
187
- setLocaleWithoutSettingCookie(newLocale);
188
- const validatedLocale = setLocaleWithoutSettingCookie(newLocale);
189
- nativeStoreSet(LOCALE_KEY, validatedLocale);
189
+ setLocaleWithoutPersist(newLocale);
190
+ const validatedLocale = setLocaleWithoutPersist(newLocale);
191
+ nativeStoreSet(localeCookieName, validatedLocale);
190
192
  };
191
- return [setLocale, setLocaleWithoutSettingCookie];
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 cookie
14
- // const cookieRegion =
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
- // // if cookie not valid, change it to newRegion
26
- // if (
27
- // cookieRegion &&
28
- // cookieRegion !== newRegion &&
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
- // if (typeof document !== 'undefined') {
53
- // document.cookie = `${regionCookieName}=${newRegion || ''};path=/`;
54
- // }
42
+ nativeStoreSet(regionCookieName, newRegion || '');
55
43
  };
56
44
  useEffect(() => {
57
45
  _setRegion(getNewRegion({ _region, regionCookieName }));
@@ -1,36 +1,36 @@
1
- // This is a temporary solution, we will do something smarter before the first release
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';
@@ -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 || '', //|| Config.GT_PROJECT_ID || '',
11
- devApiKey: devApiKey, //|| Config.GT_DEV_API_KEY || undefined,
9
+ projectId: projectId || '',
10
+ devApiKey: devApiKey,
12
11
  };
13
12
  }
@@ -1,8 +0,0 @@
1
- "use strict";
2
-
3
- // Locale key used for lookups
4
- export const LOCALE_KEY = 'generaltranslation.locale';
5
-
6
- // Region key used for lookups
7
- export const REGION_KEY = 'generaltranslation.region';
8
- //# sourceMappingURL=constants.js.map
@@ -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,3 +0,0 @@
1
- export declare const LOCALE_KEY = "generaltranslation.locale";
2
- export declare const REGION_KEY = "generaltranslation.region";
3
- //# sourceMappingURL=constants.d.ts.map
@@ -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"}
@@ -1,5 +0,0 @@
1
- // Locale key used for lookups
2
- export const LOCALE_KEY = 'generaltranslation.locale';
3
-
4
- // Region key used for lookups
5
- export const REGION_KEY = 'generaltranslation.region';