react-native-unistyles 2.6.0-rc.0 → 2.6.0-rc.1
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/ios/UnistylesModule.h
CHANGED
@@ -0,0 +1,23 @@
|
|
1
|
+
#include <string>
|
2
|
+
#include <map>
|
3
|
+
#include <UnistylesRuntime.h>
|
4
|
+
|
5
|
+
@interface Platform : NSObject
|
6
|
+
|
7
|
+
@property (nonatomic, assign) Dimensions initialScreen;
|
8
|
+
@property (nonatomic, assign) std::string initialColorScheme;
|
9
|
+
@property (nonatomic, assign) std::string initialContentSizeCategory;
|
10
|
+
@property (nonatomic, assign) Insets initialInsets;
|
11
|
+
@property (nonatomic, assign) Dimensions initialStatusBar;
|
12
|
+
@property (nonatomic, assign) Dimensions initialNavigationBar;
|
13
|
+
@property (nonatomic, assign) void* unistylesRuntime;
|
14
|
+
|
15
|
+
- (instancetype)init;
|
16
|
+
|
17
|
+
- (void)onAppearanceChange:(NSNotification *)notification;
|
18
|
+
- (void)onContentSizeCategoryChange:(NSNotification *)notification;
|
19
|
+
|
20
|
+
- (std::string)getColorScheme;
|
21
|
+
|
22
|
+
@end
|
23
|
+
|
@@ -0,0 +1,147 @@
|
|
1
|
+
#if TARGET_OS_TV
|
2
|
+
|
3
|
+
#import "Platform_tvOS.h"
|
4
|
+
#import "UnistylesRuntime.h"
|
5
|
+
#import <React/RCTAppearance.h>
|
6
|
+
|
7
|
+
@implementation Platform
|
8
|
+
|
9
|
+
- (instancetype)init {
|
10
|
+
self = [super init];
|
11
|
+
if (self) {
|
12
|
+
UIScreen *screen = [UIScreen mainScreen];
|
13
|
+
UIContentSizeCategory contentSizeCategory = [[UIApplication sharedApplication] preferredContentSizeCategory];
|
14
|
+
|
15
|
+
self.initialScreen = {(int)screen.bounds.size.width, (int)screen.bounds.size.height};
|
16
|
+
self.initialColorScheme = [self getColorScheme];
|
17
|
+
self.initialContentSizeCategory = [self getContentSizeCategory:contentSizeCategory];
|
18
|
+
self.initialStatusBar = [self getStatusBarDimensions];
|
19
|
+
self.initialInsets = [self getInsets];
|
20
|
+
|
21
|
+
[self setupListeners];
|
22
|
+
}
|
23
|
+
return self;
|
24
|
+
}
|
25
|
+
|
26
|
+
- (void)dealloc {
|
27
|
+
if (self.unistylesRuntime != nullptr) {
|
28
|
+
self.unistylesRuntime = nullptr;
|
29
|
+
}
|
30
|
+
|
31
|
+
[[NSNotificationCenter defaultCenter] removeObserver:self
|
32
|
+
name: UIContentSizeCategoryDidChangeNotification
|
33
|
+
object: nil];
|
34
|
+
[[NSNotificationCenter defaultCenter] removeObserver:self
|
35
|
+
name: RCTUserInterfaceStyleDidChangeNotification
|
36
|
+
object: nil];
|
37
|
+
}
|
38
|
+
|
39
|
+
- (void)setupListeners {
|
40
|
+
[[NSNotificationCenter defaultCenter] addObserver:self
|
41
|
+
selector:@selector(onAppearanceChange:)
|
42
|
+
name:RCTUserInterfaceStyleDidChangeNotification
|
43
|
+
object:nil];
|
44
|
+
[[NSNotificationCenter defaultCenter] addObserver:self
|
45
|
+
selector:@selector(onContentSizeCategoryChange:)
|
46
|
+
name:UIContentSizeCategoryDidChangeNotification
|
47
|
+
object:nil];
|
48
|
+
}
|
49
|
+
|
50
|
+
- (void)onAppearanceChange:(NSNotification *)notification {
|
51
|
+
std::string colorScheme = [self getColorScheme];
|
52
|
+
|
53
|
+
if (self.unistylesRuntime != nullptr) {
|
54
|
+
((UnistylesRuntime*)self.unistylesRuntime)->handleAppearanceChange(colorScheme);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
- (void)onContentSizeCategoryChange:(NSNotification *)notification {
|
59
|
+
UIContentSizeCategory contentSizeCategory = [[UIApplication sharedApplication] preferredContentSizeCategory];
|
60
|
+
|
61
|
+
if (self.unistylesRuntime != nullptr) {
|
62
|
+
((UnistylesRuntime*)self.unistylesRuntime)->handleContentSizeCategoryChange([self getContentSizeCategory:contentSizeCategory]);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
- (std::string)getColorScheme {
|
67
|
+
UIUserInterfaceStyle colorScheme = [UIScreen mainScreen].traitCollection.userInterfaceStyle;
|
68
|
+
|
69
|
+
switch (colorScheme) {
|
70
|
+
case UIUserInterfaceStyleLight:
|
71
|
+
return UnistylesLightScheme;
|
72
|
+
case UIUserInterfaceStyleDark:
|
73
|
+
return UnistylesDarkScheme;
|
74
|
+
case UIUserInterfaceStyleUnspecified:
|
75
|
+
default:
|
76
|
+
return UnistylesUnspecifiedScheme;
|
77
|
+
}
|
78
|
+
}
|
79
|
+
|
80
|
+
- (Insets)getInsets {
|
81
|
+
return {0, 0, 0, 0};
|
82
|
+
}
|
83
|
+
|
84
|
+
- (Dimensions)getStatusBarDimensions {
|
85
|
+
return {0, 0};
|
86
|
+
}
|
87
|
+
|
88
|
+
- (Dimensions)getNavigationBarDimensions {
|
89
|
+
return {0, 0};
|
90
|
+
}
|
91
|
+
|
92
|
+
- (std::string)getContentSizeCategory:(UIContentSizeCategory)contentSizeCategory {
|
93
|
+
if ([contentSizeCategory isEqualToString:UIContentSizeCategoryExtraExtraExtraLarge]) {
|
94
|
+
return std::string([@"xxxLarge" UTF8String]);
|
95
|
+
}
|
96
|
+
|
97
|
+
if ([contentSizeCategory isEqualToString:UIContentSizeCategoryExtraExtraLarge]) {
|
98
|
+
return std::string([@"xxLarge" UTF8String]);
|
99
|
+
}
|
100
|
+
|
101
|
+
if ([contentSizeCategory isEqualToString:UIContentSizeCategoryExtraLarge]) {
|
102
|
+
return std::string([@"xLarge" UTF8String]);
|
103
|
+
}
|
104
|
+
|
105
|
+
if ([contentSizeCategory isEqualToString:UIContentSizeCategoryLarge]) {
|
106
|
+
return std::string([@"Large" UTF8String]);
|
107
|
+
}
|
108
|
+
|
109
|
+
if ([contentSizeCategory isEqualToString:UIContentSizeCategoryMedium]) {
|
110
|
+
return std::string([@"Medium" UTF8String]);
|
111
|
+
}
|
112
|
+
|
113
|
+
if ([contentSizeCategory isEqualToString:UIContentSizeCategorySmall]) {
|
114
|
+
return std::string([@"Small" UTF8String]);
|
115
|
+
}
|
116
|
+
|
117
|
+
if ([contentSizeCategory isEqualToString:UIContentSizeCategoryExtraSmall]) {
|
118
|
+
return std::string([@"xSmall" UTF8String]);
|
119
|
+
}
|
120
|
+
|
121
|
+
if ([contentSizeCategory isEqualToString:UIContentSizeCategoryAccessibilityMedium]) {
|
122
|
+
return std::string([@"accessibilityMedium" UTF8String]);
|
123
|
+
}
|
124
|
+
|
125
|
+
if ([contentSizeCategory isEqualToString:UIContentSizeCategoryAccessibilityLarge]) {
|
126
|
+
return std::string([@"accessibilityLarge" UTF8String]);
|
127
|
+
}
|
128
|
+
|
129
|
+
if ([contentSizeCategory isEqualToString:UIContentSizeCategoryAccessibilityExtraLarge]) {
|
130
|
+
return std::string([@"accessibilityExtraLarge" UTF8String]);
|
131
|
+
}
|
132
|
+
|
133
|
+
if ([contentSizeCategory isEqualToString:UIContentSizeCategoryAccessibilityExtraExtraLarge]) {
|
134
|
+
return std::string([@"accessibilityExtraExtraLarge" UTF8String]);
|
135
|
+
}
|
136
|
+
|
137
|
+
if ([contentSizeCategory isEqualToString:UIContentSizeCategoryAccessibilityExtraExtraExtraLarge]) {
|
138
|
+
return std::string([@"accessibilityExtraExtraExtraLarge" UTF8String]);
|
139
|
+
}
|
140
|
+
|
141
|
+
return std::string([@"unspecified" UTF8String]);
|
142
|
+
}
|
143
|
+
|
144
|
+
@end
|
145
|
+
|
146
|
+
|
147
|
+
#endif
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "react-native-unistyles",
|
3
|
-
"version": "2.6.0-rc.
|
3
|
+
"version": "2.6.0-rc.1",
|
4
4
|
"description": "Level up your React Native StyleSheet",
|
5
5
|
"scripts": {
|
6
6
|
"test": "jest",
|
@@ -43,6 +43,7 @@
|
|
43
43
|
"react-native-macos",
|
44
44
|
"react-native-windows",
|
45
45
|
"react-native-web",
|
46
|
+
"react-native-tvos",
|
46
47
|
"expo"
|
47
48
|
],
|
48
49
|
"repository": "https://github.com/jpudysz/react-native-unistyles",
|
@@ -117,6 +118,7 @@
|
|
117
118
|
"examples/macos",
|
118
119
|
"examples/win",
|
119
120
|
"examples/bare",
|
121
|
+
"examples/tv",
|
120
122
|
"docs"
|
121
123
|
],
|
122
124
|
"packageManager": "yarn@3.6.4",
|
@@ -130,6 +132,7 @@
|
|
130
132
|
"<rootDir>/examples/macos/node_modules",
|
131
133
|
"<rootDir>/examples/win/node_modules",
|
132
134
|
"<rootDir>/examples/bare/node_modules",
|
135
|
+
"<rootDir>/examples/tv/node_modules",
|
133
136
|
"<rootDir>/docs/node_modules",
|
134
137
|
"<rootDir>/lib/"
|
135
138
|
],
|
@@ -10,7 +10,7 @@ Pod::Spec.new do |s|
|
|
10
10
|
s.license = package["license"]
|
11
11
|
s.authors = package["author"]
|
12
12
|
|
13
|
-
s.platforms = { :ios => min_ios_version_supported, :osx => "10.14" }
|
13
|
+
s.platforms = { :ios => min_ios_version_supported, :osx => "10.14", :tvos => "9.0" }
|
14
14
|
s.source = { :git => package["repository"], :tag => "#{s.version}" }
|
15
15
|
|
16
16
|
s.source_files = [
|