react-native-timezone 3.0.1 → 3.2.0
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/LICENSE +1 -1
- package/README.md +76 -13
- package/android/build.gradle +19 -9
- package/android/generated/java/com/samitha/timezone/NativeTimezoneSpec.java +50 -0
- package/android/generated/jni/CMakeLists.txt +36 -0
- package/android/generated/jni/RNTimezoneSpec-generated.cpp +50 -0
- package/android/generated/jni/RNTimezoneSpec.h +31 -0
- package/android/generated/jni/react/renderer/components/RNTimezoneSpec/RNTimezoneSpecJSI-generated.cpp +48 -0
- package/android/generated/jni/react/renderer/components/RNTimezoneSpec/RNTimezoneSpecJSI.h +94 -0
- package/android/src/main/AndroidManifest.xml +1 -1
- package/android/src/main/java/com/samitha/timezone/TimezoneModule.kt +87 -0
- package/android/src/main/java/com/samitha/timezone/TimezonePackage.kt +34 -0
- package/ios/Timezone.h +1 -7
- package/ios/Timezone.mm +71 -33
- package/ios/generated/RNTimezoneSpec/RNTimezoneSpec-generated.mm +60 -0
- package/ios/generated/RNTimezoneSpec/RNTimezoneSpec.h +62 -0
- package/ios/generated/RNTimezoneSpecJSI-generated.cpp +48 -0
- package/ios/generated/RNTimezoneSpecJSI.h +94 -0
- package/lib/commonjs/NativeTimezone.js.map +1 -1
- package/lib/commonjs/index.js +7 -18
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/NativeTimezone.js +2 -0
- package/lib/module/NativeTimezone.js.map +1 -1
- package/lib/module/index.js +5 -15
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/src/NativeTimezone.d.ts +10 -0
- package/lib/typescript/commonjs/src/NativeTimezone.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +8 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/src/NativeTimezone.d.ts +10 -0
- package/lib/typescript/module/src/NativeTimezone.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +8 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -0
- package/package.json +75 -111
- package/react-native-timezone.podspec +19 -21
- package/react-native.config.js +12 -0
- package/src/NativeTimezone.ts +4 -3
- package/src/index.tsx +4 -25
- package/android/src/main/java/com/samitha/rn/timezone/TimezoneModuleImpl.java +0 -60
- package/android/src/main/java/com/samitha/rn/timezone/TimezonePackage.java +0 -45
- package/android/src/newarch/TimezoneModule.java +0 -9
- package/android/src/oldarch/TimezoneModule.java +0 -39
- package/lib/commonjs/index.d.js +0 -6
- package/lib/commonjs/index.d.js.map +0 -1
- package/lib/module/index.d.js +0 -2
- package/lib/module/index.d.js.map +0 -1
- package/lib/typescript/src/NativeTimezone.d.ts +0 -9
- package/lib/typescript/src/NativeTimezone.d.ts.map +0 -1
- package/lib/typescript/src/index.d.ts +0 -8
- package/lib/typescript/src/index.d.ts.map +0 -1
- package/src/index.d.ts +0 -8
package/ios/Timezone.mm
CHANGED
|
@@ -3,42 +3,80 @@
|
|
|
3
3
|
#import "Timezone.h"
|
|
4
4
|
|
|
5
5
|
@implementation Timezone
|
|
6
|
-
RCT_EXPORT_MODULE()
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
RCT_EXPORT_MODULE(Timezone);
|
|
7
|
+
/**
|
|
8
|
+
* This is a Synchronous method.
|
|
9
|
+
* Retrieves the current time zone name.
|
|
10
|
+
*/
|
|
11
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getTimeZone)
|
|
12
|
+
{
|
|
13
|
+
NSTimeZone *timeZone = [NSTimeZone localTimeZone];
|
|
14
|
+
return timeZone.name;
|
|
15
|
+
}
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Synchronous method.
|
|
19
|
+
* Gets the region based on the telephony manager's network country ISO.
|
|
20
|
+
*
|
|
21
|
+
* ⚠️ DEPRECATION NOTICE:
|
|
22
|
+
* - subscriberCellularProvider: Deprecated iOS 12+
|
|
23
|
+
* - serviceSubscriberCellularProviders: Deprecated iOS 16+
|
|
24
|
+
* - CTCarrier class: Deprecated iOS 16+ with NO REPLACEMENT
|
|
25
|
+
*
|
|
26
|
+
* Starting iOS 18, these APIs return nil due to privacy restrictions.
|
|
27
|
+
* Apple has intentionally removed carrier info access with no alternative.
|
|
28
|
+
* Consider using getRegionByLocale() as a fallback.
|
|
29
|
+
*/
|
|
30
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getRegionByTelephony)
|
|
31
|
+
{
|
|
32
|
+
#pragma clang diagnostic push
|
|
33
|
+
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
|
34
|
+
|
|
35
|
+
CTTelephonyNetworkInfo *networkInfo = [[CTTelephonyNetworkInfo alloc] init];
|
|
36
|
+
NSString *isoCountryCode = nil;
|
|
37
|
+
|
|
38
|
+
// iOS 12+: Check all cellular providers (multi-SIM support)
|
|
39
|
+
if (@available(iOS 12.0, *)) {
|
|
40
|
+
NSDictionary *carriers = [networkInfo serviceSubscriberCellularProviders];
|
|
41
|
+
|
|
42
|
+
if (carriers && carriers.count > 0) {
|
|
43
|
+
// Get the first available carrier's country code
|
|
44
|
+
CTCarrier *carrier = [carriers.allValues firstObject];
|
|
45
|
+
isoCountryCode = [carrier isoCountryCode];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Fallback for iOS < 12 OR if iOS 12+ returns nothing
|
|
50
|
+
if (isoCountryCode == nil || [isoCountryCode isEqualToString:@""]) {
|
|
51
|
+
CTCarrier *carrier = [networkInfo subscriberCellularProvider];
|
|
52
|
+
isoCountryCode = [carrier isoCountryCode];
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
#pragma clang diagnostic pop
|
|
56
|
+
|
|
57
|
+
// iOS 18+: Will likely return nil due to privacy restrictions
|
|
58
|
+
if (isoCountryCode == nil || [isoCountryCode isEqualToString:@""]) {
|
|
59
|
+
return nil;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return isoCountryCode;
|
|
23
63
|
}
|
|
24
|
-
return isoCountryCode;
|
|
25
|
-
}
|
|
26
64
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
65
|
+
/**
|
|
66
|
+
* Synchronous method.
|
|
67
|
+
* Retrieves the region based on the device's locale.
|
|
68
|
+
*/
|
|
69
|
+
RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(getRegionByLocale)
|
|
70
|
+
{
|
|
71
|
+
NSLocale *locale = [NSLocale currentLocale];
|
|
72
|
+
NSString *countryCode = [locale objectForKey:NSLocaleCountryCode];
|
|
73
|
+
return countryCode;
|
|
74
|
+
}
|
|
34
75
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return std::make_shared<facebook::react::NativeTimezoneSpecJSI>(params);
|
|
41
|
-
}
|
|
42
|
-
#endif
|
|
76
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
77
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
78
|
+
{
|
|
79
|
+
return std::make_shared<facebook::react::NativeTimezoneSpecJSI>(params);
|
|
80
|
+
}
|
|
43
81
|
|
|
44
82
|
@end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GenerateModuleObjCpp
|
|
8
|
+
*
|
|
9
|
+
* We create an umbrella header (and corresponding implementation) here since
|
|
10
|
+
* Cxx compilation in BUCK has a limitation: source-code producing genrule()s
|
|
11
|
+
* must have a single output. More files => more genrule()s => slower builds.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
#import "RNTimezoneSpec.h"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@implementation NativeTimezoneSpecBase
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
- (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper
|
|
21
|
+
{
|
|
22
|
+
_eventEmitterCallback = std::move(eventEmitterCallbackWrapper->_eventEmitterCallback);
|
|
23
|
+
}
|
|
24
|
+
@end
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
namespace facebook::react {
|
|
28
|
+
|
|
29
|
+
static facebook::jsi::Value __hostFunction_NativeTimezoneSpecJSI_getTimeZone(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
30
|
+
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, StringKind, "getTimeZone", @selector(getTimeZone), args, count);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static facebook::jsi::Value __hostFunction_NativeTimezoneSpecJSI_getRegionByLocale(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
34
|
+
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, StringKind, "getRegionByLocale", @selector(getRegionByLocale), args, count);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
static facebook::jsi::Value __hostFunction_NativeTimezoneSpecJSI_getRegionByTelephony(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
38
|
+
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, StringKind, "getRegionByTelephony", @selector(getRegionByTelephony), args, count);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
static facebook::jsi::Value __hostFunction_NativeTimezoneSpecJSI_isAutoTimeZoneEnabled(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
42
|
+
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, BooleanKind, "isAutoTimeZoneEnabled", @selector(isAutoTimeZoneEnabled), args, count);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
NativeTimezoneSpecJSI::NativeTimezoneSpecJSI(const ObjCTurboModule::InitParams ¶ms)
|
|
46
|
+
: ObjCTurboModule(params) {
|
|
47
|
+
|
|
48
|
+
methodMap_["getTimeZone"] = MethodMetadata {0, __hostFunction_NativeTimezoneSpecJSI_getTimeZone};
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
methodMap_["getRegionByLocale"] = MethodMetadata {0, __hostFunction_NativeTimezoneSpecJSI_getRegionByLocale};
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
methodMap_["getRegionByTelephony"] = MethodMetadata {0, __hostFunction_NativeTimezoneSpecJSI_getRegionByTelephony};
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
methodMap_["isAutoTimeZoneEnabled"] = MethodMetadata {0, __hostFunction_NativeTimezoneSpecJSI_isAutoTimeZoneEnabled};
|
|
58
|
+
|
|
59
|
+
}
|
|
60
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GenerateModuleObjCpp
|
|
8
|
+
*
|
|
9
|
+
* We create an umbrella header (and corresponding implementation) here since
|
|
10
|
+
* Cxx compilation in BUCK has a limitation: source-code producing genrule()s
|
|
11
|
+
* must have a single output. More files => more genrule()s => slower builds.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
#ifndef __cplusplus
|
|
15
|
+
#error This file must be compiled as Obj-C++. If you are importing it, you must change your file extension to .mm.
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
// Avoid multiple includes of RNTimezoneSpec symbols
|
|
19
|
+
#ifndef RNTimezoneSpec_H
|
|
20
|
+
#define RNTimezoneSpec_H
|
|
21
|
+
|
|
22
|
+
#import <Foundation/Foundation.h>
|
|
23
|
+
#import <RCTRequired/RCTRequired.h>
|
|
24
|
+
#import <RCTTypeSafety/RCTConvertHelpers.h>
|
|
25
|
+
#import <RCTTypeSafety/RCTTypedModuleConstants.h>
|
|
26
|
+
#import <React/RCTBridgeModule.h>
|
|
27
|
+
#import <React/RCTCxxConvert.h>
|
|
28
|
+
#import <React/RCTManagedPointer.h>
|
|
29
|
+
#import <ReactCommon/RCTTurboModule.h>
|
|
30
|
+
#import <optional>
|
|
31
|
+
#import <vector>
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@protocol NativeTimezoneSpec <RCTBridgeModule, RCTTurboModule>
|
|
35
|
+
|
|
36
|
+
- (NSString * _Nullable)getTimeZone;
|
|
37
|
+
- (NSString * _Nullable)getRegionByLocale;
|
|
38
|
+
- (NSString * _Nullable)getRegionByTelephony;
|
|
39
|
+
- (NSNumber * _Nullable)isAutoTimeZoneEnabled;
|
|
40
|
+
|
|
41
|
+
@end
|
|
42
|
+
|
|
43
|
+
@interface NativeTimezoneSpecBase : NSObject {
|
|
44
|
+
@protected
|
|
45
|
+
facebook::react::EventEmitterCallback _eventEmitterCallback;
|
|
46
|
+
}
|
|
47
|
+
- (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper;
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@end
|
|
51
|
+
|
|
52
|
+
namespace facebook::react {
|
|
53
|
+
/**
|
|
54
|
+
* ObjC++ class for module 'NativeTimezone'
|
|
55
|
+
*/
|
|
56
|
+
class JSI_EXPORT NativeTimezoneSpecJSI : public ObjCTurboModule {
|
|
57
|
+
public:
|
|
58
|
+
NativeTimezoneSpecJSI(const ObjCTurboModule::InitParams ¶ms);
|
|
59
|
+
};
|
|
60
|
+
} // namespace facebook::react
|
|
61
|
+
|
|
62
|
+
#endif // RNTimezoneSpec_H
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GenerateModuleCpp.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#include "RNTimezoneSpecJSI.h"
|
|
11
|
+
|
|
12
|
+
namespace facebook::react {
|
|
13
|
+
|
|
14
|
+
static jsi::Value __hostFunction_NativeTimezoneCxxSpecJSI_getTimeZone(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
15
|
+
auto result = static_cast<NativeTimezoneCxxSpecJSI *>(&turboModule)->getTimeZone(
|
|
16
|
+
rt
|
|
17
|
+
);
|
|
18
|
+
return result ? jsi::Value(std::move(*result)) : jsi::Value::null();
|
|
19
|
+
}
|
|
20
|
+
static jsi::Value __hostFunction_NativeTimezoneCxxSpecJSI_getRegionByLocale(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
21
|
+
auto result = static_cast<NativeTimezoneCxxSpecJSI *>(&turboModule)->getRegionByLocale(
|
|
22
|
+
rt
|
|
23
|
+
);
|
|
24
|
+
return result ? jsi::Value(std::move(*result)) : jsi::Value::null();
|
|
25
|
+
}
|
|
26
|
+
static jsi::Value __hostFunction_NativeTimezoneCxxSpecJSI_getRegionByTelephony(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
27
|
+
auto result = static_cast<NativeTimezoneCxxSpecJSI *>(&turboModule)->getRegionByTelephony(
|
|
28
|
+
rt
|
|
29
|
+
);
|
|
30
|
+
return result ? jsi::Value(std::move(*result)) : jsi::Value::null();
|
|
31
|
+
}
|
|
32
|
+
static jsi::Value __hostFunction_NativeTimezoneCxxSpecJSI_isAutoTimeZoneEnabled(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
33
|
+
auto result = static_cast<NativeTimezoneCxxSpecJSI *>(&turboModule)->isAutoTimeZoneEnabled(
|
|
34
|
+
rt
|
|
35
|
+
);
|
|
36
|
+
return result ? jsi::Value(std::move(*result)) : jsi::Value::null();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
NativeTimezoneCxxSpecJSI::NativeTimezoneCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
|
|
40
|
+
: TurboModule("Timezone", jsInvoker) {
|
|
41
|
+
methodMap_["getTimeZone"] = MethodMetadata {0, __hostFunction_NativeTimezoneCxxSpecJSI_getTimeZone};
|
|
42
|
+
methodMap_["getRegionByLocale"] = MethodMetadata {0, __hostFunction_NativeTimezoneCxxSpecJSI_getRegionByLocale};
|
|
43
|
+
methodMap_["getRegionByTelephony"] = MethodMetadata {0, __hostFunction_NativeTimezoneCxxSpecJSI_getRegionByTelephony};
|
|
44
|
+
methodMap_["isAutoTimeZoneEnabled"] = MethodMetadata {0, __hostFunction_NativeTimezoneCxxSpecJSI_isAutoTimeZoneEnabled};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GenerateModuleH.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#pragma once
|
|
11
|
+
|
|
12
|
+
#include <ReactCommon/TurboModule.h>
|
|
13
|
+
#include <react/bridging/Bridging.h>
|
|
14
|
+
|
|
15
|
+
namespace facebook::react {
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class JSI_EXPORT NativeTimezoneCxxSpecJSI : public TurboModule {
|
|
19
|
+
protected:
|
|
20
|
+
NativeTimezoneCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
|
|
21
|
+
|
|
22
|
+
public:
|
|
23
|
+
virtual std::optional<jsi::String> getTimeZone(jsi::Runtime &rt) = 0;
|
|
24
|
+
virtual std::optional<jsi::String> getRegionByLocale(jsi::Runtime &rt) = 0;
|
|
25
|
+
virtual std::optional<jsi::String> getRegionByTelephony(jsi::Runtime &rt) = 0;
|
|
26
|
+
virtual std::optional<bool> isAutoTimeZoneEnabled(jsi::Runtime &rt) = 0;
|
|
27
|
+
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
template <typename T>
|
|
31
|
+
class JSI_EXPORT NativeTimezoneCxxSpec : public TurboModule {
|
|
32
|
+
public:
|
|
33
|
+
jsi::Value get(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
|
|
34
|
+
return delegate_.get(rt, propName);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
static constexpr std::string_view kModuleName = "Timezone";
|
|
38
|
+
|
|
39
|
+
protected:
|
|
40
|
+
NativeTimezoneCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
|
|
41
|
+
: TurboModule(std::string{NativeTimezoneCxxSpec::kModuleName}, jsInvoker),
|
|
42
|
+
delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
private:
|
|
46
|
+
class Delegate : public NativeTimezoneCxxSpecJSI {
|
|
47
|
+
public:
|
|
48
|
+
Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
|
|
49
|
+
NativeTimezoneCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
|
|
50
|
+
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
std::optional<jsi::String> getTimeZone(jsi::Runtime &rt) override {
|
|
54
|
+
static_assert(
|
|
55
|
+
bridging::getParameterCount(&T::getTimeZone) == 1,
|
|
56
|
+
"Expected getTimeZone(...) to have 1 parameters");
|
|
57
|
+
|
|
58
|
+
return bridging::callFromJs<std::optional<jsi::String>>(
|
|
59
|
+
rt, &T::getTimeZone, jsInvoker_, instance_);
|
|
60
|
+
}
|
|
61
|
+
std::optional<jsi::String> getRegionByLocale(jsi::Runtime &rt) override {
|
|
62
|
+
static_assert(
|
|
63
|
+
bridging::getParameterCount(&T::getRegionByLocale) == 1,
|
|
64
|
+
"Expected getRegionByLocale(...) to have 1 parameters");
|
|
65
|
+
|
|
66
|
+
return bridging::callFromJs<std::optional<jsi::String>>(
|
|
67
|
+
rt, &T::getRegionByLocale, jsInvoker_, instance_);
|
|
68
|
+
}
|
|
69
|
+
std::optional<jsi::String> getRegionByTelephony(jsi::Runtime &rt) override {
|
|
70
|
+
static_assert(
|
|
71
|
+
bridging::getParameterCount(&T::getRegionByTelephony) == 1,
|
|
72
|
+
"Expected getRegionByTelephony(...) to have 1 parameters");
|
|
73
|
+
|
|
74
|
+
return bridging::callFromJs<std::optional<jsi::String>>(
|
|
75
|
+
rt, &T::getRegionByTelephony, jsInvoker_, instance_);
|
|
76
|
+
}
|
|
77
|
+
std::optional<bool> isAutoTimeZoneEnabled(jsi::Runtime &rt) override {
|
|
78
|
+
static_assert(
|
|
79
|
+
bridging::getParameterCount(&T::isAutoTimeZoneEnabled) == 1,
|
|
80
|
+
"Expected isAutoTimeZoneEnabled(...) to have 1 parameters");
|
|
81
|
+
|
|
82
|
+
return bridging::callFromJs<std::optional<bool>>(
|
|
83
|
+
rt, &T::isAutoTimeZoneEnabled, jsInvoker_, instance_);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
private:
|
|
87
|
+
friend class NativeTimezoneCxxSpec;
|
|
88
|
+
T *instance_;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
Delegate delegate_;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
} // namespace facebook::react
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeTimezone.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeTimezone.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GASpCC,gCAAmB,CAACC,YAAY,CAAO,UAAU,CAAC","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -5,28 +5,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
default: ''
|
|
11
|
-
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
12
|
-
|
|
13
|
-
// @ts-expect-error
|
|
14
|
-
const isTurboModuleEnabled = global.__turboModuleProxy != null;
|
|
15
|
-
const TimezoneModule = isTurboModuleEnabled ? require('./NativeTimezone').default : _reactNative.NativeModules.Timezone;
|
|
16
|
-
const Timezone = TimezoneModule ? TimezoneModule : new Proxy({}, {
|
|
17
|
-
get() {
|
|
18
|
-
throw new Error(LINKING_ERROR);
|
|
19
|
-
}
|
|
20
|
-
});
|
|
8
|
+
var _NativeTimezone = _interopRequireDefault(require("./NativeTimezone.js"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
10
|
var _default = exports.default = {
|
|
22
|
-
getTimeZone: () =>
|
|
23
|
-
getRegionByLocale: () =>
|
|
24
|
-
getRegionByTelephony: () =>
|
|
11
|
+
getTimeZone: () => _NativeTimezone.default.getTimeZone(),
|
|
12
|
+
getRegionByLocale: () => _NativeTimezone.default.getRegionByLocale(),
|
|
13
|
+
getRegionByTelephony: () => _NativeTimezone.default.getRegionByTelephony(),
|
|
25
14
|
isAutoTimeZoneEnabled: () => {
|
|
26
15
|
if (_reactNative.Platform.OS === 'android') {
|
|
27
|
-
return
|
|
16
|
+
return _NativeTimezone.default.isAutoTimeZoneEnabled();
|
|
28
17
|
}
|
|
29
|
-
return
|
|
18
|
+
return null;
|
|
30
19
|
}
|
|
31
20
|
};
|
|
32
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_NativeTimezone","_interopRequireDefault","e","__esModule","default","_default","exports","getTimeZone","Timezone","getRegionByLocale","getRegionByTelephony","isAutoTimeZoneEnabled","Platform","OS"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAwC,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAEzB;EACbG,WAAW,EAAEA,CAAA,KAAMC,uBAAQ,CAACD,WAAW,CAAC,CAAC;EACzCE,iBAAiB,EAAEA,CAAA,KAAMD,uBAAQ,CAACC,iBAAiB,CAAC,CAAC;EACrDC,oBAAoB,EAAEA,CAAA,KAAMF,uBAAQ,CAACE,oBAAoB,CAAC,CAAC;EAC3DC,qBAAqB,EAAEA,CAAA,KAAM;IAC3B,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAOL,uBAAQ,CAACG,qBAAqB,CAAC,CAAC;IACzC;IACA,OAAO,IAAI;EACb;AACF,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeTimezone.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeTimezone.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AASlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,UAAU,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,26 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
const LINKING_ERROR = `The package 'react-native-timezone' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
3
|
-
ios: "- You have run 'pod install'\n",
|
|
4
|
-
default: ''
|
|
5
|
-
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
1
|
+
"use strict";
|
|
6
2
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const TimezoneModule = isTurboModuleEnabled ? require('./NativeTimezone').default : NativeModules.Timezone;
|
|
10
|
-
const Timezone = TimezoneModule ? TimezoneModule : new Proxy({}, {
|
|
11
|
-
get() {
|
|
12
|
-
throw new Error(LINKING_ERROR);
|
|
13
|
-
}
|
|
14
|
-
});
|
|
3
|
+
import { Platform } from 'react-native';
|
|
4
|
+
import Timezone from "./NativeTimezone.js";
|
|
15
5
|
export default {
|
|
16
6
|
getTimeZone: () => Timezone.getTimeZone(),
|
|
17
7
|
getRegionByLocale: () => Timezone.getRegionByLocale(),
|
|
18
|
-
getRegionByTelephony: () => Timezone.getRegionByTelephony()
|
|
8
|
+
getRegionByTelephony: () => Timezone.getRegionByTelephony(),
|
|
19
9
|
isAutoTimeZoneEnabled: () => {
|
|
20
10
|
if (Platform.OS === 'android') {
|
|
21
11
|
return Timezone.isAutoTimeZoneEnabled();
|
|
22
12
|
}
|
|
23
|
-
return
|
|
13
|
+
return null;
|
|
24
14
|
}
|
|
25
15
|
};
|
|
26
16
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["Platform","Timezone","getTimeZone","getRegionByLocale","getRegionByTelephony","isAutoTimeZoneEnabled","OS"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,OAAOC,QAAQ,MAAM,qBAAkB;AAEvC,eAAe;EACbC,WAAW,EAAEA,CAAA,KAAMD,QAAQ,CAACC,WAAW,CAAC,CAAC;EACzCC,iBAAiB,EAAEA,CAAA,KAAMF,QAAQ,CAACE,iBAAiB,CAAC,CAAC;EACrDC,oBAAoB,EAAEA,CAAA,KAAMH,QAAQ,CAACG,oBAAoB,CAAC,CAAC;EAC3DC,qBAAqB,EAAEA,CAAA,KAAM;IAC3B,IAAIL,QAAQ,CAACM,EAAE,KAAK,SAAS,EAAE;MAC7B,OAAOL,QAAQ,CAACI,qBAAqB,CAAC,CAAC;IACzC;IACA,OAAO,IAAI;EACb;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
export interface Spec extends TurboModule {
|
|
3
|
+
getTimeZone(): string | null;
|
|
4
|
+
getRegionByLocale(): string | null;
|
|
5
|
+
getRegionByTelephony(): string | null;
|
|
6
|
+
isAutoTimeZoneEnabled(): boolean | null;
|
|
7
|
+
}
|
|
8
|
+
declare const _default: Spec;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=NativeTimezone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeTimezone.d.ts","sourceRoot":"","sources":["../../../../src/NativeTimezone.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,WAAW,IAAI,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAAC;IACnC,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAAC;IACtC,qBAAqB,IAAI,OAAO,GAAG,IAAI,CAAC;CACzC;;AAED,wBAAkE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":";;;;;;AAIA,wBAUE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TurboModule } from 'react-native';
|
|
2
|
+
export interface Spec extends TurboModule {
|
|
3
|
+
getTimeZone(): string | null;
|
|
4
|
+
getRegionByLocale(): string | null;
|
|
5
|
+
getRegionByTelephony(): string | null;
|
|
6
|
+
isAutoTimeZoneEnabled(): boolean | null;
|
|
7
|
+
}
|
|
8
|
+
declare const _default: Spec;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=NativeTimezone.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeTimezone.d.ts","sourceRoot":"","sources":["../../../../src/NativeTimezone.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,WAAW,IAAI,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAAC;IACnC,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAAC;IACtC,qBAAqB,IAAI,OAAO,GAAG,IAAI,CAAC;CACzC;;AAED,wBAAkE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":";;;;;;AAIA,wBAUE"}
|