react-native-reanimated 4.3.0-rc.0 → 4.3.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/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.cpp +8 -5
- package/Common/cpp/reanimated/AnimatedSensor/AnimatedSensorModule.h +3 -5
- package/Common/cpp/reanimated/CSS/common/values/CSSValueVariant.cpp +2 -3
- package/Common/cpp/reanimated/CSS/interpolation/PropertyInterpolator.cpp +2 -3
- package/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.cpp +7 -3
- package/Common/cpp/reanimated/CSS/registries/CSSAnimationsRegistry.h +9 -2
- package/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.cpp +6 -2
- package/Common/cpp/reanimated/CSS/registries/CSSTransitionsRegistry.h +8 -2
- package/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.cpp +2 -2
- package/Common/cpp/reanimated/CSS/utils/DelayedItemsManager.h +2 -2
- package/Common/cpp/reanimated/Compat/WorkletsApi.h +13 -0
- package/Common/cpp/reanimated/Events/UIEventHandler.cpp +1 -1
- package/Common/cpp/reanimated/Events/UIEventHandler.h +3 -4
- package/Common/cpp/reanimated/Events/UIEventHandlerRegistry.cpp +3 -2
- package/Common/cpp/reanimated/Events/UIEventHandlerRegistry.h +1 -1
- package/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.cpp +2 -8
- package/Common/cpp/reanimated/Fabric/ReanimatedCommitHook.h +2 -6
- package/Common/cpp/reanimated/Fabric/ReanimatedMountHook.cpp +1 -6
- package/Common/cpp/reanimated/Fabric/ReanimatedMountHook.h +1 -8
- package/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.cpp +12 -7
- package/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +6 -3
- package/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.cpp +4 -6
- package/Common/cpp/reanimated/Fabric/updates/UpdatesRegistry.h +25 -7
- package/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsManager.h +1 -2
- package/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxyCommon.h +1 -1
- package/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.cpp +9 -9
- package/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Experimental.h +2 -3
- package/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.cpp +21 -21
- package/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +3 -3
- package/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsUtils.h +3 -3
- package/Common/cpp/reanimated/LayoutAnimations/SharedTransitions.cpp +24 -20
- package/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +35 -53
- package/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.h +1 -2
- package/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.cpp +22 -22
- package/Common/cpp/reanimated/RuntimeDecorators/UIRuntimeDecorator.h +10 -10
- package/Common/cpp/reanimated/Tools/ReaJSIUtils.h +5 -5
- package/README.md +1 -1
- package/android/build.gradle +0 -21
- package/android/src/main/cpp/reanimated/android/NativeProxy.cpp +6 -10
- package/android/src/main/cpp/reanimated/android/NativeProxy.h +1 -2
- package/android/src/main/java/com/swmansion/reanimated/CopiedEvent.java +66 -9
- package/android/src/main/java/com/swmansion/reanimated/NodesManager.java +16 -11
- package/android/src/main/java/com/swmansion/reanimated/nativeProxy/EventHandler.java +34 -8
- package/android/src/main/java/com/swmansion/reanimated/nativeProxy/NoopEventHandler.java +27 -6
- package/apple/reanimated/apple/REANodesManager.mm +0 -8
- package/apple/reanimated/apple/ReanimatedModule.mm +6 -12
- package/apple/reanimated/apple/native/NativeProxy.h +1 -2
- package/apple/reanimated/apple/native/NativeProxy.mm +1 -1
- package/compatibility.json +7 -29
- package/lib/module/PropsRegistryGarbageCollector.js +3 -0
- package/lib/module/PropsRegistryGarbageCollector.js.map +1 -1
- package/lib/module/common/style/processors/colors.js +31 -4
- package/lib/module/common/style/processors/colors.js.map +1 -1
- package/lib/module/common/style/processors/filter.js +103 -61
- package/lib/module/common/style/processors/filter.js.map +1 -1
- package/lib/module/common/style/processors/font.js +7 -1
- package/lib/module/common/style/processors/font.js.map +1 -1
- package/lib/module/common/style/processors/insets.js +26 -14
- package/lib/module/common/style/processors/insets.js.map +1 -1
- package/lib/module/common/style/processors/others.js +15 -5
- package/lib/module/common/style/processors/others.js.map +1 -1
- package/lib/module/common/style/processors/shadows.js +14 -3
- package/lib/module/common/style/processors/shadows.js.map +1 -1
- package/lib/module/common/style/processors/transform.js +30 -1
- package/lib/module/common/style/processors/transform.js.map +1 -1
- package/lib/module/common/style/processors/transformOrigin.js +20 -3
- package/lib/module/common/style/processors/transformOrigin.js.map +1 -1
- package/lib/module/common/utils/guards.js +27 -7
- package/lib/module/common/utils/guards.js.map +1 -1
- package/lib/module/common/utils/parsers.js +2 -1
- package/lib/module/common/utils/parsers.js.map +1 -1
- package/lib/module/createAnimatedComponent/AnimatedComponent.js +1 -7
- package/lib/module/createAnimatedComponent/AnimatedComponent.js.map +1 -1
- package/lib/module/css/native/managers/CSSManager.js +16 -15
- package/lib/module/css/native/managers/CSSManager.js.map +1 -1
- package/lib/module/css/native/managers/CSSTransitionsManager.js +47 -44
- package/lib/module/css/native/managers/CSSTransitionsManager.js.map +1 -1
- package/lib/module/css/native/normalization/transition/config.js +35 -17
- package/lib/module/css/native/normalization/transition/config.js.map +1 -1
- package/lib/module/css/utils/props.js +6 -0
- package/lib/module/css/utils/props.js.map +1 -1
- package/lib/module/featureFlags/index.js +1 -1
- package/lib/module/featureFlags/staticFlags.json +1 -1
- package/lib/module/hook/useAnimatedRef.js +2 -2
- package/lib/module/hook/useAnimatedRef.js.map +1 -1
- package/lib/module/hook/useAnimatedStyle.js +7 -1
- package/lib/module/hook/useAnimatedStyle.js.map +1 -1
- package/lib/module/hook/useHandler.js +82 -28
- package/lib/module/hook/useHandler.js.map +1 -1
- package/lib/module/hook/utils.js +1 -74
- package/lib/module/hook/utils.js.map +1 -1
- package/lib/module/initializers.js +2 -0
- package/lib/module/initializers.js.map +1 -1
- package/lib/module/jestUtils/common.js +10 -0
- package/lib/module/jestUtils/common.js.map +1 -1
- package/lib/module/jestUtils/index.js +2 -5
- package/lib/module/jestUtils/index.js.map +1 -1
- package/lib/module/jestUtils/index.web.js +1 -1
- package/lib/module/jestUtils/index.web.js.map +1 -1
- package/lib/module/mutables.js +5 -1
- package/lib/module/mutables.js.map +1 -1
- package/lib/module/platform-specific/jsVersion.js +1 -1
- package/lib/module/platform-specific/jsVersion.js.map +1 -1
- package/lib/typescript/PropsRegistryGarbageCollector.d.ts.map +1 -1
- package/lib/typescript/common/style/processors/colors.d.ts +3 -3
- package/lib/typescript/common/style/processors/colors.d.ts.map +1 -1
- package/lib/typescript/common/style/processors/filter.d.ts +0 -4
- package/lib/typescript/common/style/processors/filter.d.ts.map +1 -1
- package/lib/typescript/common/style/processors/font.d.ts +1 -1
- package/lib/typescript/common/style/processors/font.d.ts.map +1 -1
- package/lib/typescript/common/style/processors/insets.d.ts.map +1 -1
- package/lib/typescript/common/style/processors/others.d.ts +1 -1
- package/lib/typescript/common/style/processors/others.d.ts.map +1 -1
- package/lib/typescript/common/style/processors/shadows.d.ts.map +1 -1
- package/lib/typescript/common/style/processors/transform.d.ts.map +1 -1
- package/lib/typescript/common/style/processors/transformOrigin.d.ts +2 -2
- package/lib/typescript/common/style/processors/transformOrigin.d.ts.map +1 -1
- package/lib/typescript/common/utils/guards.d.ts +0 -1
- package/lib/typescript/common/utils/guards.d.ts.map +1 -1
- package/lib/typescript/common/utils/parsers.d.ts.map +1 -1
- package/lib/typescript/commonTypes.d.ts +1 -1
- package/lib/typescript/commonTypes.d.ts.map +1 -1
- package/lib/typescript/createAnimatedComponent/AnimatedComponent.d.ts.map +1 -1
- package/lib/typescript/css/native/managers/CSSManager.d.ts +7 -1
- package/lib/typescript/css/native/managers/CSSManager.d.ts.map +1 -1
- package/lib/typescript/css/native/managers/CSSTransitionsManager.d.ts +5 -4
- package/lib/typescript/css/native/managers/CSSTransitionsManager.d.ts.map +1 -1
- package/lib/typescript/css/native/normalization/transition/config.d.ts.map +1 -1
- package/lib/typescript/css/native/types/transition.d.ts +15 -1
- package/lib/typescript/css/native/types/transition.d.ts.map +1 -1
- package/lib/typescript/css/utils/props.d.ts.map +1 -1
- package/lib/typescript/featureFlags/index.d.ts +1 -1
- package/lib/typescript/hook/useAnimatedStyle.d.ts.map +1 -1
- package/lib/typescript/hook/useHandler.d.ts +8 -9
- package/lib/typescript/hook/useHandler.d.ts.map +1 -1
- package/lib/typescript/hook/utils.d.ts +0 -5
- package/lib/typescript/hook/utils.d.ts.map +1 -1
- package/lib/typescript/jestUtils/common.d.ts +2 -0
- package/lib/typescript/jestUtils/common.d.ts.map +1 -1
- package/lib/typescript/jestUtils/index.d.ts +4 -3
- package/lib/typescript/jestUtils/index.d.ts.map +1 -1
- package/lib/typescript/mutables.d.ts.map +1 -1
- package/lib/typescript/platform-specific/jsVersion.d.ts +1 -1
- package/lib/typescript/platform-specific/jsVersion.d.ts.map +1 -1
- package/package.json +13 -10
- package/src/PropsRegistryGarbageCollector.ts +3 -0
- package/src/common/style/processors/colors.ts +20 -7
- package/src/common/style/processors/filter.ts +95 -70
- package/src/common/style/processors/font.ts +5 -2
- package/src/common/style/processors/insets.ts +23 -14
- package/src/common/style/processors/others.ts +12 -6
- package/src/common/style/processors/shadows.ts +10 -6
- package/src/common/style/processors/transform.ts +15 -1
- package/src/common/style/processors/transformOrigin.ts +40 -11
- package/src/common/utils/guards.ts +21 -16
- package/src/common/utils/parsers.ts +1 -1
- package/src/commonTypes.ts +1 -1
- package/src/createAnimatedComponent/AnimatedComponent.tsx +1 -7
- package/src/css/native/managers/CSSManager.ts +29 -14
- package/src/css/native/managers/CSSTransitionsManager.ts +52 -54
- package/src/css/native/normalization/transition/config.ts +35 -27
- package/src/css/native/types/transition.ts +15 -1
- package/src/css/utils/props.ts +7 -0
- package/src/featureFlags/index.ts +1 -1
- package/src/featureFlags/staticFlags.json +1 -1
- package/src/hook/useAnimatedRef.ts +2 -2
- package/src/hook/useAnimatedStyle.ts +15 -6
- package/src/hook/useHandler.ts +150 -64
- package/src/hook/utils.ts +1 -127
- package/src/initializers.ts +1 -0
- package/src/jestUtils/common.ts +10 -0
- package/src/jestUtils/index.ts +5 -8
- package/src/jestUtils/index.web.ts +1 -1
- package/src/mutables.ts +5 -1
- package/src/platform-specific/jsVersion.ts +1 -1
- package/src/privateGlobals.d.ts +4 -0
|
@@ -1,34 +1,79 @@
|
|
|
1
1
|
package com.swmansion.reanimated;
|
|
2
2
|
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
3
4
|
import androidx.annotation.Nullable;
|
|
4
5
|
import com.facebook.react.bridge.WritableArray;
|
|
5
6
|
import com.facebook.react.bridge.WritableMap;
|
|
6
7
|
import com.facebook.react.uimanager.events.Event;
|
|
7
|
-
import com.facebook.react.uimanager.events.
|
|
8
|
+
import com.facebook.react.uimanager.events.RCTModernEventEmitter;
|
|
8
9
|
|
|
9
10
|
public class CopiedEvent {
|
|
11
|
+
private int surfaceId;
|
|
10
12
|
private int targetTag;
|
|
11
13
|
private String eventName;
|
|
14
|
+
private boolean canCoalesceEvent;
|
|
15
|
+
private int customCoalesceKey;
|
|
12
16
|
private WritableMap payload;
|
|
17
|
+
private int category;
|
|
13
18
|
|
|
14
|
-
CopiedEvent(Event event) {
|
|
15
|
-
event.
|
|
16
|
-
new
|
|
19
|
+
CopiedEvent(Event<?> event) {
|
|
20
|
+
event.dispatchModern(
|
|
21
|
+
new RCTModernEventEmitter() {
|
|
17
22
|
@Override
|
|
18
|
-
public void
|
|
23
|
+
public void receiveTouches(
|
|
24
|
+
@NonNull String eventName,
|
|
25
|
+
@NonNull WritableArray touches,
|
|
26
|
+
@NonNull WritableArray changedIndices) {
|
|
27
|
+
// noop
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@Override
|
|
31
|
+
public void receiveEvent(
|
|
32
|
+
int targetTag, @NonNull String eventName, @Nullable WritableMap params) {
|
|
19
33
|
CopiedEvent.this.targetTag = targetTag;
|
|
20
34
|
CopiedEvent.this.eventName = eventName;
|
|
21
|
-
|
|
35
|
+
assert params != null;
|
|
36
|
+
CopiedEvent.this.payload = params.copy();
|
|
22
37
|
}
|
|
23
38
|
|
|
24
39
|
@Override
|
|
25
|
-
public void
|
|
26
|
-
|
|
27
|
-
|
|
40
|
+
public void receiveEvent(
|
|
41
|
+
int surfaceId,
|
|
42
|
+
int targetTag,
|
|
43
|
+
@NonNull String eventName,
|
|
44
|
+
@Nullable WritableMap params) {
|
|
45
|
+
CopiedEvent.this.surfaceId = surfaceId;
|
|
46
|
+
CopiedEvent.this.targetTag = targetTag;
|
|
47
|
+
CopiedEvent.this.eventName = eventName;
|
|
48
|
+
assert params != null;
|
|
49
|
+
CopiedEvent.this.payload = params.copy();
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@Override
|
|
53
|
+
public void receiveEvent(
|
|
54
|
+
int surfaceId,
|
|
55
|
+
int targetTag,
|
|
56
|
+
@NonNull String eventName,
|
|
57
|
+
boolean canCoalesceEvent,
|
|
58
|
+
int customCoalesceKey,
|
|
59
|
+
@Nullable WritableMap params,
|
|
60
|
+
int category) {
|
|
61
|
+
CopiedEvent.this.surfaceId = surfaceId;
|
|
62
|
+
CopiedEvent.this.targetTag = targetTag;
|
|
63
|
+
CopiedEvent.this.eventName = eventName;
|
|
64
|
+
CopiedEvent.this.canCoalesceEvent = canCoalesceEvent;
|
|
65
|
+
CopiedEvent.this.customCoalesceKey = customCoalesceKey;
|
|
66
|
+
assert params != null;
|
|
67
|
+
CopiedEvent.this.payload = params.copy();
|
|
68
|
+
CopiedEvent.this.category = category;
|
|
28
69
|
}
|
|
29
70
|
});
|
|
30
71
|
}
|
|
31
72
|
|
|
73
|
+
public int getSurfaceId() {
|
|
74
|
+
return surfaceId;
|
|
75
|
+
}
|
|
76
|
+
|
|
32
77
|
public int getTargetTag() {
|
|
33
78
|
return targetTag;
|
|
34
79
|
}
|
|
@@ -37,7 +82,19 @@ public class CopiedEvent {
|
|
|
37
82
|
return eventName;
|
|
38
83
|
}
|
|
39
84
|
|
|
85
|
+
public boolean getCanCoalesceEvent() {
|
|
86
|
+
return canCoalesceEvent;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
public int getCustomCoalesceKey() {
|
|
90
|
+
return customCoalesceKey;
|
|
91
|
+
}
|
|
92
|
+
|
|
40
93
|
public WritableMap getPayload() {
|
|
41
94
|
return payload;
|
|
42
95
|
}
|
|
96
|
+
|
|
97
|
+
public int getCategory() {
|
|
98
|
+
return category;
|
|
99
|
+
}
|
|
43
100
|
}
|
|
@@ -15,13 +15,12 @@ import com.facebook.react.uimanager.UIManagerModule;
|
|
|
15
15
|
import com.facebook.react.uimanager.common.UIManagerType;
|
|
16
16
|
import com.facebook.react.uimanager.events.Event;
|
|
17
17
|
import com.facebook.react.uimanager.events.EventDispatcherListener;
|
|
18
|
-
import com.facebook.react.uimanager.events.
|
|
18
|
+
import com.facebook.react.uimanager.events.RCTModernEventEmitter;
|
|
19
19
|
import com.swmansion.reanimated.nativeProxy.NoopEventHandler;
|
|
20
20
|
import java.util.ArrayList;
|
|
21
21
|
import java.util.List;
|
|
22
22
|
import java.util.concurrent.ConcurrentLinkedQueue;
|
|
23
23
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
24
|
-
import javax.annotation.Nullable;
|
|
25
24
|
|
|
26
25
|
public class NodesManager implements EventDispatcherListener {
|
|
27
26
|
|
|
@@ -38,7 +37,7 @@ public class NodesManager implements EventDispatcherListener {
|
|
|
38
37
|
private final GuardedFrameCallback mChoreographerCallback;
|
|
39
38
|
protected final UIManagerModule.CustomEventNamesResolver mCustomEventNamesResolver;
|
|
40
39
|
private final AtomicBoolean mCallbackPosted = new AtomicBoolean();
|
|
41
|
-
private
|
|
40
|
+
private RCTModernEventEmitter mCustomEventHandler = new NoopEventHandler();
|
|
42
41
|
private List<OnAnimationFrame> mFrameCallbacks = new ArrayList<>();
|
|
43
42
|
private ConcurrentLinkedQueue<CopiedEvent> mEventQueue = new ConcurrentLinkedQueue<>();
|
|
44
43
|
private double lastFrameTimeMs;
|
|
@@ -170,8 +169,7 @@ public class NodesManager implements EventDispatcherListener {
|
|
|
170
169
|
|
|
171
170
|
while (!mEventQueue.isEmpty()) {
|
|
172
171
|
CopiedEvent copiedEvent = mEventQueue.poll();
|
|
173
|
-
handleEvent(
|
|
174
|
-
copiedEvent.getTargetTag(), copiedEvent.getEventName(), copiedEvent.getPayload());
|
|
172
|
+
handleEvent(copiedEvent);
|
|
175
173
|
}
|
|
176
174
|
|
|
177
175
|
if (!mFrameCallbacks.isEmpty()) {
|
|
@@ -203,7 +201,7 @@ public class NodesManager implements EventDispatcherListener {
|
|
|
203
201
|
}
|
|
204
202
|
|
|
205
203
|
@Override
|
|
206
|
-
public void onEventDispatch(Event event) {
|
|
204
|
+
public void onEventDispatch(Event<?> event) {
|
|
207
205
|
try {
|
|
208
206
|
if (BuildConfig.REANIMATED_PROFILING) {
|
|
209
207
|
Trace.beginSection("onEventDispatch");
|
|
@@ -233,19 +231,26 @@ public class NodesManager implements EventDispatcherListener {
|
|
|
233
231
|
}
|
|
234
232
|
}
|
|
235
233
|
|
|
236
|
-
private void handleEvent(Event event) {
|
|
237
|
-
event.
|
|
234
|
+
private void handleEvent(Event<?> event) {
|
|
235
|
+
event.dispatchModern(mCustomEventHandler);
|
|
238
236
|
}
|
|
239
237
|
|
|
240
|
-
private void handleEvent(
|
|
241
|
-
mCustomEventHandler.receiveEvent(
|
|
238
|
+
private void handleEvent(CopiedEvent copiedEvent) {
|
|
239
|
+
mCustomEventHandler.receiveEvent(
|
|
240
|
+
copiedEvent.getSurfaceId(),
|
|
241
|
+
copiedEvent.getTargetTag(),
|
|
242
|
+
copiedEvent.getEventName(),
|
|
243
|
+
copiedEvent.getCanCoalesceEvent(),
|
|
244
|
+
copiedEvent.getCustomCoalesceKey(),
|
|
245
|
+
copiedEvent.getPayload(),
|
|
246
|
+
copiedEvent.getCategory());
|
|
242
247
|
}
|
|
243
248
|
|
|
244
249
|
public UIManagerModule.CustomEventNamesResolver getEventNameResolver() {
|
|
245
250
|
return mCustomEventNamesResolver;
|
|
246
251
|
}
|
|
247
252
|
|
|
248
|
-
public void registerEventHandler(
|
|
253
|
+
public void registerEventHandler(RCTModernEventEmitter handler) {
|
|
249
254
|
mCustomEventHandler = handler;
|
|
250
255
|
}
|
|
251
256
|
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
package com.swmansion.reanimated.nativeProxy;
|
|
2
2
|
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
3
4
|
import androidx.annotation.Nullable;
|
|
4
5
|
import com.facebook.jni.HybridData;
|
|
5
6
|
import com.facebook.proguard.annotations.DoNotStrip;
|
|
6
7
|
import com.facebook.react.bridge.WritableArray;
|
|
7
8
|
import com.facebook.react.bridge.WritableMap;
|
|
8
9
|
import com.facebook.react.uimanager.UIManagerModule;
|
|
9
|
-
import com.facebook.react.uimanager.events.
|
|
10
|
+
import com.facebook.react.uimanager.events.RCTModernEventEmitter;
|
|
10
11
|
|
|
11
12
|
@DoNotStrip
|
|
12
|
-
public class EventHandler implements
|
|
13
|
+
public class EventHandler implements RCTModernEventEmitter {
|
|
13
14
|
|
|
14
|
-
@
|
|
15
|
+
@SuppressWarnings("FieldCanBeLocal")
|
|
16
|
+
@DoNotStrip
|
|
17
|
+
private final HybridData mHybridData;
|
|
15
18
|
|
|
16
19
|
public UIManagerModule.CustomEventNamesResolver mCustomEventNamesResolver;
|
|
17
20
|
|
|
@@ -21,17 +24,40 @@ public class EventHandler implements RCTEventEmitter {
|
|
|
21
24
|
}
|
|
22
25
|
|
|
23
26
|
@Override
|
|
24
|
-
public void receiveEvent(
|
|
27
|
+
public void receiveEvent(
|
|
28
|
+
int surfaceId,
|
|
29
|
+
int targetTag,
|
|
30
|
+
@NonNull String eventName,
|
|
31
|
+
boolean canCoalesceEvent,
|
|
32
|
+
int customCoalesceKey,
|
|
33
|
+
@Nullable WritableMap params,
|
|
34
|
+
int category) {
|
|
25
35
|
String resolvedEventName = mCustomEventNamesResolver.resolveCustomEventName(eventName);
|
|
26
|
-
receiveEvent(resolvedEventName,
|
|
36
|
+
receiveEvent(resolvedEventName, targetTag, params);
|
|
27
37
|
}
|
|
28
38
|
|
|
29
|
-
|
|
30
|
-
|
|
39
|
+
@Override
|
|
40
|
+
public void receiveEvent(
|
|
41
|
+
int surfaceId, int targetTag, @NonNull String eventName, @Nullable WritableMap params) {
|
|
42
|
+
String resolvedEventName = mCustomEventNamesResolver.resolveCustomEventName(eventName);
|
|
43
|
+
receiveEvent(resolvedEventName, targetTag, params);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
@Override
|
|
47
|
+
public void receiveEvent(int targetTag, @NonNull String eventName, @Nullable WritableMap params) {
|
|
48
|
+
String resolvedEventName = mCustomEventNamesResolver.resolveCustomEventName(eventName);
|
|
49
|
+
receiveEvent(resolvedEventName, targetTag, params);
|
|
50
|
+
}
|
|
31
51
|
|
|
32
52
|
@Override
|
|
33
53
|
public void receiveTouches(
|
|
34
|
-
String eventName,
|
|
54
|
+
@NonNull String eventName,
|
|
55
|
+
@NonNull WritableArray touches,
|
|
56
|
+
@NonNull WritableArray changedIndices) {
|
|
35
57
|
// not interested in processing touch events this way, we process raw events only
|
|
36
58
|
}
|
|
59
|
+
|
|
60
|
+
@SuppressWarnings("JavaJniMissingFunction")
|
|
61
|
+
public native void receiveEvent(
|
|
62
|
+
String eventName, int emitterReactTag, @Nullable WritableMap event);
|
|
37
63
|
}
|
|
@@ -1,19 +1,40 @@
|
|
|
1
1
|
package com.swmansion.reanimated.nativeProxy;
|
|
2
2
|
|
|
3
|
+
import androidx.annotation.NonNull;
|
|
3
4
|
import androidx.annotation.Nullable;
|
|
4
5
|
import com.facebook.react.bridge.WritableArray;
|
|
5
6
|
import com.facebook.react.bridge.WritableMap;
|
|
6
|
-
import com.facebook.react.uimanager.events.
|
|
7
|
+
import com.facebook.react.uimanager.events.RCTModernEventEmitter;
|
|
7
8
|
|
|
8
|
-
public class NoopEventHandler implements
|
|
9
|
+
public class NoopEventHandler implements RCTModernEventEmitter {
|
|
9
10
|
@Override
|
|
10
|
-
public void receiveEvent(
|
|
11
|
-
|
|
11
|
+
public void receiveEvent(
|
|
12
|
+
int surfaceId,
|
|
13
|
+
int targetTag,
|
|
14
|
+
@NonNull String eventName,
|
|
15
|
+
boolean canCoalesceEvent,
|
|
16
|
+
int customCoalesceKey,
|
|
17
|
+
@Nullable WritableMap params,
|
|
18
|
+
int category) {
|
|
19
|
+
// noop
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@Override
|
|
23
|
+
public void receiveEvent(
|
|
24
|
+
int surfaceId, int targetTag, @NonNull String eventName, @Nullable WritableMap params) {
|
|
25
|
+
// noop
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@Override
|
|
29
|
+
public void receiveEvent(int targetTag, @NonNull String eventName, @Nullable WritableMap params) {
|
|
30
|
+
// noop
|
|
12
31
|
}
|
|
13
32
|
|
|
14
33
|
@Override
|
|
15
34
|
public void receiveTouches(
|
|
16
|
-
String eventName,
|
|
17
|
-
|
|
35
|
+
@NonNull String eventName,
|
|
36
|
+
@NonNull WritableArray touches,
|
|
37
|
+
@NonNull WritableArray changedIndices) {
|
|
38
|
+
// noop
|
|
18
39
|
}
|
|
19
40
|
}
|
|
@@ -8,10 +8,6 @@
|
|
|
8
8
|
#import <React/RCTMountingManager.h>
|
|
9
9
|
#import <React/RCTUtils.h>
|
|
10
10
|
|
|
11
|
-
#if REACT_NATIVE_MINOR_VERSION < 81
|
|
12
|
-
#import <React/RCTFollyConvert.h>
|
|
13
|
-
#endif
|
|
14
|
-
|
|
15
11
|
using namespace facebook::react;
|
|
16
12
|
|
|
17
13
|
@implementation REANodesManager {
|
|
@@ -166,11 +162,7 @@ using namespace facebook::react;
|
|
|
166
162
|
REAUIView<RCTComponentViewProtocol> *componentView =
|
|
167
163
|
[componentViewRegistry findComponentViewWithTag:static_cast<Tag>(viewTag)];
|
|
168
164
|
NSSet<NSString *> *propKeysManagedByAnimated = [componentView propKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN];
|
|
169
|
-
#if REACT_NATIVE_MINOR_VERSION >= 81
|
|
170
165
|
[surfacePresenter schedulerDidSynchronouslyUpdateViewOnUIThread:viewTag props:props];
|
|
171
|
-
#else
|
|
172
|
-
[surfacePresenter synchronouslyUpdateViewOnUIThread:@(viewTag) props:convertFollyDynamicToId(props)];
|
|
173
|
-
#endif
|
|
174
166
|
[componentView setPropKeysManagedByAnimated_DO_NOT_USE_THIS_IS_BROKEN:propKeysManagedByAnimated];
|
|
175
167
|
// `synchronouslyUpdateViewOnUIThread` does not flush props like `backgroundColor` etc.
|
|
176
168
|
// so that's why we need to call `finalizeUpdates` here.
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
#import <React/RCTScheduler.h>
|
|
4
4
|
#import <React/RCTSurfacePresenter.h>
|
|
5
5
|
|
|
6
|
+
#import <reanimated/Compat/WorkletsApi.h>
|
|
6
7
|
#import <reanimated/RuntimeDecorators/RNRuntimeDecorator.h>
|
|
7
8
|
#import <reanimated/Tools/SingleInstanceChecker.h>
|
|
8
9
|
#import <reanimated/apple/REAAssertJavaScriptQueue.h>
|
|
@@ -11,8 +12,6 @@
|
|
|
11
12
|
#import <reanimated/apple/ReanimatedModule.h>
|
|
12
13
|
#import <reanimated/apple/native/NativeProxy.h>
|
|
13
14
|
|
|
14
|
-
#import <worklets/Compat/Holders.h>
|
|
15
|
-
|
|
16
15
|
using namespace facebook::react;
|
|
17
16
|
using namespace reanimated;
|
|
18
17
|
using namespace worklets;
|
|
@@ -161,8 +160,7 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(installTurboModule)
|
|
|
161
160
|
auto reanimatedModuleProxy = reanimated::createReanimatedModuleProxy(
|
|
162
161
|
_nodesManager, _moduleRegistry, rnRuntime, jsCallInvoker, uiWorkletRuntime, uiScheduler);
|
|
163
162
|
|
|
164
|
-
auto &uiRuntime = uiWorkletRuntime
|
|
165
|
-
|
|
163
|
+
auto &uiRuntime = getJSIRuntimeFromWorkletRuntime(uiWorkletRuntime);
|
|
166
164
|
RNRuntimeDecorator::decorate(rnRuntime, uiRuntime, reanimatedModuleProxy);
|
|
167
165
|
[self attachReactEventListener:reanimatedModuleProxy];
|
|
168
166
|
|
|
@@ -188,20 +186,16 @@ RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(installTurboModule)
|
|
|
188
186
|
- (std::shared_ptr<WorkletRuntime>)getUIRuntime:(jsi::Runtime &)rnRuntime
|
|
189
187
|
{
|
|
190
188
|
const auto global = rnRuntime.global();
|
|
191
|
-
const auto uiRuntime =
|
|
192
|
-
|
|
193
|
-
.getNativeState<WorkletRuntimeHolder>(rnRuntime)
|
|
194
|
-
->runtime_;
|
|
189
|
+
const auto uiRuntime =
|
|
190
|
+
getWorkletRuntimeFromHolder(rnRuntime, global.getPropertyAsObject(rnRuntime, "__UI_WORKLET_RUNTIME_HOLDER"));
|
|
195
191
|
return uiRuntime;
|
|
196
192
|
}
|
|
197
193
|
|
|
198
194
|
- (std::shared_ptr<UIScheduler>)getUIScheduler:(jsi::Runtime &)rnRuntime
|
|
199
195
|
{
|
|
200
196
|
const auto global = rnRuntime.global();
|
|
201
|
-
const auto uiScheduler =
|
|
202
|
-
|
|
203
|
-
.getNativeState<UISchedulerHolder>(rnRuntime)
|
|
204
|
-
->scheduler_;
|
|
197
|
+
const auto uiScheduler =
|
|
198
|
+
getUISchedulerFromHolder(rnRuntime, global.getPropertyAsObject(rnRuntime, "__UI_SCHEDULER_HOLDER"));
|
|
205
199
|
return uiScheduler;
|
|
206
200
|
}
|
|
207
201
|
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
#if __cplusplus
|
|
2
2
|
|
|
3
|
+
#import <reanimated/Compat/WorkletsApi.h>
|
|
3
4
|
#import <reanimated/NativeModules/ReanimatedModuleProxy.h>
|
|
4
5
|
#import <reanimated/apple/REANodesManager.h>
|
|
5
|
-
#import <worklets/Tools/UIScheduler.h>
|
|
6
|
-
#import <worklets/WorkletRuntime/WorkletRuntime.h>
|
|
7
6
|
|
|
8
7
|
namespace reanimated {
|
|
9
8
|
|
|
@@ -31,7 +31,7 @@ std::shared_ptr<ReanimatedModuleProxy> createReanimatedModuleProxy(
|
|
|
31
31
|
uiWorkletRuntime, uiScheduler, rnRuntime, jsInvoker, platformDepMethodsHolder, getIsReducedMotion());
|
|
32
32
|
reanimatedModuleProxy->init(platformDepMethodsHolder);
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
auto &uiRuntime = getJSIRuntimeFromWorkletRuntime(uiWorkletRuntime);
|
|
35
35
|
|
|
36
36
|
[nodesManager registerEventHandler:^(id<RCTEvent> event) {
|
|
37
37
|
// handles RCTEvents from RNGestureHandler
|
package/compatibility.json
CHANGED
|
@@ -8,17 +8,13 @@
|
|
|
8
8
|
"react-native": ["0.81", "0.82", "0.83", "0.84", "0.85"],
|
|
9
9
|
"react-native-worklets": ["0.8.x"]
|
|
10
10
|
},
|
|
11
|
-
"4.2.
|
|
11
|
+
"4.2.x": {
|
|
12
12
|
"react-native": ["0.80", "0.81", "0.82", "0.83", "0.84"],
|
|
13
|
-
"react-native-worklets": ["0.7.x"]
|
|
14
|
-
},
|
|
15
|
-
"4.2.0 - 4.2.1": {
|
|
16
|
-
"react-native": ["0.80", "0.81", "0.82", "0.83"],
|
|
17
|
-
"react-native-worklets": ["0.7.x"]
|
|
13
|
+
"react-native-worklets": ["0.7.x", "0.8.x"]
|
|
18
14
|
},
|
|
19
15
|
"4.1.x": {
|
|
20
16
|
"react-native": ["0.78", "0.79", "0.80", "0.81", "0.82"],
|
|
21
|
-
"react-native-worklets": ["0.5.x", "0.6.x", "0.7.x"]
|
|
17
|
+
"react-native-worklets": ["0.5.x", "0.6.x", "0.7.x", "0.8.x"]
|
|
22
18
|
},
|
|
23
19
|
"4.0.x": {
|
|
24
20
|
"react-native": ["0.78", "0.79", "0.80", "0.81"],
|
|
@@ -30,21 +26,12 @@
|
|
|
30
26
|
"3.18.x": {
|
|
31
27
|
"react-native": ["0.75", "0.76", "0.77", "0.78", "0.79", "0.80"]
|
|
32
28
|
},
|
|
33
|
-
"3.17.
|
|
29
|
+
"3.17.x": {
|
|
34
30
|
"react-native": ["0.75", "0.76", "0.77", "0.78", "0.79"]
|
|
35
31
|
},
|
|
36
|
-
"3.
|
|
37
|
-
"react-native": ["0.75", "0.76", "0.77", "0.78"]
|
|
38
|
-
},
|
|
39
|
-
"3.17.0": {
|
|
40
|
-
"react-native": ["0.75", "0.76", "0.77"]
|
|
41
|
-
},
|
|
42
|
-
"3.16.7": {
|
|
32
|
+
"3.16.x": {
|
|
43
33
|
"react-native": ["0.74", "0.75", "0.76", "0.77"]
|
|
44
34
|
},
|
|
45
|
-
"3.16.0 - 3.16.6": {
|
|
46
|
-
"react-native": ["0.74", "0.75", "0.76"]
|
|
47
|
-
},
|
|
48
35
|
"3.15.x": {
|
|
49
36
|
"react-native": ["0.74", "0.75"]
|
|
50
37
|
},
|
|
@@ -68,21 +55,12 @@
|
|
|
68
55
|
"3.18.x": {
|
|
69
56
|
"react-native": ["0.75", "0.76", "0.77", "0.78", "0.79", "0.80"]
|
|
70
57
|
},
|
|
71
|
-
"3.17.
|
|
58
|
+
"3.17.x": {
|
|
72
59
|
"react-native": ["0.75", "0.76", "0.77", "0.78", "0.79"]
|
|
73
60
|
},
|
|
74
|
-
"3.
|
|
75
|
-
"react-native": ["0.75", "0.76", "0.77", "0.78"]
|
|
76
|
-
},
|
|
77
|
-
"3.17.0": {
|
|
78
|
-
"react-native": ["0.75", "0.76", "0.77"]
|
|
79
|
-
},
|
|
80
|
-
"3.16.7": {
|
|
61
|
+
"3.16.x": {
|
|
81
62
|
"react-native": ["0.74", "0.75", "0.76", "0.77"]
|
|
82
63
|
},
|
|
83
|
-
"3.16.0 - 3.16.6": {
|
|
84
|
-
"react-native": ["0.74", "0.75", "0.76"]
|
|
85
|
-
},
|
|
86
64
|
"3.15.x": {
|
|
87
65
|
"react-native": ["0.72", "0.73", "0.74", "0.75"]
|
|
88
66
|
},
|
|
@@ -35,6 +35,9 @@ export const PropsRegistryGarbageCollector = {
|
|
|
35
35
|
viewTag,
|
|
36
36
|
styleProps
|
|
37
37
|
} of settledUpdates) {
|
|
38
|
+
if (styleProps === null) {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
38
41
|
const component = this.viewsMap.get(viewTag);
|
|
39
42
|
unprocessProps(styleProps);
|
|
40
43
|
component?._syncStylePropsBackToReact(styleProps);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["unprocessColor","unprocessColorsInProps","ReanimatedModule","FLUSH_INTERVAL_MS","PropsRegistryGarbageCollector","viewsCount","viewsMap","Map","intervalId","registerView","viewTag","component","has","set","registerInterval","unregisterView","delete","unregisterInterval","syncPropsBackToReact","settledUpdates","getSettledUpdates","styleProps","get","unprocessProps","_syncStylePropsBackToReact","setInterval","bind","clearInterval","props","unprocessBoxShadow","Array","isArray","boxShadow","map","color"],"sourceRoot":"../../src","sources":["PropsRegistryGarbageCollector.ts"],"mappings":"AAAA,YAAY;;AAEZ,SACEA,cAAc,EACdC,sBAAsB,QACjB,kCAAkC;AAGzC,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,MAAMC,iBAAiB,GAAG,GAAG;AAE7B,OAAO,MAAMC,6BAA6B,GAAG;EAC3CC,UAAU,EAAE,CAAC;EACbC,QAAQ,EAAE,IAAIC,GAAG,CAAqC,CAAC;EACvDC,UAAU,EAAE,IAA6B;EAEzCC,YAAYA,CAACC,OAAe,EAAEC,SAAqC,EAAE;IACnE,IAAI,IAAI,CAACL,QAAQ,CAACM,GAAG,CAACF,OAAO,CAAC,EAAE;MAC9B;MACA;MACA;MACA;MACA;MACA;IACF;IACA,IAAI,CAACJ,QAAQ,CAACO,GAAG,CAACH,OAAO,EAAEC,SAAS,CAAC;IACrC,IAAI,CAACN,UAAU,EAAE;IACjB,IAAI,IAAI,CAACA,UAAU,KAAK,CAAC,EAAE;MACzB,IAAI,CAACS,gBAAgB,CAAC,CAAC;IACzB;EACF,CAAC;EAEDC,cAAcA,CAACL,OAAe,EAAE;IAC9B,IAAI,CAACJ,QAAQ,CAACU,MAAM,CAACN,OAAO,CAAC;IAC7B,IAAI,CAACL,UAAU,EAAE;IACjB,IAAI,IAAI,CAACA,UAAU,KAAK,CAAC,EAAE;MACzB,IAAI,CAACY,kBAAkB,CAAC,CAAC;IAC3B;EACF,CAAC;EAEDC,oBAAoBA,CAAA,EAAG;IACrB,MAAMC,cAAc,GAAGjB,gBAAgB,CAACkB,iBAAiB,CAAC,CAAC;IAC3D,KAAK,MAAM;MAAEV,OAAO;MAAEW;IAAW,CAAC,IAAIF,cAAc,EAAE;MACpD,
|
|
1
|
+
{"version":3,"names":["unprocessColor","unprocessColorsInProps","ReanimatedModule","FLUSH_INTERVAL_MS","PropsRegistryGarbageCollector","viewsCount","viewsMap","Map","intervalId","registerView","viewTag","component","has","set","registerInterval","unregisterView","delete","unregisterInterval","syncPropsBackToReact","settledUpdates","getSettledUpdates","styleProps","get","unprocessProps","_syncStylePropsBackToReact","setInterval","bind","clearInterval","props","unprocessBoxShadow","Array","isArray","boxShadow","map","color"],"sourceRoot":"../../src","sources":["PropsRegistryGarbageCollector.ts"],"mappings":"AAAA,YAAY;;AAEZ,SACEA,cAAc,EACdC,sBAAsB,QACjB,kCAAkC;AAGzC,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,MAAMC,iBAAiB,GAAG,GAAG;AAE7B,OAAO,MAAMC,6BAA6B,GAAG;EAC3CC,UAAU,EAAE,CAAC;EACbC,QAAQ,EAAE,IAAIC,GAAG,CAAqC,CAAC;EACvDC,UAAU,EAAE,IAA6B;EAEzCC,YAAYA,CAACC,OAAe,EAAEC,SAAqC,EAAE;IACnE,IAAI,IAAI,CAACL,QAAQ,CAACM,GAAG,CAACF,OAAO,CAAC,EAAE;MAC9B;MACA;MACA;MACA;MACA;MACA;IACF;IACA,IAAI,CAACJ,QAAQ,CAACO,GAAG,CAACH,OAAO,EAAEC,SAAS,CAAC;IACrC,IAAI,CAACN,UAAU,EAAE;IACjB,IAAI,IAAI,CAACA,UAAU,KAAK,CAAC,EAAE;MACzB,IAAI,CAACS,gBAAgB,CAAC,CAAC;IACzB;EACF,CAAC;EAEDC,cAAcA,CAACL,OAAe,EAAE;IAC9B,IAAI,CAACJ,QAAQ,CAACU,MAAM,CAACN,OAAO,CAAC;IAC7B,IAAI,CAACL,UAAU,EAAE;IACjB,IAAI,IAAI,CAACA,UAAU,KAAK,CAAC,EAAE;MACzB,IAAI,CAACY,kBAAkB,CAAC,CAAC;IAC3B;EACF,CAAC;EAEDC,oBAAoBA,CAAA,EAAG;IACrB,MAAMC,cAAc,GAAGjB,gBAAgB,CAACkB,iBAAiB,CAAC,CAAC;IAC3D,KAAK,MAAM;MAAEV,OAAO;MAAEW;IAAW,CAAC,IAAIF,cAAc,EAAE;MACpD,IAAIE,UAAU,KAAK,IAAI,EAAE;QACvB;MACF;MACA,MAAMV,SAAS,GAAG,IAAI,CAACL,QAAQ,CAACgB,GAAG,CAACZ,OAAO,CAAC;MAC5Ca,cAAc,CAACF,UAAU,CAAC;MAC1BV,SAAS,EAAEa,0BAA0B,CAACH,UAAU,CAAC;IACnD;EACF,CAAC;EAEDP,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACN,UAAU,GAAGiB,WAAW,CAC3B,IAAI,CAACP,oBAAoB,CAACQ,IAAI,CAAC,IAAI,CAAC,EACpCvB,iBACF,CAAC;EACH,CAAC;EAEDc,kBAAkBA,CAAA,EAAG;IACnB,IAAI,IAAI,CAACT,UAAU,KAAK,IAAI,EAAE;MAC5BmB,aAAa,CAAC,IAAI,CAACnB,UAAU,CAAC;MAC9B,IAAI,CAACA,UAAU,GAAG,IAAI;IACxB;EACF;AACF,CAAC;AAED,SAASe,cAAcA,CAACK,KAAiB,EAAE;EACzC3B,sBAAsB,CAAC2B,KAAK,CAAC;EAC7BC,kBAAkB,CAACD,KAAK,CAAC;AAC3B;AAEA,SAASC,kBAAkBA,CAACD,KAAiB,EAAE;EAC7C,IAAIE,KAAK,CAACC,OAAO,CAACH,KAAK,CAACI,SAAS,CAAC,EAAE;IAClC;IACAJ,KAAK,CAACI,SAAS,GAAGJ,KAAK,CAACI,SAAS,CAACC,GAAG,CAAED,SAAS,KAAM;MACpD,GAAGA,SAAS;MACZE,KAAK,EAAElC,cAAc,CAACgC,SAAS,CAACE,KAAK;IACvC,CAAC,CAAC,CAAC;EACL;AACF","ignoreList":[]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
-
'worklet';
|
|
3
2
|
|
|
4
3
|
import { ColorProperties, processColorInitially } from '../../../Colors';
|
|
5
4
|
import { IS_ANDROID, IS_IOS } from '../../constants';
|
|
@@ -12,6 +11,8 @@ import { isRecord } from '../../utils';
|
|
|
12
11
|
* https://github.com/facebook/react-native/blob/v0.81.0/packages/react-native/Libraries/StyleSheet/PlatformColorValueTypes.d.ts
|
|
13
12
|
*/
|
|
14
13
|
export function PlatformColor(...names) {
|
|
14
|
+
'worklet';
|
|
15
|
+
|
|
15
16
|
return IS_IOS ? {
|
|
16
17
|
semantic: names
|
|
17
18
|
} :
|
|
@@ -21,6 +22,8 @@ export function PlatformColor(...names) {
|
|
|
21
22
|
};
|
|
22
23
|
}
|
|
23
24
|
function isPlatformColorObject(value) {
|
|
25
|
+
'worklet';
|
|
26
|
+
|
|
24
27
|
return isRecord(value) && (Array.isArray(value.semantic) || Array.isArray(value.resource_paths));
|
|
25
28
|
}
|
|
26
29
|
|
|
@@ -29,6 +32,8 @@ function isPlatformColorObject(value) {
|
|
|
29
32
|
*/
|
|
30
33
|
|
|
31
34
|
export function DynamicColorIOS(tuple) {
|
|
35
|
+
'worklet';
|
|
36
|
+
|
|
32
37
|
return {
|
|
33
38
|
dynamic: {
|
|
34
39
|
light: tuple.light,
|
|
@@ -39,14 +44,30 @@ export function DynamicColorIOS(tuple) {
|
|
|
39
44
|
};
|
|
40
45
|
}
|
|
41
46
|
function isDynamicColorObjectIOS(value) {
|
|
47
|
+
'worklet';
|
|
48
|
+
|
|
42
49
|
return isRecord(value) && isRecord(value.dynamic) && 'light' in value.dynamic && 'dark' in value.dynamic;
|
|
43
50
|
}
|
|
44
51
|
export const ERROR_MESSAGES = {
|
|
45
|
-
invalidColor
|
|
46
|
-
|
|
47
|
-
|
|
52
|
+
invalidColor(color) {
|
|
53
|
+
'worklet';
|
|
54
|
+
|
|
55
|
+
return `Invalid color value: ${JSON.stringify(color)}`;
|
|
56
|
+
},
|
|
57
|
+
invalidProcessedColor(color) {
|
|
58
|
+
'worklet';
|
|
59
|
+
|
|
60
|
+
return `Invalid processed color value: ${JSON.stringify(color)}`;
|
|
61
|
+
},
|
|
62
|
+
dynamicNotAvailableOnPlatform() {
|
|
63
|
+
'worklet';
|
|
64
|
+
|
|
65
|
+
return 'DynamicColorIOS is not available on this platform.';
|
|
66
|
+
}
|
|
48
67
|
};
|
|
49
68
|
export function processColorNumber(value) {
|
|
69
|
+
'worklet';
|
|
70
|
+
|
|
50
71
|
let normalizedColor = processColorInitially(value);
|
|
51
72
|
if (IS_ANDROID && typeof normalizedColor == 'number') {
|
|
52
73
|
// Android use 32 bit *signed* integer to represent the color
|
|
@@ -66,6 +87,8 @@ function unprocessColorNumber(value) {
|
|
|
66
87
|
}
|
|
67
88
|
const DynamicColorIOSProperties = ['light', 'dark', 'highContrastLight', 'highContrastDark'];
|
|
68
89
|
function processDynamicColorObjectIOS(value) {
|
|
90
|
+
'worklet';
|
|
91
|
+
|
|
69
92
|
const result = {};
|
|
70
93
|
for (const property of DynamicColorIOSProperties) {
|
|
71
94
|
if (value.dynamic[property] === undefined) {
|
|
@@ -103,6 +126,8 @@ function unprocessDynamicColorObjectIOS(value) {
|
|
|
103
126
|
*/
|
|
104
127
|
|
|
105
128
|
export function processColor(value, context) {
|
|
129
|
+
'worklet';
|
|
130
|
+
|
|
106
131
|
let result = processColorNumber(value); // try to convert to a number first (most common case)
|
|
107
132
|
|
|
108
133
|
if (result) {
|
|
@@ -146,6 +171,8 @@ export function unprocessColor(value) {
|
|
|
146
171
|
throw new ReanimatedError(ERROR_MESSAGES.invalidProcessedColor(value));
|
|
147
172
|
}
|
|
148
173
|
export function processColorsInProps(props) {
|
|
174
|
+
'worklet';
|
|
175
|
+
|
|
149
176
|
for (const key in props) {
|
|
150
177
|
if (!ColorProperties.includes(key)) continue;
|
|
151
178
|
const value = props[key];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ColorProperties","processColorInitially","IS_ANDROID","IS_IOS","ReanimatedError","ValueProcessorTarget","isRecord","PlatformColor","names","semantic","resource_paths","isPlatformColorObject","value","Array","isArray","DynamicColorIOS","tuple","dynamic","light","dark","highContrastLight","highContrastDark","isDynamicColorObjectIOS","ERROR_MESSAGES","invalidColor","color","JSON","stringify","invalidProcessedColor","dynamicNotAvailableOnPlatform","processColorNumber","normalizedColor","unprocessColorNumber","a","r","g","b","DynamicColorIOSProperties","processDynamicColorObjectIOS","result","property","undefined","processed","unprocessDynamicColorObjectIOS","processColor","context","target","CSS","unprocessColor","processColorsInProps","props","key","includes","map","c","unprocessColorsInProps"],"sourceRoot":"../../../../../src","sources":["common/style/processors/colors.ts"],"mappings":"AAAA,YAAY
|
|
1
|
+
{"version":3,"names":["ColorProperties","processColorInitially","IS_ANDROID","IS_IOS","ReanimatedError","ValueProcessorTarget","isRecord","PlatformColor","names","semantic","resource_paths","isPlatformColorObject","value","Array","isArray","DynamicColorIOS","tuple","dynamic","light","dark","highContrastLight","highContrastDark","isDynamicColorObjectIOS","ERROR_MESSAGES","invalidColor","color","JSON","stringify","invalidProcessedColor","dynamicNotAvailableOnPlatform","processColorNumber","normalizedColor","unprocessColorNumber","a","r","g","b","DynamicColorIOSProperties","processDynamicColorObjectIOS","result","property","undefined","processed","unprocessDynamicColorObjectIOS","processColor","context","target","CSS","unprocessColor","processColorsInProps","props","key","includes","map","c","unprocessColorsInProps"],"sourceRoot":"../../../../../src","sources":["common/style/processors/colors.ts"],"mappings":"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","ignoreList":[]}
|