react-native-reanimated 4.5.2 → 4.5.3
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/Fabric/updates/AnimatedPropsRegistry.cpp +54 -24
- package/Common/cpp/reanimated/Fabric/updates/AnimatedPropsRegistry.h +13 -6
- package/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.cpp +40 -1
- package/Common/cpp/reanimated/LayoutAnimations/LayoutAnimationsProxy_Legacy.h +4 -0
- package/Common/cpp/reanimated/NativeModules/ReanimatedModuleProxy.cpp +3 -5
- package/android/build.gradle.kts +9 -0
- package/lib/module/PropsRegistryGarbageCollector.js +3 -6
- package/lib/module/PropsRegistryGarbageCollector.js.map +1 -1
- package/lib/module/animation/styleAnimation.js +4 -3
- package/lib/module/animation/styleAnimation.js.map +1 -1
- package/lib/module/createAnimatedComponent/AnimatedComponent.js +1 -1
- package/lib/module/createAnimatedComponent/AnimatedComponent.js.map +1 -1
- package/lib/module/layoutReanimation/animationsManager.js +9 -6
- package/lib/module/layoutReanimation/animationsManager.js.map +1 -1
- package/lib/module/platform-specific/jsVersion.js +1 -1
- package/lib/typescript/PropsRegistryGarbageCollector.d.ts +0 -1
- package/lib/typescript/PropsRegistryGarbageCollector.d.ts.map +1 -1
- package/lib/typescript/animation/styleAnimation.d.ts +1 -1
- package/lib/typescript/animation/styleAnimation.d.ts.map +1 -1
- package/lib/typescript/createAnimatedComponent/AnimatedComponent.d.ts.map +1 -1
- package/lib/typescript/layoutReanimation/animationsManager.d.ts.map +1 -1
- package/lib/typescript/platform-specific/jsVersion.d.ts +1 -1
- package/package.json +2 -2
- package/scripts/reanimated_utils.rb +7 -0
- package/src/PropsRegistryGarbageCollector.ts +3 -6
- package/src/animation/styleAnimation.ts +5 -3
- package/src/createAnimatedComponent/AnimatedComponent.tsx +3 -1
- package/src/layoutReanimation/animationsManager.ts +9 -7
- package/src/platform-specific/jsVersion.ts +1 -1
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
|
|
6
6
|
#include <react/debug/react_native_assert.h>
|
|
7
7
|
|
|
8
|
+
#include <functional>
|
|
8
9
|
#include <memory>
|
|
9
10
|
#include <utility>
|
|
11
|
+
#include <vector>
|
|
10
12
|
|
|
11
13
|
namespace reanimated {
|
|
12
14
|
|
|
@@ -35,26 +37,65 @@ void AnimatedPropsRegistry::update(jsi::Runtime &rt, const jsi::Value &operation
|
|
|
35
37
|
addUpdatesToBatch(shadowNode->getFamilyShared(), jsi::dynamicFromValue(rt, updates));
|
|
36
38
|
}
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
// When USE_ANIMATION_BACKEND is enabled, updates bypass `updatesRegistry_`,
|
|
41
|
+
// so entries added to `timestampMap_` would never be synced and thus never
|
|
42
|
+
// evicted, leaking until view unmount.
|
|
43
|
+
if constexpr (
|
|
44
|
+
StaticFeatureFlags::getFlag("FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS") &&
|
|
45
|
+
!StaticFeatureFlags::getFlag("USE_ANIMATION_BACKEND")) {
|
|
46
|
+
const auto tag = shadowNode->getTag();
|
|
47
|
+
timestampMap_[tag] = timestamp;
|
|
48
|
+
// If JS already has a `settledProps` snapshot for this tag, it is now
|
|
49
|
+
// stale — schedule a refresh on the next `collectSettledUpdates`.
|
|
50
|
+
if (syncedTags_.erase(tag) > 0) {
|
|
51
|
+
invalidatedTags_.insert(tag);
|
|
52
|
+
}
|
|
40
53
|
}
|
|
41
54
|
}
|
|
42
55
|
}
|
|
43
56
|
|
|
44
|
-
jsi::Value AnimatedPropsRegistry::
|
|
45
|
-
jsi::Runtime &rt,
|
|
46
|
-
const double timestamp,
|
|
47
|
-
const double cleanupTimestamp) {
|
|
57
|
+
jsi::Value AnimatedPropsRegistry::collectSettledUpdates(jsi::Runtime &rt, const double settledTimestamp) {
|
|
48
58
|
react_native_assert(UpdatesRegistryManager::isLockedByCurrentThread());
|
|
49
|
-
removeUpdatesOlderThanTimestamp(cleanupTimestamp);
|
|
50
59
|
|
|
51
60
|
std::vector<std::pair<Tag, std::reference_wrapper<const folly::dynamic>>> updates;
|
|
52
61
|
|
|
53
|
-
for (
|
|
54
|
-
auto
|
|
55
|
-
|
|
56
|
-
|
|
62
|
+
for (auto it = updatesRegistry_.begin(); it != updatesRegistry_.end();) {
|
|
63
|
+
const auto viewTag = it->first;
|
|
64
|
+
|
|
65
|
+
if (syncedTags_.contains(viewTag)) {
|
|
66
|
+
// React already has the latest value for this tag (synced on a previous
|
|
67
|
+
// call, so the `settledProps` state is committed by now) — the registry
|
|
68
|
+
// entry is redundant. `syncedTags_` is intentionally retained to detect
|
|
69
|
+
// re-animation staleness. Note that `syncedTags_` and `invalidatedTags_`
|
|
70
|
+
// are disjoint — `update()` moves tags from the former to the latter.
|
|
71
|
+
timestampMap_.erase(viewTag);
|
|
72
|
+
it = updatesRegistry_.erase(it);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
const auto timestampIt = timestampMap_.find(viewTag);
|
|
77
|
+
if (timestampIt == timestampMap_.end()) {
|
|
78
|
+
++it;
|
|
79
|
+
continue;
|
|
80
|
+
}
|
|
81
|
+
const bool isSettled = timestampIt->second < settledTimestamp;
|
|
82
|
+
const auto invalidatedIt = invalidatedTags_.find(viewTag);
|
|
83
|
+
const bool isInvalidated = invalidatedIt != invalidatedTags_.end();
|
|
84
|
+
if (isSettled || isInvalidated) {
|
|
85
|
+
updates.emplace_back(viewTag, std::cref(it->second.second));
|
|
86
|
+
if (isSettled) {
|
|
87
|
+
// Only settled-path tags are tracked as "synced" so that an ongoing
|
|
88
|
+
// animation doesn't re-trigger an invalidation/sync on every GC tick.
|
|
89
|
+
syncedTags_.insert(viewTag);
|
|
90
|
+
}
|
|
91
|
+
if (isInvalidated) {
|
|
92
|
+
// Only erase serviced invalidations; if a tag was invalidated but the
|
|
93
|
+
// matching update batch hasn't been flushed into updatesRegistry_ yet,
|
|
94
|
+
// we leave the entry so the next sync picks it up.
|
|
95
|
+
invalidatedTags_.erase(invalidatedIt);
|
|
96
|
+
}
|
|
57
97
|
}
|
|
98
|
+
++it;
|
|
58
99
|
}
|
|
59
100
|
|
|
60
101
|
const jsi::Array array(rt, updates.size());
|
|
@@ -69,22 +110,11 @@ jsi::Value AnimatedPropsRegistry::getUpdatesOlderThanTimestamp(
|
|
|
69
110
|
return jsi::Value(rt, array);
|
|
70
111
|
}
|
|
71
112
|
|
|
72
|
-
void AnimatedPropsRegistry::removeUpdatesOlderThanTimestamp(const double timestamp) {
|
|
73
|
-
for (auto it = timestampMap_.begin(); it != timestampMap_.end();) {
|
|
74
|
-
const auto viewTag = it->first;
|
|
75
|
-
const auto viewTimestamp = it->second;
|
|
76
|
-
if (viewTimestamp < timestamp) {
|
|
77
|
-
it = timestampMap_.erase(it);
|
|
78
|
-
updatesRegistry_.erase(viewTag);
|
|
79
|
-
} else {
|
|
80
|
-
it++;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
113
|
void AnimatedPropsRegistry::removeTag(const Tag tag) {
|
|
86
114
|
updatesRegistry_.erase(tag);
|
|
87
115
|
timestampMap_.erase(tag);
|
|
116
|
+
syncedTags_.erase(tag);
|
|
117
|
+
invalidatedTags_.erase(tag);
|
|
88
118
|
}
|
|
89
119
|
|
|
90
120
|
} // namespace reanimated
|
|
@@ -4,10 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
#include <react/renderer/uimanager/UIManager.h>
|
|
6
6
|
|
|
7
|
-
#include <memory>
|
|
8
|
-
#include <string>
|
|
9
7
|
#include <unordered_map>
|
|
10
|
-
#include <
|
|
8
|
+
#include <unordered_set>
|
|
11
9
|
|
|
12
10
|
namespace reanimated {
|
|
13
11
|
|
|
@@ -15,13 +13,22 @@ class AnimatedPropsRegistry : public UpdatesRegistry {
|
|
|
15
13
|
public:
|
|
16
14
|
void update(jsi::Runtime &rt, const jsi::Value &operations, double timestamp);
|
|
17
15
|
|
|
18
|
-
///
|
|
19
|
-
|
|
16
|
+
/// Returns updates that settled (received no update since `settledTimestamp`)
|
|
17
|
+
/// or whose synced `settledProps` snapshot was invalidated by a fresh update.
|
|
18
|
+
/// Also evicts entries that have already been synced to React — by the time
|
|
19
|
+
/// of the next call, the corresponding `settledProps` state is guaranteed to
|
|
20
|
+
/// be committed, so the registry entries are redundant.
|
|
21
|
+
jsi::Value collectSettledUpdates(jsi::Runtime &rt, double settledTimestamp);
|
|
20
22
|
|
|
21
23
|
private:
|
|
22
24
|
std::unordered_map<Tag, double> timestampMap_;
|
|
25
|
+
// Tags whose latest values have already been pushed to React `settledProps`.
|
|
26
|
+
// Intentionally retained after eviction to detect re-animation staleness.
|
|
27
|
+
std::unordered_set<Tag> syncedTags_;
|
|
28
|
+
// Tags that were synced to React but received a fresh worklet update since;
|
|
29
|
+
// their `settledProps` are stale and need to be refreshed on the next sync.
|
|
30
|
+
std::unordered_set<Tag> invalidatedTags_;
|
|
23
31
|
|
|
24
|
-
void removeUpdatesOlderThanTimestamp(double timestamp);
|
|
25
32
|
void removeTag(Tag tag) override;
|
|
26
33
|
};
|
|
27
34
|
|
|
@@ -38,6 +38,8 @@ std::optional<MountingTransaction> LayoutAnimationsProxy_Legacy::pullTransaction
|
|
|
38
38
|
std::vector<std::shared_ptr<MutationNode>> roots;
|
|
39
39
|
std::unordered_map<Tag, Tag> movedViews;
|
|
40
40
|
|
|
41
|
+
reconcileContradictedRemovals(mutations, filteredMutations, surfaceId);
|
|
42
|
+
|
|
41
43
|
addOngoingAnimations(surfaceId, filteredMutations);
|
|
42
44
|
|
|
43
45
|
#ifdef ANDROID
|
|
@@ -69,6 +71,40 @@ std::optional<MountingTransaction> LayoutAnimationsProxy_Legacy::pullTransaction
|
|
|
69
71
|
return MountingTransaction{surfaceId, transactionNumber, std::move(filteredMutations), telemetry};
|
|
70
72
|
}
|
|
71
73
|
|
|
74
|
+
// If React re-creates or re-inserts a tag whose exiting removal we are still
|
|
75
|
+
// withholding, it has contradicted that withheld Remove/Delete. Flush it now
|
|
76
|
+
// instead of letting it fire later against a stale hierarchy (which would
|
|
77
|
+
// unmount the wrong, still-live view and crash the mounting layer).
|
|
78
|
+
//
|
|
79
|
+
// This must run before addOngoingAnimations (which would otherwise emit an
|
|
80
|
+
// Update for a tag we are about to Delete this frame) and before
|
|
81
|
+
// parseRemoveMutations, so the rest of the pipeline sees clean bookkeeping.
|
|
82
|
+
void LayoutAnimationsProxy_Legacy::reconcileContradictedRemovals(
|
|
83
|
+
ShadowViewMutationList &mutations,
|
|
84
|
+
ShadowViewMutationList &filteredMutations,
|
|
85
|
+
SurfaceId surfaceId) const {
|
|
86
|
+
auto &[deadNodes] = surfaceContext_[surfaceId];
|
|
87
|
+
for (auto &mutation : mutations) {
|
|
88
|
+
if (mutation.type != ShadowViewMutation::Type::Create && mutation.type != ShadowViewMutation::Type::Insert) {
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
auto tag = mutation.newChildShadowView.tag;
|
|
92
|
+
auto it = nodeForTag_.find(tag);
|
|
93
|
+
// Only a MutationNode represents a withheld removal; a plain Node is just a
|
|
94
|
+
// live parent of some removed child and must be left untouched.
|
|
95
|
+
if (it == nodeForTag_.end() || !it->second->isMutationNode()) {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
auto node = std::static_pointer_cast<MutationNode>(it->second);
|
|
99
|
+
// Flush the withheld Remove/Delete for this tag (and its withheld subtree)
|
|
100
|
+
// right now, mirroring the deadNodes cleanup in handleRemovals. This removes
|
|
101
|
+
// the stale view before React's Create/Insert re-registers the same tag.
|
|
102
|
+
endAnimationsRecursively(node, filteredMutations);
|
|
103
|
+
maybeDropAncestors(node->unflattenedParent, node, filteredMutations);
|
|
104
|
+
deadNodes.erase(node);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
72
108
|
std::optional<SurfaceId> LayoutAnimationsProxy_Legacy::progressLayoutAnimation(int tag, const jsi::Object &newStyle) {
|
|
73
109
|
#ifdef LAYOUT_ANIMATIONS_LOGS
|
|
74
110
|
LOG(INFO) << "progress layout animation for tag " << tag << std::endl;
|
|
@@ -127,7 +163,10 @@ std::optional<SurfaceId> LayoutAnimationsProxy_Legacy::endLayoutAnimation(int ta
|
|
|
127
163
|
}
|
|
128
164
|
|
|
129
165
|
auto node = nodeForTag_[tag];
|
|
130
|
-
|
|
166
|
+
if (!node->isMutationNode()) {
|
|
167
|
+
react_native_assert(false && "exiting tag must map to a MutationNode");
|
|
168
|
+
return {};
|
|
169
|
+
}
|
|
131
170
|
auto mutationNode = std::static_pointer_cast<MutationNode>(node);
|
|
132
171
|
mutationNode->state = ExitingState_Legacy::DEAD;
|
|
133
172
|
auto &[deadNodes] = surfaceContext_[surfaceId];
|
|
@@ -148,6 +148,10 @@ struct LayoutAnimationsProxy_Legacy : public LayoutAnimationsProxyCommon,
|
|
|
148
148
|
std::optional<SurfaceId> endLayoutAnimation(int tag, bool shouldRemove) override;
|
|
149
149
|
void maybeCancelAnimation(const int tag) const;
|
|
150
150
|
|
|
151
|
+
void reconcileContradictedRemovals(
|
|
152
|
+
ShadowViewMutationList &mutations,
|
|
153
|
+
ShadowViewMutationList &filteredMutations,
|
|
154
|
+
SurfaceId surfaceId) const;
|
|
151
155
|
void parseRemoveMutations(
|
|
152
156
|
std::unordered_map<Tag, Tag> &movedViews,
|
|
153
157
|
ShadowViewMutationList &mutations,
|
|
@@ -651,16 +651,14 @@ jsi::Value ReanimatedModuleProxy::getSettledUpdates(jsi::Runtime &rt) {
|
|
|
651
651
|
StaticFeatureFlags::getFlag("FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS") &&
|
|
652
652
|
"getSettledUpdates requires FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS static feature flag to be enabled");
|
|
653
653
|
|
|
654
|
+
constexpr double SETTLED_ANIMATION_THRESHOLD_MS = 1000;
|
|
655
|
+
|
|
654
656
|
// TODO(future): use unified timestamp
|
|
655
657
|
const auto currentTimestamp = getAnimationTimestamp_();
|
|
656
658
|
|
|
657
|
-
// TODO: fix bug when threshold difference is smaller than 1 second
|
|
658
659
|
// TODO(future): flush updates from CSS animations and CSS transitions registries
|
|
659
|
-
// TODO(future): find a better way to obtain timestamp for removing updates
|
|
660
|
-
// TODO(future): move removing old updates to separate method
|
|
661
660
|
auto lock = updatesRegistryManager_->lock();
|
|
662
|
-
return animatedPropsRegistry_->
|
|
663
|
-
rt, currentTimestamp - 1000 /* 1 second */, currentTimestamp - 2000 /* 2 seconds */);
|
|
661
|
+
return animatedPropsRegistry_->collectSettledUpdates(rt, currentTimestamp - SETTLED_ANIMATION_THRESHOLD_MS);
|
|
664
662
|
}
|
|
665
663
|
|
|
666
664
|
bool ReanimatedModuleProxy::handleEvent(
|
package/android/build.gradle.kts
CHANGED
|
@@ -99,6 +99,15 @@ fun validateConflictingFeatureFlags(featureFlags: HashMap<String, String>) {
|
|
|
99
99
|
"[Reanimated] The feature flags `ANDROID_SYNCHRONOUSLY_UPDATE_UI_PROPS` and `ENABLE_SHARED_ELEMENT_TRANSITIONS` cannot be enabled simultaneously. Please disable one of them in your package.json."
|
|
100
100
|
)
|
|
101
101
|
}
|
|
102
|
+
|
|
103
|
+
val useAnimationBackend = featureFlags["USE_ANIMATION_BACKEND"] == "true"
|
|
104
|
+
val forceReactRenderForSettledAnimations = featureFlags["FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS"] == "true"
|
|
105
|
+
|
|
106
|
+
if (useAnimationBackend && forceReactRenderForSettledAnimations) {
|
|
107
|
+
throw GradleException(
|
|
108
|
+
"[Reanimated] The feature flags `USE_ANIMATION_BACKEND` and `FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS` cannot be enabled simultaneously. If you want to use the animation backend, you need to explicitly disable `FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS` feature flag (enabled by default) in your package.json."
|
|
109
|
+
)
|
|
110
|
+
}
|
|
102
111
|
}
|
|
103
112
|
|
|
104
113
|
if (project != rootProject) {
|
|
@@ -4,7 +4,6 @@ import { unprocessColor, unprocessColorsInProps } from "./common/style/processor
|
|
|
4
4
|
import { ReanimatedModule } from './ReanimatedModule';
|
|
5
5
|
const FLUSH_INTERVAL_MS = 500;
|
|
6
6
|
export const PropsRegistryGarbageCollector = {
|
|
7
|
-
viewsCount: 0,
|
|
8
7
|
viewsMap: new Map(),
|
|
9
8
|
intervalId: null,
|
|
10
9
|
registerView(viewTag, component) {
|
|
@@ -17,15 +16,13 @@ export const PropsRegistryGarbageCollector = {
|
|
|
17
16
|
return;
|
|
18
17
|
}
|
|
19
18
|
this.viewsMap.set(viewTag, component);
|
|
20
|
-
this.
|
|
21
|
-
if (this.viewsCount === 1) {
|
|
19
|
+
if (this.viewsMap.size === 1) {
|
|
22
20
|
this.registerInterval();
|
|
23
21
|
}
|
|
24
22
|
},
|
|
25
23
|
unregisterView(viewTag) {
|
|
26
|
-
this.viewsMap.delete(viewTag);
|
|
27
|
-
this.
|
|
28
|
-
if (this.viewsCount === 0) {
|
|
24
|
+
const deleted = this.viewsMap.delete(viewTag);
|
|
25
|
+
if (deleted && this.viewsMap.size === 0) {
|
|
29
26
|
this.unregisterInterval();
|
|
30
27
|
}
|
|
31
28
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["unprocessColor","unprocessColorsInProps","ReanimatedModule","FLUSH_INTERVAL_MS","PropsRegistryGarbageCollector","
|
|
1
|
+
{"version":3,"names":["unprocessColor","unprocessColorsInProps","ReanimatedModule","FLUSH_INTERVAL_MS","PropsRegistryGarbageCollector","viewsMap","Map","intervalId","registerView","viewTag","component","has","set","size","registerInterval","unregisterView","deleted","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,qCAAkC;AAGzC,SAASC,gBAAgB,QAAQ,oBAAoB;AAErD,MAAMC,iBAAiB,GAAG,GAAG;AAE7B,OAAO,MAAMC,6BAA6B,GAAG;EAC3CC,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,IAAI,CAACL,QAAQ,CAACQ,IAAI,KAAK,CAAC,EAAE;MAC5B,IAAI,CAACC,gBAAgB,CAAC,CAAC;IACzB;EACF,CAAC;EAEDC,cAAcA,CAACN,OAAe,EAAE;IAC9B,MAAMO,OAAO,GAAG,IAAI,CAACX,QAAQ,CAACY,MAAM,CAACR,OAAO,CAAC;IAC7C,IAAIO,OAAO,IAAI,IAAI,CAACX,QAAQ,CAACQ,IAAI,KAAK,CAAC,EAAE;MACvC,IAAI,CAACK,kBAAkB,CAAC,CAAC;IAC3B;EACF,CAAC;EAEDC,oBAAoBA,CAAA,EAAG;IACrB,MAAMC,cAAc,GAAGlB,gBAAgB,CAACmB,iBAAiB,CAAC,CAAC;IAC3D,KAAK,MAAM;MAAEZ,OAAO;MAAEa;IAAW,CAAC,IAAIF,cAAc,EAAE;MACpD,IAAIE,UAAU,KAAK,IAAI,EAAE;QACvB;MACF;MACA,MAAMZ,SAAS,GAAG,IAAI,CAACL,QAAQ,CAACkB,GAAG,CAACd,OAAO,CAAC;MAC5Ce,cAAc,CAACF,UAAU,CAAC;MAC1BZ,SAAS,EAAEe,0BAA0B,CAACH,UAAU,CAAC;IACnD;EACF,CAAC;EAEDR,gBAAgBA,CAAA,EAAG;IACjB,IAAI,CAACP,UAAU,GAAGmB,WAAW,CAC3B,IAAI,CAACP,oBAAoB,CAACQ,IAAI,CAAC,IAAI,CAAC,EACpCxB,iBACF,CAAC;EACH,CAAC;EAEDe,kBAAkBA,CAAA,EAAG;IACnB,IAAI,IAAI,CAACX,UAAU,KAAK,IAAI,EAAE;MAC5BqB,aAAa,CAAC,IAAI,CAACrB,UAAU,CAAC;MAC9B,IAAI,CAACA,UAAU,GAAG,IAAI;IACxB;EACF;AACF,CAAC;AAED,SAASiB,cAAcA,CAACK,KAAiB,EAAE;EACzC5B,sBAAsB,CAAC4B,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,EAAEnC,cAAc,CAACiC,SAAS,CAACE,KAAK;IACvC,CAAC,CAAC,CAAC;EACL;AACF","ignoreList":[]}
|
|
@@ -45,7 +45,7 @@ function setPath(obj, path, value) {
|
|
|
45
45
|
}
|
|
46
46
|
export function withStyleAnimation(
|
|
47
47
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
|
-
styleAnimations) {
|
|
48
|
+
styleAnimations, callback) {
|
|
49
49
|
'worklet';
|
|
50
50
|
|
|
51
51
|
return defineAnimation({}, () => {
|
|
@@ -148,7 +148,7 @@ styleAnimations) {
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
};
|
|
151
|
-
const
|
|
151
|
+
const styleAnimationCallback = finished => {
|
|
152
152
|
if (!finished) {
|
|
153
153
|
const animationsToCheck = [styleAnimations];
|
|
154
154
|
while (animationsToCheck.length > 0) {
|
|
@@ -169,6 +169,7 @@ styleAnimations) {
|
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
171
|
}
|
|
172
|
+
callback?.(finished);
|
|
172
173
|
};
|
|
173
174
|
return {
|
|
174
175
|
isHigherOrder: true,
|
|
@@ -176,7 +177,7 @@ styleAnimations) {
|
|
|
176
177
|
onStart,
|
|
177
178
|
current: {},
|
|
178
179
|
styleAnimations,
|
|
179
|
-
callback
|
|
180
|
+
callback: styleAnimationCallback
|
|
180
181
|
};
|
|
181
182
|
});
|
|
182
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ColorProperties","logger","processColor","withTiming","defineAnimation","isValidLayoutAnimationProp","resolvePath","obj","path","keys","Array","isArray","reduce","acc","current","undefined","setPath","value","currObj","i","length","withStyleAnimation","styleAnimations","onFrame","animation","now","stillGoing","entriesToCheck","currentEntry","pop","index","push","concat","key","Object","currentStyleAnimation","finished","
|
|
1
|
+
{"version":3,"names":["ColorProperties","logger","processColor","withTiming","defineAnimation","isValidLayoutAnimationProp","resolvePath","obj","path","keys","Array","isArray","reduce","acc","current","undefined","setPath","value","currObj","i","length","withStyleAnimation","styleAnimations","callback","onFrame","animation","now","stillGoing","entriesToCheck","currentEntry","pop","index","push","concat","key","Object","currentStyleAnimation","finished","isAnimatingColorProp","includes","onStart","previousAnimation","prevAnimation","prevVal","__DEV__","warn","join","propName","trim","currentAnimation","duration","styleAnimationCallback","animationsToCheck","element","values","isHigherOrder"],"sourceRoot":"../../../src","sources":["animation/styleAnimation.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -25,7 +25,7 @@ let id = 0;
|
|
|
25
25
|
if (IS_WEB) {
|
|
26
26
|
configureWebLayoutAnimations();
|
|
27
27
|
}
|
|
28
|
-
const FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS = getStaticFeatureFlag('FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS') && !IS_WEB;
|
|
28
|
+
const FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS = getStaticFeatureFlag('FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS') && !getStaticFeatureFlag('USE_ANIMATION_BACKEND') && !IS_WEB;
|
|
29
29
|
export default class AnimatedComponent extends ReanimatedAnimatedComponent {
|
|
30
30
|
_animatedStyles = [];
|
|
31
31
|
_prevAnimatedStyles = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Fragment","checkStyleOverwriting","maybeBuild","IS_JEST","IS_WEB","logger","LayoutAnimationType","SkipEnteringContext","ReanimatedAnimatedComponent","getStaticFeatureFlag","SharedTransition","configureWebLayoutAnimations","getReducedMotionFromConfig","saveSnapshot","startWebLayoutAnimation","tryActivateLayoutTransition","addHTMLMutationObserver","PropsRegistryGarbageCollector","updateLayoutAnimations","InlinePropManager","jsPropsUpdater","NativeEventsManager","PropsFilter","filterStyles","flattenArray","jsx","_jsx","id","FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS","AnimatedComponent","_animatedStyles","_prevAnimatedStyles","_animatedProps","_prevAnimatedProps","_isFirstRender","jestAnimatedStyle","value","jestAnimatedProps","_InlinePropManager","_PropsFilter","contextType","reanimatedID","constructor","ChildComponent","props","displayName","options","_options","_displayName","state","settledProps","_configureSharedTransition","entering","skipEntering","context","current","_configureLayoutAnimation","ENTERING","componentDidMount","_NativeEventsManager","attachEvents","_updateAnimatedStylesAndProps","attachInlineProps","_getViewInfo","viewTag","getComponentViewTag","registerView","jsProps","length","registerComponent","LAYOUT","layout","EXITING","exiting","_componentDOMRef","element","dummyClone","firstChild","appendChild","callbackV","style","visibility","componentWillUnmount","detachEvents","_detachStyles","detachInlineProps","unregisterView","unregisterComponent","_syncStylePropsBackToReact","setState","viewDescriptors","remove","animatedProp","setNativeProps","_componentRef","_handleAnimatedStylesUpdate","prevStyles","currentStyles","jestAnimatedStyleOrProps","shadowNodeWrapper","newStyles","Set","isStyleAttached","has","hasOneSameStyle","prevStyle","isPresent","some","delete","forEach","add","tag","styleUpdaterContainer","Object","assign","initial","jestAnimatedValues","componentDidUpdate","prevProps","_prevState","snapshot","updateEvents","_updateStyles","filteredStyles","animatedStyles","filteredAnimatedProps","animatedProps","cssStyle","__DEV__","warn","_cssStyle","mergedProps","type","currentConfig","previousConfig","_hasWarnedAboutLayoutAnimationStyleOverwriting","onWarn","useNativeId","sharedTransitionTag","_sharedTransitionTag","SHARED_ELEMENT_TRANSITION_NATIVE_ID","SHARED_ELEMENT_TRANSITION","undefined","sharedTransition","sharedTransitionStyle","_sharedTransition","getSnapshotBeforeUpdate","getBoundingClientRect","render","filteredProps","filterNonAnimatedProps","Array","isArray","concat","nativeID","jestProps","jestInlineStyle","filterOutAnimatedStyles","children","filter","styleElement","map"],"sourceRoot":"../../../src","sources":["createAnimatedComponent/AnimatedComponent.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["Fragment","checkStyleOverwriting","maybeBuild","IS_JEST","IS_WEB","logger","LayoutAnimationType","SkipEnteringContext","ReanimatedAnimatedComponent","getStaticFeatureFlag","SharedTransition","configureWebLayoutAnimations","getReducedMotionFromConfig","saveSnapshot","startWebLayoutAnimation","tryActivateLayoutTransition","addHTMLMutationObserver","PropsRegistryGarbageCollector","updateLayoutAnimations","InlinePropManager","jsPropsUpdater","NativeEventsManager","PropsFilter","filterStyles","flattenArray","jsx","_jsx","id","FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS","AnimatedComponent","_animatedStyles","_prevAnimatedStyles","_animatedProps","_prevAnimatedProps","_isFirstRender","jestAnimatedStyle","value","jestAnimatedProps","_InlinePropManager","_PropsFilter","contextType","reanimatedID","constructor","ChildComponent","props","displayName","options","_options","_displayName","state","settledProps","_configureSharedTransition","entering","skipEntering","context","current","_configureLayoutAnimation","ENTERING","componentDidMount","_NativeEventsManager","attachEvents","_updateAnimatedStylesAndProps","attachInlineProps","_getViewInfo","viewTag","getComponentViewTag","registerView","jsProps","length","registerComponent","LAYOUT","layout","EXITING","exiting","_componentDOMRef","element","dummyClone","firstChild","appendChild","callbackV","style","visibility","componentWillUnmount","detachEvents","_detachStyles","detachInlineProps","unregisterView","unregisterComponent","_syncStylePropsBackToReact","setState","viewDescriptors","remove","animatedProp","setNativeProps","_componentRef","_handleAnimatedStylesUpdate","prevStyles","currentStyles","jestAnimatedStyleOrProps","shadowNodeWrapper","newStyles","Set","isStyleAttached","has","hasOneSameStyle","prevStyle","isPresent","some","delete","forEach","add","tag","styleUpdaterContainer","Object","assign","initial","jestAnimatedValues","componentDidUpdate","prevProps","_prevState","snapshot","updateEvents","_updateStyles","filteredStyles","animatedStyles","filteredAnimatedProps","animatedProps","cssStyle","__DEV__","warn","_cssStyle","mergedProps","type","currentConfig","previousConfig","_hasWarnedAboutLayoutAnimationStyleOverwriting","onWarn","useNativeId","sharedTransitionTag","_sharedTransitionTag","SHARED_ELEMENT_TRANSITION_NATIVE_ID","SHARED_ELEMENT_TRANSITION","undefined","sharedTransition","sharedTransitionStyle","_sharedTransition","getSnapshotBeforeUpdate","getBoundingClientRect","render","filteredProps","filterNonAnimatedProps","Array","isArray","concat","nativeID","jestProps","jestInlineStyle","filterOutAnimatedStyles","children","filter","styleElement","map"],"sourceRoot":"../../../src","sources":["createAnimatedComponent/AnimatedComponent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
import { runOnUISync } from 'react-native-worklets';
|
|
4
|
-
import { withStyleAnimation } from "../animation/index.js";
|
|
4
|
+
import { cancelAnimation, withStyleAnimation } from "../animation/index.js";
|
|
5
5
|
import { SHOULD_BE_USE_WEB } from "../common/index.js";
|
|
6
6
|
import { LayoutAnimationType } from "../commonTypes.js";
|
|
7
7
|
import { getStaticFeatureFlag } from "../featureFlags/index.js";
|
|
@@ -77,8 +77,7 @@ function createLayoutAnimationManager() {
|
|
|
77
77
|
stopObservingProgress(tag, value, scheduleFlush);
|
|
78
78
|
value._value = style.initialValues;
|
|
79
79
|
}
|
|
80
|
-
const animation = withStyleAnimation(currentAnimation
|
|
81
|
-
animation.callback = finished => {
|
|
80
|
+
const animation = withStyleAnimation(currentAnimation, finished => {
|
|
82
81
|
if (finished) {
|
|
83
82
|
currentAnimationForTag.delete(tag);
|
|
84
83
|
mutableValuesForTag.delete(tag);
|
|
@@ -86,9 +85,9 @@ function createLayoutAnimationManager() {
|
|
|
86
85
|
stopObservingProgress(tag, value, scheduleFlush, shouldRemoveView);
|
|
87
86
|
}
|
|
88
87
|
if (style.callback) {
|
|
89
|
-
style.callback(finished
|
|
88
|
+
style.callback(finished);
|
|
90
89
|
}
|
|
91
|
-
};
|
|
90
|
+
});
|
|
92
91
|
startObservingProgress(tag, value, scheduleFlush);
|
|
93
92
|
value.value = animation;
|
|
94
93
|
},
|
|
@@ -97,7 +96,11 @@ function createLayoutAnimationManager() {
|
|
|
97
96
|
if (!value) {
|
|
98
97
|
return;
|
|
99
98
|
}
|
|
100
|
-
|
|
99
|
+
// native already made its cleanup, so we just do cleanup here on JS side
|
|
100
|
+
value.removeListener(tag + TAG_OFFSET);
|
|
101
|
+
cancelAnimation(value);
|
|
102
|
+
currentAnimationForTag.delete(tag);
|
|
103
|
+
mutableValuesForTag.delete(tag);
|
|
101
104
|
}
|
|
102
105
|
};
|
|
103
106
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["runOnUISync","withStyleAnimation","SHOULD_BE_USE_WEB","LayoutAnimationType","getStaticFeatureFlag","makeMutableUI","TAG_OFFSET","USE_ANIMATION_BACKEND","startObservingProgress","tag","sharedValue","scheduleFlush","addListener","global","_notifyAboutProgress","value","stopObservingProgress","removeView","removeListener","_notifyAboutEnd","createLayoutAnimationManager","currentAnimationForTag","Map","mutableValuesForTag","flushRequested","globalThis","requestAnimationFrameFinalizer","_maybeFlushUIUpdatesQueue","start","type","yogaValues","config","style","currentAnimation","animations","previousAnimation","get","set","undefined","initialValues","_value","animation","
|
|
1
|
+
{"version":3,"names":["runOnUISync","cancelAnimation","withStyleAnimation","SHOULD_BE_USE_WEB","LayoutAnimationType","getStaticFeatureFlag","makeMutableUI","TAG_OFFSET","USE_ANIMATION_BACKEND","startObservingProgress","tag","sharedValue","scheduleFlush","addListener","global","_notifyAboutProgress","value","stopObservingProgress","removeView","removeListener","_notifyAboutEnd","createLayoutAnimationManager","currentAnimationForTag","Map","mutableValuesForTag","flushRequested","globalThis","requestAnimationFrameFinalizer","_maybeFlushUIUpdatesQueue","start","type","yogaValues","config","style","currentAnimation","animations","previousAnimation","get","set","undefined","initialValues","_value","animation","finished","delete","shouldRemoveView","EXITING","callback","stop","LayoutAnimationsManager"],"sourceRoot":"../../../src","sources":["layoutReanimation/animationsManager.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { IAnimatedComponentInternal } from './createAnimatedComponent/commonTypes';
|
|
2
2
|
export declare const PropsRegistryGarbageCollector: {
|
|
3
|
-
viewsCount: number;
|
|
4
3
|
viewsMap: Map<number, IAnimatedComponentInternal>;
|
|
5
4
|
intervalId: NodeJS.Timeout | null;
|
|
6
5
|
registerView(viewTag: number, component: IAnimatedComponentInternal): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PropsRegistryGarbageCollector.d.ts","sourceRoot":"","sources":["../../src/PropsRegistryGarbageCollector.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAKxF,eAAO,MAAM,6BAA6B
|
|
1
|
+
{"version":3,"file":"PropsRegistryGarbageCollector.d.ts","sourceRoot":"","sources":["../../src/PropsRegistryGarbageCollector.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAKxF,eAAO,MAAM,6BAA6B;;gBAEpB,MAAM,CAAC,OAAO,GAAG,IAAI;0BAEnB,MAAM,aAAa,0BAA0B;4BAe3C,MAAM;;;;CAgC/B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { AnimatedStyle } from '../commonTypes';
|
|
2
2
|
import type { StyleLayoutAnimation } from './commonTypes';
|
|
3
|
-
export declare function withStyleAnimation(styleAnimations: AnimatedStyle<any
|
|
3
|
+
export declare function withStyleAnimation(styleAnimations: AnimatedStyle<any>, callback?: (finished: boolean) => void): StyleLayoutAnimation;
|
|
4
4
|
//# sourceMappingURL=styleAnimation.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styleAnimation.d.ts","sourceRoot":"","sources":["../../../src/animation/styleAnimation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,aAAa,EAMd,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AA6D1D,wBAAgB,kBAAkB,CAEhC,eAAe,EAAE,aAAa,CAAC,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"styleAnimation.d.ts","sourceRoot":"","sources":["../../../src/animation/styleAnimation.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,aAAa,EAMd,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AA6D1D,wBAAgB,kBAAkB,CAEhC,eAAe,EAAE,aAAa,CAAC,GAAG,CAAC,EACnC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,GACrC,oBAAoB,CA6MtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimatedComponent.d.ts","sourceRoot":"","sources":["../../../src/createAnimatedComponent/AnimatedComponent.tsx"],"names":[],"mappings":"AACA,OAAO,wCAAwC,CAAC;AAEhD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,2BAA2B,MAAM,oCAAoC,CAAC;AAI7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAazE,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,WAAW,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"AnimatedComponent.d.ts","sourceRoot":"","sources":["../../../src/createAnimatedComponent/AnimatedComponent.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animationsManager.d.ts","sourceRoot":"","sources":["../../../src/layoutReanimation/animationsManager.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,4BAA4B,EAG7B,MAAM,gBAAgB,CAAC;AAiCxB,iBAAS,4BAA4B,IAAI;IACvC,KAAK,EAAE,4BAA4B,CAAC;IACpC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B,
|
|
1
|
+
{"version":3,"file":"animationsManager.d.ts","sourceRoot":"","sources":["../../../src/layoutReanimation/animationsManager.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,4BAA4B,EAG7B,MAAM,gBAAgB,CAAC;AAiCxB,iBAAS,4BAA4B,IAAI;IACvC,KAAK,EAAE,4BAA4B,CAAC;IACpC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7B,CAoFA;AAUD,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAC9C,OAAO,4BAA4B,CACpC,CAAC"}
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* version used to build the native part of the library in runtime. Remember to
|
|
4
4
|
* keep this in sync with the version declared in `package.json`
|
|
5
5
|
*/
|
|
6
|
-
export declare const jsVersion = "4.5.
|
|
6
|
+
export declare const jsVersion = "4.5.3";
|
|
7
7
|
//# sourceMappingURL=jsVersion.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-reanimated",
|
|
3
|
-
"version": "4.5.
|
|
3
|
+
"version": "4.5.3",
|
|
4
4
|
"description": "More powerful alternative to Animated library for React Native.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react-native",
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
"react-native": "0.86.0",
|
|
137
137
|
"react-native-svg": "15.15.4",
|
|
138
138
|
"react-native-web": "0.21.1",
|
|
139
|
-
"react-native-worklets": "0.11.
|
|
139
|
+
"react-native-worklets": "0.11.1",
|
|
140
140
|
"react-test-renderer": "19.2.3",
|
|
141
141
|
"typescript": "5.9.3"
|
|
142
142
|
},
|
|
@@ -62,6 +62,13 @@ module ReanimatedUtils
|
|
|
62
62
|
if ios_sync_ui_props && shared_element_transitions
|
|
63
63
|
raise "[Reanimated] The feature flags `IOS_SYNCHRONOUSLY_UPDATE_UI_PROPS` and `ENABLE_SHARED_ELEMENT_TRANSITIONS` cannot be enabled simultaneously. Please disable one of them in your package.json"
|
|
64
64
|
end
|
|
65
|
+
|
|
66
|
+
use_animation_backend = feature_flags['USE_ANIMATION_BACKEND'] == 'true'
|
|
67
|
+
force_react_render_for_settled_animations = feature_flags['FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS'] == 'true'
|
|
68
|
+
|
|
69
|
+
if use_animation_backend && force_react_render_for_settled_animations
|
|
70
|
+
raise "[Reanimated] The feature flags `USE_ANIMATION_BACKEND` and `FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS` cannot be enabled simultaneously. If you want to use the animation backend, you need to explicitly disable `FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS` feature flag (enabled by default) in your package.json"
|
|
71
|
+
end
|
|
65
72
|
end
|
|
66
73
|
|
|
67
74
|
def get_static_feature_flags()
|
|
@@ -11,7 +11,6 @@ import { ReanimatedModule } from './ReanimatedModule';
|
|
|
11
11
|
const FLUSH_INTERVAL_MS = 500;
|
|
12
12
|
|
|
13
13
|
export const PropsRegistryGarbageCollector = {
|
|
14
|
-
viewsCount: 0,
|
|
15
14
|
viewsMap: new Map<number, IAnimatedComponentInternal>(),
|
|
16
15
|
intervalId: null as NodeJS.Timeout | null,
|
|
17
16
|
|
|
@@ -25,16 +24,14 @@ export const PropsRegistryGarbageCollector = {
|
|
|
25
24
|
return;
|
|
26
25
|
}
|
|
27
26
|
this.viewsMap.set(viewTag, component);
|
|
28
|
-
this.
|
|
29
|
-
if (this.viewsCount === 1) {
|
|
27
|
+
if (this.viewsMap.size === 1) {
|
|
30
28
|
this.registerInterval();
|
|
31
29
|
}
|
|
32
30
|
},
|
|
33
31
|
|
|
34
32
|
unregisterView(viewTag: number) {
|
|
35
|
-
this.viewsMap.delete(viewTag);
|
|
36
|
-
this.
|
|
37
|
-
if (this.viewsCount === 0) {
|
|
33
|
+
const deleted = this.viewsMap.delete(viewTag);
|
|
34
|
+
if (deleted && this.viewsMap.size === 0) {
|
|
38
35
|
this.unregisterInterval();
|
|
39
36
|
}
|
|
40
37
|
},
|
|
@@ -73,7 +73,8 @@ interface NestedObjectEntry<T> {
|
|
|
73
73
|
|
|
74
74
|
export function withStyleAnimation(
|
|
75
75
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
76
|
-
styleAnimations: AnimatedStyle<any
|
|
76
|
+
styleAnimations: AnimatedStyle<any>,
|
|
77
|
+
callback?: (finished: boolean) => void
|
|
77
78
|
): StyleLayoutAnimation {
|
|
78
79
|
'worklet';
|
|
79
80
|
return defineAnimation<StyleLayoutAnimation>({}, () => {
|
|
@@ -236,7 +237,7 @@ export function withStyleAnimation(
|
|
|
236
237
|
}
|
|
237
238
|
};
|
|
238
239
|
|
|
239
|
-
const
|
|
240
|
+
const styleAnimationCallback = (finished: boolean): void => {
|
|
240
241
|
if (!finished) {
|
|
241
242
|
const animationsToCheck: NestedObjectValues<AnimationObject>[] = [
|
|
242
243
|
styleAnimations,
|
|
@@ -267,6 +268,7 @@ export function withStyleAnimation(
|
|
|
267
268
|
}
|
|
268
269
|
}
|
|
269
270
|
}
|
|
271
|
+
callback?.(finished);
|
|
270
272
|
};
|
|
271
273
|
|
|
272
274
|
return {
|
|
@@ -275,7 +277,7 @@ export function withStyleAnimation(
|
|
|
275
277
|
onStart,
|
|
276
278
|
current: {},
|
|
277
279
|
styleAnimations,
|
|
278
|
-
callback,
|
|
280
|
+
callback: styleAnimationCallback,
|
|
279
281
|
} as StyleLayoutAnimation;
|
|
280
282
|
});
|
|
281
283
|
}
|
|
@@ -51,7 +51,9 @@ if (IS_WEB) {
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
const FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS =
|
|
54
|
-
getStaticFeatureFlag('FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS') &&
|
|
54
|
+
getStaticFeatureFlag('FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS') &&
|
|
55
|
+
!getStaticFeatureFlag('USE_ANIMATION_BACKEND') &&
|
|
56
|
+
!IS_WEB;
|
|
55
57
|
|
|
56
58
|
export type Options<P> = {
|
|
57
59
|
setNativeProps?: (ref: AnimatedComponentRef, props: P) => void;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { runOnUISync } from 'react-native-worklets';
|
|
4
4
|
|
|
5
|
-
import { withStyleAnimation } from '../animation';
|
|
5
|
+
import { cancelAnimation, withStyleAnimation } from '../animation';
|
|
6
6
|
import { SHOULD_BE_USE_WEB } from '../common';
|
|
7
7
|
import type {
|
|
8
8
|
LayoutAnimation,
|
|
@@ -102,9 +102,7 @@ function createLayoutAnimationManager(): {
|
|
|
102
102
|
value._value = style.initialValues;
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
-
const animation = withStyleAnimation(currentAnimation)
|
|
106
|
-
|
|
107
|
-
animation.callback = (finished?: boolean) => {
|
|
105
|
+
const animation = withStyleAnimation(currentAnimation, (finished) => {
|
|
108
106
|
if (finished) {
|
|
109
107
|
currentAnimationForTag.delete(tag);
|
|
110
108
|
mutableValuesForTag.delete(tag);
|
|
@@ -112,9 +110,9 @@ function createLayoutAnimationManager(): {
|
|
|
112
110
|
stopObservingProgress(tag, value, scheduleFlush, shouldRemoveView);
|
|
113
111
|
}
|
|
114
112
|
if (style.callback) {
|
|
115
|
-
style.callback(finished
|
|
113
|
+
style.callback(finished);
|
|
116
114
|
}
|
|
117
|
-
};
|
|
115
|
+
});
|
|
118
116
|
|
|
119
117
|
startObservingProgress(tag, value, scheduleFlush);
|
|
120
118
|
value.value = animation;
|
|
@@ -124,7 +122,11 @@ function createLayoutAnimationManager(): {
|
|
|
124
122
|
if (!value) {
|
|
125
123
|
return;
|
|
126
124
|
}
|
|
127
|
-
|
|
125
|
+
// native already made its cleanup, so we just do cleanup here on JS side
|
|
126
|
+
value.removeListener(tag + TAG_OFFSET);
|
|
127
|
+
cancelAnimation(value);
|
|
128
|
+
currentAnimationForTag.delete(tag);
|
|
129
|
+
mutableValuesForTag.delete(tag);
|
|
128
130
|
},
|
|
129
131
|
};
|
|
130
132
|
}
|