react-native-smooth-clip-view 0.2.6 → 0.2.8
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/README.md +32 -18
- package/android/build.gradle +15 -0
- package/android/src/main/cpp/SmoothClipAndroid.h +7 -8
- package/android/src/main/cpp/SmoothClipBindings.cpp +11 -7
- package/android/src/main/cpp/SmoothClipRegistry.cpp +139 -137
- package/android/src/main/java/com/smoothclipview/SmoothClipBindings.kt +8 -4
- package/android/src/main/java/com/smoothclipview/SmoothClipView.kt +75 -8
- package/android/src/main/java/com/smoothclipview/SmoothClipViewManager.kt +1 -0
- package/cpp/SmoothClipAnimationCurve.h +92 -0
- package/cpp/SmoothClipVelocityTracker.h +5 -7
- package/ios/SmoothClipRegistry.mm +231 -132
- package/ios/SmoothClipView.mm +56 -150
- package/ios/SmoothClipViewRegistry.h +4 -1
- package/lib/module/driverState.js +8 -0
- package/lib/module/driverState.js.map +1 -1
- package/lib/module/drivers.native.js +27 -6
- package/lib/module/drivers.native.js.map +1 -1
- package/lib/module/reactRequests.js +9 -3
- package/lib/module/reactRequests.js.map +1 -1
- package/lib/typescript/src/driverState.d.ts.map +1 -1
- package/lib/typescript/src/drivers.native.d.ts.map +1 -1
- package/lib/typescript/src/reactRequests.d.ts +3 -1
- package/lib/typescript/src/reactRequests.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/driverState.ts +8 -0
- package/src/drivers.native.ts +31 -7
- package/src/reactRequests.ts +14 -2
package/ios/SmoothClipView.mm
CHANGED
|
@@ -87,14 +87,15 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
87
87
|
BOOL _pendingAnimationInstall;
|
|
88
88
|
CFTimeInterval _animationStartedAt;
|
|
89
89
|
CFTimeInterval _animationDuration;
|
|
90
|
+
// Bumped on every CA install. updateLayoutMetrics captures it on entry so a
|
|
91
|
+
// registry-driven install that happens inside its own lifecycle notification
|
|
92
|
+
// (a latch resume during that very layout pass) is detectable: the local
|
|
93
|
+
// rebuild must then be skipped, because its captured remaining time predates
|
|
94
|
+
// the suspension and would shorten — or zero out — the fresh install.
|
|
95
|
+
uint32_t _animationInstallGeneration;
|
|
90
96
|
smoothclip::TimingAnimation _timingAnimation;
|
|
91
97
|
smoothclip::SpringAnimation _springAnimation;
|
|
92
98
|
SmoothClipAnimationDelegate *_animationDelegate;
|
|
93
|
-
BOOL _animationPaused;
|
|
94
|
-
CGRect _pausedRect;
|
|
95
|
-
CGFloat _pausedRadius;
|
|
96
|
-
CGPoint _pausedContentTranslation;
|
|
97
|
-
CFTimeInterval _pausedRemaining;
|
|
98
99
|
|
|
99
100
|
// 'inherit' velocity samples (normalized geometry, per view); recording/
|
|
100
101
|
// coalescing/projection live in the shared cpp/SmoothClipVelocityTracker.h
|
|
@@ -151,24 +152,16 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
151
152
|
_activeAnimationId = 0;
|
|
152
153
|
_activeAnimationKind = 0;
|
|
153
154
|
_pendingAnimationInstall = NO;
|
|
154
|
-
|
|
155
|
+
_animationInstallGeneration = 0;
|
|
155
156
|
smoothclip::clearVelocitySamples(_velocitySamples);
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
name:UIApplicationWillResignActiveNotification
|
|
160
|
-
object:nil];
|
|
161
|
-
[[NSNotificationCenter defaultCenter]
|
|
162
|
-
addObserver:self
|
|
163
|
-
selector:@selector(applicationDidBecomeActive)
|
|
164
|
-
name:UIApplicationDidBecomeActiveNotification
|
|
165
|
-
object:nil];
|
|
157
|
+
// App-state transitions are observed by the registry itself (see
|
|
158
|
+
// installApplicationStateObservers): the active flag is process-global,
|
|
159
|
+
// so its observer must outlive any individual view.
|
|
166
160
|
}
|
|
167
161
|
return self;
|
|
168
162
|
}
|
|
169
163
|
|
|
170
164
|
- (void)dealloc {
|
|
171
|
-
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
|
172
165
|
if (_driverId != 0) {
|
|
173
166
|
smoothclip::unregisterView(_driverId, self);
|
|
174
167
|
}
|
|
@@ -176,8 +169,8 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
176
169
|
|
|
177
170
|
- (void)didMoveToWindow {
|
|
178
171
|
[super didMoveToWindow];
|
|
179
|
-
if (_driverId != 0
|
|
180
|
-
smoothclip::
|
|
172
|
+
if (_driverId != 0) {
|
|
173
|
+
smoothclip::viewDisplayabilityChanged(_driverId, self);
|
|
181
174
|
}
|
|
182
175
|
}
|
|
183
176
|
|
|
@@ -338,7 +331,6 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
338
331
|
|
|
339
332
|
- (void)smoothClipApplyPresentation:(smoothclip::Presentation)presentation
|
|
340
333
|
recordVelocitySample:(BOOL)recordVelocitySample {
|
|
341
|
-
_animationPaused = NO;
|
|
342
334
|
[self stopLayerAnimationWithoutCallback];
|
|
343
335
|
[self storeRequestedPresentation:presentation];
|
|
344
336
|
[self applyRequestedClip];
|
|
@@ -374,20 +366,26 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
374
366
|
- (BOOL)smoothClipIsJoinable {
|
|
375
367
|
// A view without layout reports zero geometry from
|
|
376
368
|
// smoothClipCurrentPresentation and must not be used as a join reference.
|
|
377
|
-
return _hasLayout
|
|
369
|
+
return _hasLayout && self.bounds.size.width > 0 &&
|
|
370
|
+
self.bounds.size.height > 0;
|
|
378
371
|
}
|
|
379
372
|
|
|
380
373
|
- (BOOL)smoothClipCanDisplay {
|
|
381
374
|
// A CA animation committed while this view's layer tree is detached from
|
|
382
375
|
// the render tree does not survive the later attach commit; installs and
|
|
383
376
|
// latch starts must wait until a frame can actually be produced.
|
|
384
|
-
return
|
|
377
|
+
return [self smoothClipIsJoinable] && self.window != nil &&
|
|
378
|
+
smoothclip::applicationIsActive();
|
|
385
379
|
}
|
|
386
380
|
|
|
387
381
|
- (BOOL)smoothClipHasPendingInstall {
|
|
388
382
|
return _pendingAnimationInstall;
|
|
389
383
|
}
|
|
390
384
|
|
|
385
|
+
- (void)smoothClipClearVelocitySamples {
|
|
386
|
+
smoothclip::clearVelocitySamples(_velocitySamples);
|
|
387
|
+
}
|
|
388
|
+
|
|
391
389
|
- (double)smoothClipSpringContinuationVelocity {
|
|
392
390
|
if (_activeAnimationId == 0 || _activeAnimationKind != 2 ||
|
|
393
391
|
_pendingAnimationInstall) {
|
|
@@ -408,7 +406,6 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
408
406
|
const CGPoint visibleContentTranslation = CGPointMake(
|
|
409
407
|
visible.contentTranslateX,
|
|
410
408
|
visible.contentTranslateY);
|
|
411
|
-
_animationPaused = NO;
|
|
412
409
|
[self stopLayerAnimationWithoutCallback];
|
|
413
410
|
_requestedClip = visibleRect;
|
|
414
411
|
_requestedRadius = visible.clip.radius;
|
|
@@ -416,9 +413,6 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
416
413
|
[self writeLayerRect:visibleRect radius:visible.clip.radius];
|
|
417
414
|
[self writeContentTranslation:visibleContentTranslation];
|
|
418
415
|
[self syncVisibilityForRect:visibleRect];
|
|
419
|
-
[self recordInteractiveRect:visibleRect
|
|
420
|
-
radius:visible.clip.radius
|
|
421
|
-
contentTranslation:visibleContentTranslation];
|
|
422
416
|
return visible;
|
|
423
417
|
}
|
|
424
418
|
|
|
@@ -449,7 +443,6 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
449
443
|
_ignoreAnimationCallback = NO;
|
|
450
444
|
_activeAnimationId = 0;
|
|
451
445
|
_activeAnimationKind = 0;
|
|
452
|
-
_animationPaused = NO;
|
|
453
446
|
_animationDelegate = nil;
|
|
454
447
|
}
|
|
455
448
|
|
|
@@ -638,6 +631,7 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
638
631
|
[layer addAnimation:group forKey:@"smoothClip.geometry"];
|
|
639
632
|
[_contentContainer.layer addAnimation:contentGroup
|
|
640
633
|
forKey:@"smoothClip.content"];
|
|
634
|
+
_animationInstallGeneration += 1;
|
|
641
635
|
}
|
|
642
636
|
|
|
643
637
|
- (BOOL)startAnimationToRequestedGeometryWithDuration:(CFTimeInterval)duration {
|
|
@@ -794,6 +788,7 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
794
788
|
[_clipContainer.layer addAnimation:group forKey:@"smoothClip.geometry"];
|
|
795
789
|
[_contentContainer.layer addAnimation:contentGroup
|
|
796
790
|
forKey:@"smoothClip.content"];
|
|
791
|
+
_animationInstallGeneration += 1;
|
|
797
792
|
return YES;
|
|
798
793
|
}
|
|
799
794
|
|
|
@@ -809,7 +804,6 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
809
804
|
const CGPoint visibleContentTranslation = CGPointMake(
|
|
810
805
|
visible.contentTranslateX,
|
|
811
806
|
visible.contentTranslateY);
|
|
812
|
-
_animationPaused = NO;
|
|
813
807
|
[self stopLayerAnimationWithoutCallback];
|
|
814
808
|
if (useTarget) {
|
|
815
809
|
[self applyRequestedClip];
|
|
@@ -820,68 +814,6 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
820
814
|
[self writeLayerRect:visibleRect radius:visible.clip.radius];
|
|
821
815
|
[self writeContentTranslation:visibleContentTranslation];
|
|
822
816
|
[self syncVisibilityForRect:visibleRect];
|
|
823
|
-
[self recordInteractiveRect:visibleRect
|
|
824
|
-
radius:visible.clip.radius
|
|
825
|
-
contentTranslation:visibleContentTranslation];
|
|
826
|
-
}
|
|
827
|
-
}
|
|
828
|
-
|
|
829
|
-
- (void)applicationWillResignActive {
|
|
830
|
-
if (_activeAnimationId == 0 || _animationPaused) return;
|
|
831
|
-
const double springContinuationVelocity =
|
|
832
|
-
_activeAnimationKind == 2
|
|
833
|
-
? [self smoothClipSpringContinuationVelocity]
|
|
834
|
-
: 0;
|
|
835
|
-
const smoothclip::Presentation visible =
|
|
836
|
-
[self smoothClipCurrentPresentation];
|
|
837
|
-
_pausedRect = CGRectMake(
|
|
838
|
-
visible.clip.x,
|
|
839
|
-
visible.clip.y,
|
|
840
|
-
visible.clip.width,
|
|
841
|
-
visible.clip.height);
|
|
842
|
-
_pausedRadius = visible.clip.radius;
|
|
843
|
-
_pausedContentTranslation = CGPointMake(
|
|
844
|
-
visible.contentTranslateX,
|
|
845
|
-
visible.contentTranslateY);
|
|
846
|
-
_pausedRemaining = MAX(
|
|
847
|
-
0, _animationDuration - (CACurrentMediaTime() - _animationStartedAt));
|
|
848
|
-
if (_activeAnimationKind == 1 && _animationDuration > 0) {
|
|
849
|
-
const double progress = smoothclip::clamp01(
|
|
850
|
-
1 - _pausedRemaining / _animationDuration);
|
|
851
|
-
_timingAnimation =
|
|
852
|
-
smoothclip::timingRemainder(_timingAnimation, progress).animation;
|
|
853
|
-
_pausedRemaining = _timingAnimation.durationMs / 1000.0;
|
|
854
|
-
} else if (_activeAnimationKind == 2) {
|
|
855
|
-
_springAnimation.initialVelocity = springContinuationVelocity;
|
|
856
|
-
_springAnimation.inheritVelocity = false;
|
|
857
|
-
}
|
|
858
|
-
const int32_t animationId = _activeAnimationId;
|
|
859
|
-
const NSInteger animationKind = _activeAnimationKind;
|
|
860
|
-
[self stopLayerAnimationWithoutCallback];
|
|
861
|
-
_activeAnimationId = animationId;
|
|
862
|
-
_activeAnimationKind = animationKind;
|
|
863
|
-
[self writeLayerRect:_pausedRect radius:_pausedRadius];
|
|
864
|
-
[self writeContentTranslation:_pausedContentTranslation];
|
|
865
|
-
_animationPaused = YES;
|
|
866
|
-
}
|
|
867
|
-
|
|
868
|
-
- (void)applicationDidBecomeActive {
|
|
869
|
-
if (!_animationPaused || _activeAnimationId == 0) return;
|
|
870
|
-
_animationPaused = NO;
|
|
871
|
-
SmoothNormalizedClipGeometry target;
|
|
872
|
-
if ([self normalizedRequestedGeometry:&target]) {
|
|
873
|
-
if (_activeAnimationKind == 3) {
|
|
874
|
-
_activeAnimationKind = 1;
|
|
875
|
-
_timingAnimation = {
|
|
876
|
-
_pausedRemaining * 1000.0, 0, 0, 1, 1, 2};
|
|
877
|
-
}
|
|
878
|
-
[self installAnimationFromRect:_pausedRect
|
|
879
|
-
fromRadius:_pausedRadius
|
|
880
|
-
fromContentTranslation:_pausedContentTranslation
|
|
881
|
-
toRect:target.rect
|
|
882
|
-
toRadius:target.radius
|
|
883
|
-
toContentTranslation:_requestedContentTranslation
|
|
884
|
-
duration:_pausedRemaining];
|
|
885
817
|
}
|
|
886
818
|
}
|
|
887
819
|
|
|
@@ -891,7 +823,6 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
891
823
|
if (_ignoreAnimationCallback || animationId != _activeAnimationId) return;
|
|
892
824
|
_activeAnimationId = 0;
|
|
893
825
|
_activeAnimationKind = 0;
|
|
894
|
-
_animationPaused = NO;
|
|
895
826
|
_animationDelegate = nil;
|
|
896
827
|
[self syncVisibilityForRect:_normalizedClip];
|
|
897
828
|
smoothclip::viewAnimationDidStop(
|
|
@@ -941,31 +872,11 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
941
872
|
|
|
942
873
|
- (void)updateLayoutMetrics:(const LayoutMetrics &)layoutMetrics
|
|
943
874
|
oldLayoutMetrics:(const LayoutMetrics &)oldLayoutMetrics {
|
|
944
|
-
if (!_hasLayout && _pendingAnimationInstall && _driverId != 0) {
|
|
945
|
-
// A native animation install arrived before the first layout. Join it now
|
|
946
|
-
// through the registry so it starts from live presentation geometry with
|
|
947
|
-
// the true remaining duration instead of jumping to the target.
|
|
948
|
-
[super updateLayoutMetrics:layoutMetrics oldLayoutMetrics:oldLayoutMetrics];
|
|
949
|
-
_hasLayout = YES;
|
|
950
|
-
[self layoutContentContainer];
|
|
951
|
-
if (self.window == nil) {
|
|
952
|
-
// Still detached (transparentModal subtree before presentation): an
|
|
953
|
-
// install here would not survive the attach commit. Keep the install
|
|
954
|
-
// pending; didMoveToWindow completes it.
|
|
955
|
-
return;
|
|
956
|
-
}
|
|
957
|
-
_pendingAnimationInstall = NO;
|
|
958
|
-
if (!smoothclip::joinActiveAnimation(_driverId, self)) {
|
|
959
|
-
// The animation finished or was cancelled while awaiting layout.
|
|
960
|
-
_activeAnimationId = 0;
|
|
961
|
-
_activeAnimationKind = 0;
|
|
962
|
-
[self applyRequestedClip];
|
|
963
|
-
}
|
|
964
|
-
return;
|
|
965
|
-
}
|
|
966
875
|
CGFloat visibleRadius = 0;
|
|
967
876
|
const BOOL wasAnimating = _activeAnimationId != 0;
|
|
968
|
-
const
|
|
877
|
+
const BOOL wasPending = _pendingAnimationInstall;
|
|
878
|
+
const uint32_t installGenerationAtEntry = _animationInstallGeneration;
|
|
879
|
+
const smoothclip::Presentation visible = wasAnimating && !wasPending
|
|
969
880
|
? [self smoothClipCurrentPresentation]
|
|
970
881
|
: smoothclip::Presentation{{0, 0, 0, 0, 0}, 0, 0};
|
|
971
882
|
const CGRect visibleRect = CGRectMake(
|
|
@@ -982,36 +893,37 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
982
893
|
(CACurrentMediaTime() - _animationStartedAt))
|
|
983
894
|
: 0;
|
|
984
895
|
const double springContinuationVelocity =
|
|
985
|
-
wasAnimating && !
|
|
896
|
+
wasAnimating && !wasPending && _activeAnimationKind == 2
|
|
986
897
|
? [self smoothClipSpringContinuationVelocity]
|
|
987
898
|
: 0;
|
|
988
899
|
|
|
989
900
|
[super updateLayoutMetrics:layoutMetrics oldLayoutMetrics:oldLayoutMetrics];
|
|
990
901
|
_hasLayout = YES;
|
|
991
902
|
[self layoutContentContainer];
|
|
992
|
-
if (
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
if (![self smoothClipCanDisplay])
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
903
|
+
if (_driverId != 0) {
|
|
904
|
+
// Both edges matter: zero size/detach/background suspend an installed
|
|
905
|
+
// participant; the first positive visible layout resumes the held latch.
|
|
906
|
+
smoothclip::viewDisplayabilityChanged(_driverId, self);
|
|
907
|
+
}
|
|
908
|
+
if (wasPending) {
|
|
909
|
+
// The registry either kept the install deferred or installed the rebased
|
|
910
|
+
// latch. Relayout must not independently restart a background-held id.
|
|
911
|
+
if (_activeAnimationId == 0) [self applyRequestedClip];
|
|
912
|
+
return;
|
|
913
|
+
}
|
|
914
|
+
if (wasAnimating) {
|
|
915
|
+
// A negative transition may have frozen this host and re-latched the
|
|
916
|
+
// registry above. Its non-recording freeze is already the correct model
|
|
917
|
+
// state for the new lifecycle; do not resurrect a local timer.
|
|
918
|
+
if (_activeAnimationId == 0 || ![self smoothClipCanDisplay]) return;
|
|
919
|
+
// The lifecycle notification above may itself have installed this
|
|
920
|
+
// animation from the registry's trimmed remainder (a latch resume inside
|
|
921
|
+
// this very layout pass). That install rebased the clocks; the `remaining`
|
|
922
|
+
// captured on entry predates the suspension and would rebuild a shorter —
|
|
923
|
+
// possibly zero-duration — run on top of the fresh one. The id alone
|
|
924
|
+
// cannot detect this (a resume keeps the animation id), so compare the
|
|
925
|
+
// install generation.
|
|
926
|
+
if (_animationInstallGeneration != installGenerationAtEntry) return;
|
|
1015
927
|
const int32_t animationId = _activeAnimationId;
|
|
1016
928
|
const NSInteger animationKind = _activeAnimationKind;
|
|
1017
929
|
[self stopLayerAnimationWithoutCallback];
|
|
@@ -1050,19 +962,14 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
1050
962
|
duration:remaining];
|
|
1051
963
|
}
|
|
1052
964
|
} else {
|
|
965
|
+
if (_driverId != 0 && smoothclip::hasActiveAnimation(_driverId)) {
|
|
966
|
+
// Registry-level lifecycle pause owns the frozen model. A layout pass
|
|
967
|
+
// while its latch is held must not apply the requested target or start a
|
|
968
|
+
// per-view timer; foreground/reattach will normalize and resume it once.
|
|
969
|
+
return;
|
|
970
|
+
}
|
|
1053
971
|
[self applyRequestedClip];
|
|
1054
972
|
}
|
|
1055
|
-
// First layout is the other moment this view can become displayable: when
|
|
1056
|
-
// the window attach ran first, didMoveToWindow saw _hasLayout == NO and did
|
|
1057
|
-
// nothing, and nothing else tells the registry. Android notifies from both
|
|
1058
|
-
// triggers (setViewHostGeometryAndroid and viewBecameDisplayableAndroid);
|
|
1059
|
-
// without this a held latch — including one re-latched by unregisterView
|
|
1060
|
-
// when the last displayable host left — would never start on iOS. Costs one
|
|
1061
|
-
// registry lookup per layout; viewBecameDisplayable returns immediately when
|
|
1062
|
-
// there is no animation to resume.
|
|
1063
|
-
if (_driverId != 0 && [self smoothClipCanDisplay]) {
|
|
1064
|
-
smoothclip::viewBecameDisplayable(_driverId, self);
|
|
1065
|
-
}
|
|
1066
973
|
}
|
|
1067
974
|
|
|
1068
975
|
- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
|
|
@@ -1128,7 +1035,6 @@ static std::array<double, 7> SmoothClipVelocityChannels(
|
|
|
1128
1035
|
}
|
|
1129
1036
|
[self stopLayerAnimationWithoutCallback];
|
|
1130
1037
|
_pendingAnimationInstall = NO;
|
|
1131
|
-
_animationPaused = NO;
|
|
1132
1038
|
smoothclip::clearVelocitySamples(_velocitySamples);
|
|
1133
1039
|
[super prepareForRecycle];
|
|
1134
1040
|
_requestedClip = CGRectZero;
|
|
@@ -23,7 +23,10 @@ bool joinActiveAnimation(uint64_t driverId, SmoothClipView *view);
|
|
|
23
23
|
// A CA animation committed while the host's layer tree is detached (e.g. a
|
|
24
24
|
// transparentModal subtree before its view controller is presented) does not
|
|
25
25
|
// survive the attach commit; installs must therefore wait for this signal.
|
|
26
|
-
void
|
|
26
|
+
void viewDisplayabilityChanged(uint64_t driverId, SmoothClipView *view);
|
|
27
|
+
void applicationWillResignActive();
|
|
28
|
+
void applicationDidBecomeActive();
|
|
29
|
+
bool applicationIsActive();
|
|
27
30
|
void viewAnimationDidStop(
|
|
28
31
|
uint64_t driverId,
|
|
29
32
|
int32_t animationId,
|
|
@@ -24,6 +24,14 @@ export function detachDriverState(state) {
|
|
|
24
24
|
if (statesById.get(state.driverId) === state) {
|
|
25
25
|
statesById.delete(state.driverId);
|
|
26
26
|
}
|
|
27
|
+
// Requests pending at teardown were settled by rejectDriverRequests, but
|
|
28
|
+
// their completion deferrals can no longer be released: the late-scheduled
|
|
29
|
+
// resolver's releaseDriverCompletions no-ops against a detached state. An
|
|
30
|
+
// effect replay reattaches THIS same object, so a stale positive count
|
|
31
|
+
// would queue every future completion forever. The deferrals died with
|
|
32
|
+
// their requests — reset them.
|
|
33
|
+
state.completionDeferrals = 0;
|
|
34
|
+
state.deferredCompletions.length = 0;
|
|
27
35
|
}
|
|
28
36
|
export function createDriverState(driverId, initialPresentation, source, onAnimationComplete, activeAnimationId, ownership) {
|
|
29
37
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["states","WeakMap","statesById","Map","nextDriverId","Date","now","allocateDriverId","Number","isSafeInteger","setDriverState","driver","state","set","attachDriverState","driverId","detachDriverState","get","delete","createDriverState","initialPresentation","source","onAnimationComplete","activeAnimationId","ownership","mountedViews","Set","animationParticipants","failedAnimations","
|
|
1
|
+
{"version":3,"names":["states","WeakMap","statesById","Map","nextDriverId","Date","now","allocateDriverId","Number","isSafeInteger","setDriverState","driver","state","set","attachDriverState","driverId","detachDriverState","get","delete","completionDeferrals","deferredCompletions","length","createDriverState","initialPresentation","source","onAnimationComplete","activeAnimationId","ownership","mountedViews","Set","animationParticipants","failedAnimations","registerDriverView","getDriverState","token","add","animationId","participants","has","snapshotDriverViews","finishDriverAnimation","finished","result","deliverDriverCompletion","push","current","deferDriverCompletions","releaseDriverCompletions","deferred","splice","Error"],"sourceRoot":"../../src","sources":["driverState.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -64,7 +64,14 @@ function animationIsFinite(target, animation) {
|
|
|
64
64
|
return false;
|
|
65
65
|
}
|
|
66
66
|
if (animation.type === 'timing') {
|
|
67
|
-
|
|
67
|
+
const [x1,, x2] = animation.controlPoints;
|
|
68
|
+
return Number.isFinite(animation.duration) && animation.controlPoints.every(Number.isFinite) &&
|
|
69
|
+
// A cubic-bezier easing is only defined for x within [0,1] (the CSS /
|
|
70
|
+
// CoreAnimation / Reanimated Easing.bezier contract). Out-of-range x
|
|
71
|
+
// makes the Android parameter solve meaningless while CoreAnimation
|
|
72
|
+
// silently clamps — reject like any other invalid input instead of
|
|
73
|
+
// diverging per platform.
|
|
74
|
+
x1 >= 0 && x1 <= 1 && x2 >= 0 && x2 <= 1;
|
|
68
75
|
}
|
|
69
76
|
if (animation.type === 'spring') {
|
|
70
77
|
return [animation.mass ?? 1, animation.stiffness ?? 100, animation.damping ?? 10, animation.initialVelocity === 'inherit' ? 0 : animation.initialVelocity ?? 0].every(Number.isFinite);
|
|
@@ -195,6 +202,10 @@ export function useSmoothClipDriver(initialValue, options = {}) {
|
|
|
195
202
|
const animateOnUI = (target, animation) => {
|
|
196
203
|
'worklet';
|
|
197
204
|
|
|
205
|
+
// Cleanup owns the terminal state. Check it before validation so even an
|
|
206
|
+
// invalid stale call cannot mint a native rejection id/completion against
|
|
207
|
+
// a driver whose listener and registry entry are already gone.
|
|
208
|
+
if (disposed.value !== 0) return 0;
|
|
198
209
|
if (!isFiniteClipPresentation(target) || !animationIsFinite(target, animation)) {
|
|
199
210
|
return rejectAnimationHostFunction(driverId);
|
|
200
211
|
}
|
|
@@ -204,7 +215,6 @@ export function useSmoothClipDriver(initialValue, options = {}) {
|
|
|
204
215
|
// rejectAnimation, which would mint an id and a completion for a driver
|
|
205
216
|
// whose JS state is already detached. This is the "unsupported dispatch"
|
|
206
217
|
// arm of the documented 0 contract.
|
|
207
|
-
if (disposed.value !== 0) return 0;
|
|
208
218
|
const from = animation.from;
|
|
209
219
|
if (from !== undefined) {
|
|
210
220
|
// Fused hot write: exactly setScalars(from…) issued immediately
|
|
@@ -255,8 +265,10 @@ export function useSmoothClipDriver(initialValue, options = {}) {
|
|
|
255
265
|
// dispatch. A missing driver is accepted when this call carries the
|
|
256
266
|
// authoritative interactive start above; a start-less missing-state
|
|
257
267
|
// request remains unsupported rather than inventing zero geometry.
|
|
258
|
-
// Validation failures never get here
|
|
259
|
-
// effect with a fresh id and one finished:false completion
|
|
268
|
+
// Validation failures never get here: they reject before any side
|
|
269
|
+
// effect, with a fresh id and one finished:false completion once the
|
|
270
|
+
// native entry exists — in the pre-seed window rejectAnimation has no
|
|
271
|
+
// entry and returns the bare 0 sentinel with no completion instead.
|
|
260
272
|
ownership.value = INTERACTIVE;
|
|
261
273
|
presentation.value = start;
|
|
262
274
|
if (scalarsWereStale) scalarsStale.value = 1;
|
|
@@ -332,10 +344,15 @@ export function useSmoothClipDriver(initialValue, options = {}) {
|
|
|
332
344
|
return promise;
|
|
333
345
|
},
|
|
334
346
|
set(next) {
|
|
347
|
+
// Teardown resolves (undefined) rather than rejects: `set` is a
|
|
348
|
+
// documented fire-and-forget call, and a promise discarded with
|
|
349
|
+
// `void` must not become an unhandled rejection at unmount.
|
|
335
350
|
const {
|
|
336
351
|
requestId,
|
|
337
352
|
promise
|
|
338
|
-
} = createReactRequest(driverId
|
|
353
|
+
} = createReactRequest(driverId, false, {
|
|
354
|
+
value: undefined
|
|
355
|
+
});
|
|
339
356
|
scheduleOnUI(() => {
|
|
340
357
|
'worklet';
|
|
341
358
|
|
|
@@ -345,10 +362,14 @@ export function useSmoothClipDriver(initialValue, options = {}) {
|
|
|
345
362
|
return promise;
|
|
346
363
|
},
|
|
347
364
|
animateTo(target, animation) {
|
|
365
|
+
// Teardown resolves with the documented 0 rejection sentinel (see
|
|
366
|
+
// `set` above): the README's own example voids this promise.
|
|
348
367
|
const {
|
|
349
368
|
requestId,
|
|
350
369
|
promise
|
|
351
|
-
} = createReactRequest(driverId, true
|
|
370
|
+
} = createReactRequest(driverId, true, {
|
|
371
|
+
value: 0
|
|
372
|
+
});
|
|
352
373
|
scheduleOnUI(() => {
|
|
353
374
|
'worklet';
|
|
354
375
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","useSharedValue","isRNRuntime","scheduleOnRN","scheduleOnUI","NativeSmoothClipModule","allocateDriverId","attachDriverState","createDriverState","detachDriverState","getDriverState","setDriverState","completeNativeAnimation","synchronizeNativeCompletion","clipPresentationEquals","createClipPresentation","isFiniteClipPresentation","createReactRequest","rejectDriverRequests","resolveReactRequest","INTERACTIVE","NATIVE","setPresentationHostFunction","setClipPresentation","beginInteractionHostFunction","beginInteraction","animateTimingHostFunction","animateTiming","animateSpringHostFunction","animateSpring","animateKeyframesHostFunction","animateKeyframes","rejectAnimationHostFunction","rejectAnimation","cancelAnimationHostFunction","cancelAnimation","destroyDriverHostFunction","destroyDriver","resolver","globalThis","__smoothClipPinnedResolver","reduceMotionCode","value","animationIsFinite","target","animation","from","undefined","type","Number","isFinite","duration","controlPoints","every","mass","stiffness","damping","initialVelocity","frames","length","previousOffset","frame","offset","presentation","presentationFromNative","values","fallback","clip","x","y","width","height","radius","contentTranslateX","contentTranslateY","flattenedKeyframes","push","uiOnly","Error","useSmoothClipDriver","initialValue","options","initialPresentation","ownership","suppressDeliveries","activeAnimationId","scalarsStale","disposed","callbackRef","onAnimationComplete","driverRef","current","driverId","reduceMotion","seedPresentation","next","beginOnUI","setOnUI","setScalarsOnUI","overridePendingAnimation","animateOnUI","scalarsWereStale","hasInteractiveStart","start","startClip","targetClip","workletGlobal","startedAtMs","__frameTimestamp","_getAnimationTimestamp","NaN","animationId","x1","y1","x2","y2","Math","max","inheritVelocity","cancelOnUI","behavior","driver","kind","ui","set","setScalars","animateTo","cancel","react","requestId","promise","result","currentDriver","state","subscription","onClipAnimationComplete","finished","source","listenerId","nativeDriverId","owner","suppressed","active","stale","gone","setter","last","deliver","addListener","remove","destroy","removeListener"],"sourceRoot":"../../src","sources":["drivers.native.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,cAAc,QAA0B,yBAAyB;AAC1E,SAASC,WAAW,EAAEC,YAAY,EAAEC,YAAY,QAAQ,uBAAuB;AAC/E,OAAOC,sBAAsB,MAAM,oBAAoB;AAUvD,SACEC,gBAAgB,EAChBC,iBAAiB,EACjBC,iBAAiB,EACjBC,iBAAiB,EACjBC,cAAc,EACdC,cAAc,QACT,kBAAe;AACtB,SACEC,uBAAuB,EACvBC,2BAA2B,QACtB,uBAAoB;AAC3B,SACEC,sBAAsB,EACtBC,sBAAsB,EACtBC,wBAAwB,QAGnB,eAAY;AACnB,SACEC,kBAAkB,EAClBC,oBAAoB,EACpBC,mBAAmB,QACd,oBAAiB;AAExB,MAAMC,WAAW,GAAG,CAAC;AACrB,MAAMC,MAAM,GAAG,CAAC;AAEhB,MAAMC,2BAA2B,GAAGjB,sBAAsB,CAACkB,mBAAmB;AAC9E,MAAMC,4BAA4B,GAAGnB,sBAAsB,CAACoB,gBAAgB;;AAE5E;AACA;AACA;AACA;AACA;AACA;;AAIA,MAAMC,yBAEL,GAAGrB,sBAAsB,CAACsB,aAAa;AACxC,MAAMC,yBAEL,GAAGvB,sBAAsB,CAACwB,aAAa;AACxC,MAAMC,4BAEL,GAAGzB,sBAAsB,CAAC0B,gBAAgB;AAC3C,MAAMC,2BAA2B,GAAG3B,sBAAsB,CAAC4B,eAAe;AAC1E,MAAMC,2BAA2B,GAAG7B,sBAAsB,CAAC8B,eAAe;AAC1E,MAAMC,yBAAyB,GAAG/B,sBAAsB,CAACgC,aAAa;;AAEtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAjC,YAAY,CAAEkC,QAAoC,IAAK;EACrD,SAAS;;EACRC,UAAU,CAA6BC,0BAA0B,GAAGF,QAAQ;AAC/E,CAAC,EAAEnB,mBAAmB,CAAC;AAEvB,SAASsB,gBAAgBA,CAACC,KAAuB,EAAU;EACzD,QAAQA,KAAK;IACX,KAAK,QAAQ;MACX,OAAO,CAAC;IACV,KAAK,OAAO;MACV,OAAO,CAAC;IACV;MACE,OAAO,CAAC;EACZ;AACF;AAEA,SAASC,iBAAiBA,CACxBC,MAA8B,EAC9BC,SAA8B,EACrB;EACT,SAAS;;EACT,IACEA,SAAS,CAACC,IAAI,KAAKC,SAAS,IAC5B,CAAC/B,wBAAwB,CAAC6B,SAAS,CAACC,IAAI,CAAC,EACzC;IACA;IACA;IACA,OAAO,KAAK;EACd;EACA,IAAID,SAAS,CAACG,IAAI,KAAK,QAAQ,EAAE;IAC/B,OACEC,MAAM,CAACC,QAAQ,CAACL,SAAS,CAACM,QAAQ,CAAC,IACnCN,SAAS,CAACO,aAAa,CAACC,KAAK,CAACJ,MAAM,CAACC,QAAQ,CAAC;EAElD;EACA,IAAIL,SAAS,CAACG,IAAI,KAAK,QAAQ,EAAE;IAC/B,OAAO,CACLH,SAAS,CAACS,IAAI,IAAI,CAAC,EACnBT,SAAS,CAACU,SAAS,IAAI,GAAG,EAC1BV,SAAS,CAACW,OAAO,IAAI,EAAE,EACvBX,SAAS,CAACY,eAAe,KAAK,SAAS,GACnC,CAAC,GACAZ,SAAS,CAACY,eAAe,IAAI,CAAE,CACrC,CAACJ,KAAK,CAACJ,MAAM,CAACC,QAAQ,CAAC;EAC1B;EACA,IAAI,CAACD,MAAM,CAACC,QAAQ,CAACL,SAAS,CAACM,QAAQ,CAAC,IAAIN,SAAS,CAACa,MAAM,CAACC,MAAM,GAAG,CAAC,EAAE;IACvE,OAAO,KAAK;EACd;EACA,IAAIC,cAAc,GAAG,CAAC,CAAC;EACvB,KAAK,MAAMC,KAAK,IAAIhB,SAAS,CAACa,MAAM,EAAE;IACpC,IACE,CAACT,MAAM,CAACC,QAAQ,CAACW,KAAK,CAACC,MAAM,CAAC,IAC9BD,KAAK,CAACC,MAAM,GAAG,CAAC,IAChBD,KAAK,CAACC,MAAM,GAAG,CAAC,IAChBD,KAAK,CAACC,MAAM,IAAIF,cAAc,IAC9B,CAAC5C,wBAAwB,CAAC6C,KAAK,CAACE,YAAY,CAAC,EAC7C;MACA,OAAO,KAAK;IACd;IACAH,cAAc,GAAGC,KAAK,CAACC,MAAM;EAC/B;EACA,OACEjB,SAAS,CAACa,MAAM,CAAC,CAAC,CAAC,EAAEI,MAAM,KAAK,CAAC,IACjCF,cAAc,KAAK,CAAC,IACpB9C,sBAAsB,CACpB+B,SAAS,CAACa,MAAM,CAACb,SAAS,CAACa,MAAM,CAACC,MAAM,GAAG,CAAC,CAAC,EAAEI,YAAY,IAAI,IAAI,EACnEnB,MACF,CAAC;AAEL;AAEA,SAASoB,sBAAsBA,CAC7BC,MAA6B,EAC7BC,QAAgC,EAChCJ,MAAM,GAAG,CAAC,EACc;EACxB,SAAS;;EACT,IAAIG,MAAM,CAACN,MAAM,GAAGG,MAAM,GAAG,CAAC,EAAE,OAAOI,QAAQ;EAC/C,MAAMH,YAAY,GAAG;IACnBI,IAAI,EAAE;MACJC,CAAC,EAAEH,MAAM,CAACH,MAAM,CAAW;MAC3BO,CAAC,EAAEJ,MAAM,CAACH,MAAM,GAAG,CAAC,CAAW;MAC/BQ,KAAK,EAAEL,MAAM,CAACH,MAAM,GAAG,CAAC,CAAW;MACnCS,MAAM,EAAEN,MAAM,CAACH,MAAM,GAAG,CAAC,CAAW;MACpCU,MAAM,EAAEP,MAAM,CAACH,MAAM,GAAG,CAAC;IAC3B,CAAC;IACDW,iBAAiB,EAAER,MAAM,CAACH,MAAM,GAAG,CAAC,CAAW;IAC/CY,iBAAiB,EAAET,MAAM,CAACH,MAAM,GAAG,CAAC;EACtC,CAAC;EACD,OAAO9C,wBAAwB,CAAC+C,YAAY,CAAC,GAAGA,YAAY,GAAGG,QAAQ;AACzE;AAEA,SAASS,kBAAkBA,CAAC9B,SAAiC,EAAY;EACvE,SAAS;;EACT,MAAMoB,MAAgB,GAAG,EAAE;EAC3B,KAAK,MAAMJ,KAAK,IAAIhB,SAAS,CAACa,MAAM,EAAE;IACpC,MAAM;MAAES,IAAI;MAAEM,iBAAiB;MAAEC;IAAkB,CAAC,GAAGb,KAAK,CAACE,YAAY;IACzEE,MAAM,CAACW,IAAI,CACTf,KAAK,CAACC,MAAM,EACZK,IAAI,CAACC,CAAC,EACND,IAAI,CAACE,CAAC,EACNF,IAAI,CAACG,KAAK,EACVH,IAAI,CAACI,MAAM,EACXJ,IAAI,CAACK,MAAM,EACXC,iBAAiB,EACjBC,iBACF,CAAC;EACH;EACA,OAAOT,MAAM;AACf;AAEA,SAASY,MAAMA,CAAA,EAAU;EACvB,SAAS;;EACT,MAAM,IAAIC,KAAK,CACb,kGACF,CAAC;AACH;AAEA,OAAO,SAASC,mBAAmBA,CACjCC,YAAmD,EACnDC,OAAgC,GAAG,CAAC,CAAC,EACnB;EAClB,MAAMC,mBAAmB,GACvB,MAAM,IAAIF,YAAY,GAClBA,YAAY,GACZjE,sBAAsB,CAACiE,YAAY,CAAC;EAC1C,MAAMjB,YAAY,GAAG9D,cAAc,CAACiF,mBAAmB,CAAC;EACxD,MAAMC,SAAS,GAAGlF,cAAc,CAACmB,WAAW,CAAC;EAC7C,MAAMgE,kBAAkB,GAAGnF,cAAc,CAAC,CAAC,CAAC;EAC5C,MAAMoF,iBAAiB,GAAGpF,cAAc,CAAC,CAAC,CAAC;EAC3C;EACA;EACA;EACA,MAAMqF,YAAY,GAAGrF,cAAc,CAAC,CAAC,CAAC;EACtC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMsF,QAAQ,GAAGtF,cAAc,CAAC,CAAC,CAAC;EAClC,MAAMuF,WAAW,GAAGxF,MAAM,CAACiF,OAAO,CAACQ,mBAAmB,CAAC;EACvD,MAAMC,SAAS,GAAG1F,MAAM,CAA0B,IAAI,CAAC;EACvDwF,WAAW,CAACG,OAAO,GAAGV,OAAO,CAACQ,mBAAmB;EAEjD,IAAIC,SAAS,CAACC,OAAO,KAAK,IAAI,EAAE;IAC9B,MAAMC,QAAQ,GAAGtF,gBAAgB,CAAC,CAAC;IACnC,MAAMuF,YAAY,GAAGpD,gBAAgB,CAACwC,OAAO,CAACY,YAAY,IAAI,QAAQ,CAAC;IAEvE,MAAMC,gBAAgB,GAAIC,IAA4B,IAAK;MACzD,SAAS;;MACT,IAAIjF,sBAAsB,CAACiD,YAAY,CAACrB,KAAK,EAAEqD,IAAI,CAAC,EAAE;MACtDX,kBAAkB,CAAC1C,KAAK,IAAI,CAAC;MAC7BqB,YAAY,CAACrB,KAAK,GAAGqD,IAAI;MACzB;MACA;MACA;MACA;MACA;MACA;MACA,IAAIX,kBAAkB,CAAC1C,KAAK,GAAG,CAAC,EAAE0C,kBAAkB,CAAC1C,KAAK,IAAI,CAAC;IACjE,CAAC;IAED,MAAMsD,SAAS,GAAGA,CAAA,KAA8B;MAC9C,SAAS;;MACT,IAAIT,QAAQ,CAAC7C,KAAK,KAAK,CAAC,EAAE,OAAOqB,YAAY,CAACrB,KAAK;MACnD,MAAMiD,OAAO,GAAG3B,sBAAsB,CACpCxC,4BAA4B,CAACoE,QAAQ,CAAC,EACtC7B,YAAY,CAACrB,KACf,CAAC;MACD2C,iBAAiB,CAAC3C,KAAK,GAAG,CAAC;MAC3ByC,SAAS,CAACzC,KAAK,GAAGtB,WAAW;MAC7BkE,YAAY,CAAC5C,KAAK,GAAG,CAAC;MACtBoD,gBAAgB,CAACH,OAAO,CAAC;MACzB,OAAOA,OAAO;IAChB,CAAC;IAED,MAAMM,OAAO,GAAIF,IAA4B,IAAW;MACtD,SAAS;;MACT,IAAIR,QAAQ,CAAC7C,KAAK,KAAK,CAAC,IAAI,CAAC1B,wBAAwB,CAAC+E,IAAI,CAAC,EAAE;MAC7DV,iBAAiB,CAAC3C,KAAK,GAAG,CAAC;MAC3ByC,SAAS,CAACzC,KAAK,GAAGtB,WAAW;MAC7BkE,YAAY,CAAC5C,KAAK,GAAG,CAAC;MACtB,MAAM;QAAEyB,IAAI;QAAEM,iBAAiB;QAAEC;MAAkB,CAAC,GAAGqB,IAAI;MAC3DzE,2BAA2B,CACzBsE,QAAQ,EACRzB,IAAI,CAACC,CAAC,EACND,IAAI,CAACE,CAAC,EACNF,IAAI,CAACG,KAAK,EACVH,IAAI,CAACI,MAAM,EACXJ,IAAI,CAACK,MAAM,EACXC,iBAAiB,EACjBC,iBAAiB,EACjB,IAAI,EACJ,KACF,CAAC;MACDoB,gBAAgB,CAACC,IAAI,CAAC;IACxB,CAAC;IAED,MAAMG,cAAc,GAAGA,CACrB9B,CAAS,EACTC,CAAS,EACTC,KAAa,EACbC,MAAc,EACdC,MAAc,EACdC,iBAAyB,EACzBC,iBAAyB,EACzByB,wBAAwB,GAAG,KAAK,KACvB;MACT,SAAS;;MACT,IACEZ,QAAQ,CAAC7C,KAAK,KAAK,CAAC,IACpB,CAACO,MAAM,CAACC,QAAQ,CAACkB,CAAC,CAAC,IACnB,CAACnB,MAAM,CAACC,QAAQ,CAACmB,CAAC,CAAC,IACnB,CAACpB,MAAM,CAACC,QAAQ,CAACoB,KAAK,CAAC,IACvB,CAACrB,MAAM,CAACC,QAAQ,CAACqB,MAAM,CAAC,IACxB,CAACtB,MAAM,CAACC,QAAQ,CAACsB,MAAM,CAAC,IACxB,CAACvB,MAAM,CAACC,QAAQ,CAACuB,iBAAiB,CAAC,IACnC,CAACxB,MAAM,CAACC,QAAQ,CAACwB,iBAAiB,CAAC,EACnC;QACA;MACF;MACA,IAAIW,iBAAiB,CAAC3C,KAAK,KAAK,CAAC,EAAE2C,iBAAiB,CAAC3C,KAAK,GAAG,CAAC;MAC9D,IAAIyC,SAAS,CAACzC,KAAK,KAAKtB,WAAW,EAAE+D,SAAS,CAACzC,KAAK,GAAGtB,WAAW;MAClE,IAAIkE,YAAY,CAAC5C,KAAK,KAAK,CAAC,EAAE4C,YAAY,CAAC5C,KAAK,GAAG,CAAC;MACpDpB,2BAA2B,CACzBsE,QAAQ,EACRxB,CAAC,EACDC,CAAC,EACDC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,iBAAiB,EACjBC,iBAAiB,EACjB,IAAI,EACJyB,wBACF,CAAC;IACH,CAAC;IAED,MAAMC,WAAW,GAAGA,CAClBxD,MAA8B,EAC9BC,SAA8B,KACnB;MACX,SAAS;;MACT,IACE,CAAC7B,wBAAwB,CAAC4B,MAAM,CAAC,IACjC,CAACD,iBAAiB,CAACC,MAAM,EAAEC,SAAS,CAAC,EACrC;QACA,OAAOb,2BAA2B,CAAC4D,QAAQ,CAAC;MAC9C;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAIL,QAAQ,CAAC7C,KAAK,KAAK,CAAC,EAAE,OAAO,CAAC;MAElC,MAAMI,IAAI,GAAGD,SAAS,CAACC,IAAI;MAC3B,IAAIA,IAAI,KAAKC,SAAS,EAAE;QACtB;QACA;QACA;QACA;QACA;QACAmD,cAAc,CACZpD,IAAI,CAACqB,IAAI,CAACC,CAAC,EACXtB,IAAI,CAACqB,IAAI,CAACE,CAAC,EACXvB,IAAI,CAACqB,IAAI,CAACG,KAAK,EACfxB,IAAI,CAACqB,IAAI,CAACI,MAAM,EAChBzB,IAAI,CAACqB,IAAI,CAACK,MAAM,EAChB1B,IAAI,CAAC2B,iBAAiB,EACtB3B,IAAI,CAAC4B,iBAAiB,EACtB,IACF,CAAC;MACH;;MAEA;MACA;MACA;MACA;MACA,MAAM2B,gBAAgB,GAAGf,YAAY,CAAC5C,KAAK,KAAK,CAAC;MACjD,MAAM4D,mBAAmB,GACvBnB,SAAS,CAACzC,KAAK,KAAKtB,WAAW,IAAI,CAACiF,gBAAgB;MACtD,MAAME,KAAK,GAAGxC,YAAY,CAACrB,KAAK;MAChCyC,SAAS,CAACzC,KAAK,GAAGrB,MAAM;MACxB0C,YAAY,CAACrB,KAAK,GAAGE,MAAM;MAC3B0C,YAAY,CAAC5C,KAAK,GAAG,CAAC;MACtB,MAAM8D,SAAS,GAAGD,KAAK,CAACpC,IAAI;MAC5B,MAAMsC,UAAU,GAAG7D,MAAM,CAACuB,IAAI;MAC9B;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,MAAMuC,aAAa,GAAGnE,UAGrB;MACD,MAAMoE,WAAW,GACfD,aAAa,CAACE,gBAAgB,KAC7B,OAAOF,aAAa,CAACG,sBAAsB,KAAK,UAAU,GACvDH,aAAa,CAACG,sBAAsB,CAAC,CAAC,GACtC5D,MAAM,CAAC6D,GAAG,CAAC;MACjB,IAAIC,WAAmB;MAEvB,IAAIlE,SAAS,CAACG,IAAI,KAAK,QAAQ,EAAE;QAC/B,MAAM,CAACgE,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,CAAC,GAAGtE,SAAS,CAACO,aAAa;QAChD2D,WAAW,GAAGrF,yBAAyB,CACrCkE,QAAQ,EACRU,mBAAmB,EACnBE,SAAS,CAACpC,CAAC,EACXoC,SAAS,CAACnC,CAAC,EACXmC,SAAS,CAAClC,KAAK,EACfkC,SAAS,CAACjC,MAAM,EAChBiC,SAAS,CAAChC,MAAM,EAChB+B,KAAK,CAAC9B,iBAAiB,EACvB8B,KAAK,CAAC7B,iBAAiB,EACvB+B,UAAU,CAACrC,CAAC,EACZqC,UAAU,CAACpC,CAAC,EACZoC,UAAU,CAACnC,KAAK,EAChBmC,UAAU,CAAClC,MAAM,EACjBkC,UAAU,CAACjC,MAAM,EACjB5B,MAAM,CAAC6B,iBAAiB,EACxB7B,MAAM,CAAC8B,iBAAiB,EACxB0C,IAAI,CAACC,GAAG,CAAC,CAAC,EAAExE,SAAS,CAACM,QAAQ,CAAC,EAC/B6D,EAAE,EACFC,EAAE,EACFC,EAAE,EACFC,EAAE,EACFtB,YAAY,EACZc,WACF,CAAC;MACH,CAAC,MAAM,IAAI9D,SAAS,CAACG,IAAI,KAAK,QAAQ,EAAE;QACtC,MAAMsE,eAAe,GACnBzE,SAAS,CAACY,eAAe,KAAKV,SAAS,IACvCF,SAAS,CAACY,eAAe,KAAK,SAAS;QACzCsD,WAAW,GAAGnF,yBAAyB,CACrCgE,QAAQ,EACRU,mBAAmB,EACnBE,SAAS,CAACpC,CAAC,EACXoC,SAAS,CAACnC,CAAC,EACXmC,SAAS,CAAClC,KAAK,EACfkC,SAAS,CAACjC,MAAM,EAChBiC,SAAS,CAAChC,MAAM,EAChB+B,KAAK,CAAC9B,iBAAiB,EACvB8B,KAAK,CAAC7B,iBAAiB,EACvB+B,UAAU,CAACrC,CAAC,EACZqC,UAAU,CAACpC,CAAC,EACZoC,UAAU,CAACnC,KAAK,EAChBmC,UAAU,CAAClC,MAAM,EACjBkC,UAAU,CAACjC,MAAM,EACjB5B,MAAM,CAAC6B,iBAAiB,EACxB7B,MAAM,CAAC8B,iBAAiB,EACxB0C,IAAI,CAACC,GAAG,CAAC,MAAM,EAAExE,SAAS,CAACS,IAAI,IAAI,CAAC,CAAC,EACrC8D,IAAI,CAACC,GAAG,CAAC,MAAM,EAAExE,SAAS,CAACU,SAAS,IAAI,GAAG,CAAC,EAC5C6D,IAAI,CAACC,GAAG,CAAC,CAAC,EAAExE,SAAS,CAACW,OAAO,IAAI,EAAE,CAAC,EACpC8D,eAAe,GAAG,CAAC,GAAIzE,SAAS,CAACY,eAA0B,EAC3D6D,eAAe,EACfzB,YAAY,EACZc,WACF,CAAC;MACH,CAAC,MAAM;QACLI,WAAW,GAAGjF,4BAA4B,CACxC8D,QAAQ,EACRU,mBAAmB,EACnBE,SAAS,CAACpC,CAAC,EACXoC,SAAS,CAACnC,CAAC,EACXmC,SAAS,CAAClC,KAAK,EACfkC,SAAS,CAACjC,MAAM,EAChBiC,SAAS,CAAChC,MAAM,EAChB+B,KAAK,CAAC9B,iBAAiB,EACvB8B,KAAK,CAAC7B,iBAAiB,EACvB+B,UAAU,CAACrC,CAAC,EACZqC,UAAU,CAACpC,CAAC,EACZoC,UAAU,CAACnC,KAAK,EAChBmC,UAAU,CAAClC,MAAM,EACjBkC,UAAU,CAACjC,MAAM,EACjB5B,MAAM,CAAC6B,iBAAiB,EACxB7B,MAAM,CAAC8B,iBAAiB,EACxB0C,IAAI,CAACC,GAAG,CAAC,CAAC,EAAExE,SAAS,CAACM,QAAQ,CAAC,EAC/BwB,kBAAkB,CAAC9B,SAAS,CAAC,EAC7BgD,YAAY,EACZc,WACF,CAAC;MACH;MACA,IAAII,WAAW,KAAK,CAAC,EAAE;QACrB;QACA;QACA;QACA;QACA;QACA;QACA5B,SAAS,CAACzC,KAAK,GAAGtB,WAAW;QAC7B2C,YAAY,CAACrB,KAAK,GAAG6D,KAAK;QAC1B,IAAIF,gBAAgB,EAAEf,YAAY,CAAC5C,KAAK,GAAG,CAAC;QAC5C2C,iBAAiB,CAAC3C,KAAK,GAAG,CAAC;QAC3B,OAAOV,2BAA2B,CAAC4D,QAAQ,CAAC;MAC9C;MACAP,iBAAiB,CAAC3C,KAAK,GAAGqE,WAAW;MACrC,OAAOA,WAAW;IACpB,CAAC;IAED,MAAMQ,UAAU,GAAGA,CACjBR,WAAW,GAAG,CAAC,EACfS,QAA8B,GAAG,SAAS,KACf;MAC3B,SAAS;;MACT;MACA;MACA;MACA,IAAIjC,QAAQ,CAAC7C,KAAK,KAAK,CAAC,EAAE,OAAOqB,YAAY,CAACrB,KAAK;MACnD,MAAMuB,MAAM,GAAG/B,2BAA2B,CACxC0D,QAAQ,EACRmB,WAAW,EACXS,QAAQ,KAAK,QAAQ,GAAG,CAAC,GAAG,CAC9B,CAAC;MACD,IAAIvD,MAAM,CAACN,MAAM,GAAG,CAAC,IAAIM,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,OAAOF,YAAY,CAACrB,KAAK;MACnE,MAAMiD,OAAO,GAAG3B,sBAAsB,CAACC,MAAM,EAAEF,YAAY,CAACrB,KAAK,EAAE,CAAC,CAAC;MACrE2C,iBAAiB,CAAC3C,KAAK,GAAG,CAAC;MAC3ByC,SAAS,CAACzC,KAAK,GAAGtB,WAAW;MAC7BkE,YAAY,CAAC5C,KAAK,GAAG,CAAC;MACtBoD,gBAAgB,CAACH,OAAO,CAAC;MACzB,OAAOA,OAAO;IAChB,CAAC;IAED,MAAM8B,MAAwB,GAAG;MAC/BC,IAAI,EAAE,QAAQ;MACd3D,YAAY;MACZ4D,EAAE,EAAE;QACFlG,gBAAgBA,CAAA,EAAG;UACjB,SAAS;;UACT,IAAIvB,WAAW,CAAC,CAAC,EAAE,OAAO2E,MAAM,CAAC,CAAC;UAClC,OAAOmB,SAAS,CAAC,CAAC;QACpB,CAAC;QACD4B,GAAGA,CAAC7B,IAAI,EAAE;UACR,SAAS;;UACT,IAAI7F,WAAW,CAAC,CAAC,EAAE,OAAO2E,MAAM,CAAC,CAAC;UAClCoB,OAAO,CAACF,IAAI,CAAC;QACf,CAAC;QACD8B,UAAUA,CACRzD,CAAC,EACDC,CAAC,EACDC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,iBAAiB,EACjBC,iBAAiB,EACjB;UACA,SAAS;;UACT,IAAIxE,WAAW,CAAC,CAAC,EAAE,OAAO2E,MAAM,CAAC,CAAC;UAClCqB,cAAc,CACZ9B,CAAC,EACDC,CAAC,EACDC,KAAK,EACLC,MAAM,EACNC,MAAM,EACNC,iBAAiB,EACjBC,iBACF,CAAC;QACH,CAAC;QACDoD,SAASA,CAAClF,MAAM,EAAEC,SAAS,EAAE;UAC3B,SAAS;;UACT,IAAI3C,WAAW,CAAC,CAAC,EAAE,OAAO2E,MAAM,CAAC,CAAC;UAClC,OAAOuB,WAAW,CAACxD,MAAM,EAAEC,SAAS,CAAC;QACvC,CAAC;QACDkF,MAAMA,CAAChB,WAAW,GAAG,CAAC,EAAES,QAAQ,GAAG,SAAS,EAAE;UAC5C,SAAS;;UACT,IAAItH,WAAW,CAAC,CAAC,EAAE,OAAO2E,MAAM,CAAC,CAAC;UAClC,OAAO0C,UAAU,CAACR,WAAW,EAAES,QAAQ,CAAC;QAC1C;MACF,CAAC;MACDQ,KAAK,EAAE;QACLvG,gBAAgBA,CAAA,EAAG;UACjB,MAAM;YAAEwG,SAAS;YAAEC;UAAQ,CAAC,GAC1BjH,kBAAkB,CAAyB2E,QAAQ,CAAC;UACtDxF,YAAY,CAAC,MAAM;YACjB,SAAS;;YACT,MAAM+H,MAAM,GAAGnC,SAAS,CAAC,CAAC;YAC1B7F,YAAY,CAACgB,mBAAmB,EAAEyE,QAAQ,EAAEqC,SAAS,EAAEE,MAAM,CAAC;UAChE,CAAC,CAAC;UACF,OAAOD,OAAO;QAChB,CAAC;QACDN,GAAGA,CAAC7B,IAAI,EAAE;UACR,MAAM;YAAEkC,SAAS;YAAEC;UAAQ,CAAC,GAAGjH,kBAAkB,CAAO2E,QAAQ,CAAC;UACjExF,YAAY,CAAC,MAAM;YACjB,SAAS;;YACT6F,OAAO,CAACF,IAAI,CAAC;YACb5F,YAAY,CAACgB,mBAAmB,EAAEyE,QAAQ,EAAEqC,SAAS,EAAElF,SAAS,CAAC;UACnE,CAAC,CAAC;UACF,OAAOmF,OAAO;QAChB,CAAC;QACDJ,SAASA,CAAClF,MAAM,EAAEC,SAAS,EAAE;UAC3B,MAAM;YAAEoF,SAAS;YAAEC;UAAQ,CAAC,GAAGjH,kBAAkB,CAC/C2E,QAAQ,EACR,IACF,CAAC;UACDxF,YAAY,CAAC,MAAM;YACjB,SAAS;;YACT,MAAM+H,MAAM,GAAG/B,WAAW,CAACxD,MAAM,EAAEC,SAAS,CAAC;YAC7C1C,YAAY,CACVgB,mBAAmB,EACnByE,QAAQ,EACRqC,SAAS,EACTE,MAAM,EACN,IACF,CAAC;UACH,CAAC,CAAC;UACF,OAAOD,OAAO;QAChB,CAAC;QACDH,MAAMA,CAAChB,WAAW,GAAG,CAAC,EAAES,QAAQ,GAAG,SAAS,EAAE;UAC5C,MAAM;YAAES,SAAS;YAAEC;UAAQ,CAAC,GAC1BjH,kBAAkB,CAAyB2E,QAAQ,EAAE,IAAI,CAAC;UAC5DxF,YAAY,CAAC,MAAM;YACjB,SAAS;;YACT,MAAM+H,MAAM,GAAGZ,UAAU,CAACR,WAAW,EAAES,QAAQ,CAAC;YAChDrH,YAAY,CACVgB,mBAAmB,EACnByE,QAAQ,EACRqC,SAAS,EACTE,MAAM,EACN,IACF,CAAC;UACH,CAAC,CAAC;UACF,OAAOD,OAAO;QAChB;MACF;IACF,CAAC;IAEDvH,cAAc,CACZ8G,MAAM,EACNjH,iBAAiB,CACfoF,QAAQ,EACRV,mBAAmB,EACnBnB,YAAY,EACZyB,WAAW,EACXH,iBAAiB,EACjBF,SACF,CACF,CAAC;IACDO,SAAS,CAACC,OAAO,GAAG8B,MAAM;EAC5B;EAEA,MAAMA,MAAM,GAAG/B,SAAS,CAACC,OAAO;EAEhC5F,SAAS,CAAC,MAAM;IACd,MAAMqI,aAAa,GAAG1C,SAAS,CAACC,OAAO;IACvC,IAAI,CAACyC,aAAa,EAAE,OAAOrF,SAAS;IACpC,MAAMsF,KAAK,GAAG3H,cAAc,CAAC0H,aAAa,CAAC;IAC3C,MAAM;MAAExC;IAAS,CAAC,GAAGyC,KAAK;IAC1B;IACA;IACA;IACA9H,iBAAiB,CAAC8H,KAAK,CAAC;IAExB,MAAMC,YAAY,GAAGjI,sBAAsB,CAACkI,uBAAuB,CAChEJ,MAAM,IAAK;MACV,IAAIA,MAAM,CAACvC,QAAQ,KAAKA,QAAQ,EAAE;MAClC/E,2BAA2B,CACzBwE,iBAAiB,EACjBF,SAAS,EACTgD,MAAM,CAACpB,WAAW,EAClBoB,MAAM,CAACK,QACT,CAAC;MACD5H,uBAAuB,CAACgF,QAAQ,EAAEuC,MAAM,CAACpB,WAAW,EAAEoB,MAAM,CAACK,QAAQ,CAAC;IACxE,CACF,CAAC;IAEDpI,YAAY,CACV,CACEqI,MAA2C,EAC3CC,UAAkB,EAClBC,cAAsB,EACtBC,KAA0B,EAC1BC,UAA+B,EAC/BC,MAA2B,EAC3BC,KAA0B,EAC1BC,IAAyB,EACzBC,MAA0C,KACvC;MACH,SAAS;;MACT;MACA;MACA;MACAD,IAAI,CAACtG,KAAK,GAAG,CAAC;MACd,IAAIwG,IAAmC,GAAG,IAAI;MAC9C,MAAMC,OAAO,GAAIpD,IAA4B,IAAK;QAChD,IACE,CAAC/E,wBAAwB,CAAC+E,IAAI,CAAC,IAC/BjF,sBAAsB,CAACoI,IAAI,EAAEnD,IAAI,CAAC,EAClC;UACA;QACF;QACA;QACA;QACA;QACA,IAAI6C,KAAK,CAAClG,KAAK,KAAKtB,WAAW,EAAE;QACjC,IAAIyH,UAAU,CAACnG,KAAK,GAAG,CAAC,EAAE;UACxBmG,UAAU,CAACnG,KAAK,IAAI,CAAC;UACrBwG,IAAI,GAAGnD,IAAI;UACX;QACF;QACAmD,IAAI,GAAGnD,IAAI;QACX,IAAIgD,KAAK,CAACrG,KAAK,KAAK,CAAC,EAAEqG,KAAK,CAACrG,KAAK,GAAG,CAAC;QACtC,MAAM;UAAEyB,IAAI;UAAEM,iBAAiB;UAAEC;QAAkB,CAAC,GAAGqB,IAAI;QAC3DkD,MAAM,CACJN,cAAc,EACdxE,IAAI,CAACC,CAAC,EACND,IAAI,CAACE,CAAC,EACNF,IAAI,CAACG,KAAK,EACVH,IAAI,CAACI,MAAM,EACXJ,IAAI,CAACK,MAAM,EACXC,iBAAiB,EACjBC,iBAAiB,EACjB,KAAK,EACL,KACF,CAAC;MACH,CAAC;MACD+D,MAAM,CAACW,WAAW,CAACV,UAAU,EAAES,OAAO,CAAC;MACvC;MACA;MACA;MACA;MACA;MACA;MACA,MAAMxD,OAAO,GAAG8C,MAAM,CAAC/F,KAAK;MAC5B,IAAIkG,KAAK,CAAClG,KAAK,KAAKtB,WAAW,IAAIJ,wBAAwB,CAAC2E,OAAO,CAAC,EAAE;QACpEmD,MAAM,CAACpG,KAAK,GAAG,CAAC;QAChBkG,KAAK,CAAClG,KAAK,GAAGtB,WAAW;QACzB2H,KAAK,CAACrG,KAAK,GAAG,CAAC;QACfwG,IAAI,GAAGvD,OAAO;QACdsD,MAAM,CACJN,cAAc,EACdhD,OAAO,CAACxB,IAAI,CAACC,CAAC,EACduB,OAAO,CAACxB,IAAI,CAACE,CAAC,EACdsB,OAAO,CAACxB,IAAI,CAACG,KAAK,EAClBqB,OAAO,CAACxB,IAAI,CAACI,MAAM,EACnBoB,OAAO,CAACxB,IAAI,CAACK,MAAM,EACnBmB,OAAO,CAAClB,iBAAiB,EACzBkB,OAAO,CAACjB,iBAAiB,EACzB,IAAI,EACJ,KACF,CAAC;MACH;IACF,CAAC,EACDX,YAAY,EACZ6B,QAAQ,EACRA,QAAQ,EACRT,SAAS,EACTC,kBAAkB,EAClBC,iBAAiB,EACjBC,YAAY,EACZC,QAAQ,EACRjE,2BACF,CAAC;IAED,OAAO,MAAM;MACXgH,YAAY,CAACe,MAAM,CAAC,CAAC;MACrBnI,oBAAoB,CAAC0E,QAAQ,CAAC;MAC9BnF,iBAAiB,CAAC4H,KAAK,CAAC;MACxBjI,YAAY,CACV,CACEqI,MAA2C,EAC3CC,UAAkB,EAClBC,cAAsB,EACtBC,KAA0B,EAC1BE,MAA2B,EAC3BC,KAA0B,EAC1BF,UAA+B,EAC/BG,IAAyB,EACzBM,OAAyC,KACtC;QACH,SAAS;;QACTb,MAAM,CAACc,cAAc,CAACb,UAAU,CAAC;QACjCY,OAAO,CAACX,cAAc,CAAC;QACvB;QACA;QACA;QACAG,MAAM,CAACpG,KAAK,GAAG,CAAC;QAChBkG,KAAK,CAAClG,KAAK,GAAGtB,WAAW;QACzB2H,KAAK,CAACrG,KAAK,GAAG,CAAC;QACf;QACA;QACA;QACA;QACA;QACAmG,UAAU,CAACnG,KAAK,GAAG,CAAC;QACpB;QACA;QACAsG,IAAI,CAACtG,KAAK,GAAG,CAAC;MAChB,CAAC,EACDqB,YAAY,EACZ6B,QAAQ,EACRA,QAAQ,EACRT,SAAS,EACTE,iBAAiB,EACjBC,YAAY,EACZF,kBAAkB,EAClBG,QAAQ,EACRnD,yBACF,CAAC;IACH,CAAC;EACH,CAAC,EAAE,CACDiD,iBAAiB,EACjBE,QAAQ,EACRJ,SAAS,EACTpB,YAAY,EACZuB,YAAY,EACZF,kBAAkB,CACnB,CAAC;EAEF,OAAOqC,MAAM;AACf","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useSharedValue","isRNRuntime","scheduleOnRN","scheduleOnUI","NativeSmoothClipModule","allocateDriverId","attachDriverState","createDriverState","detachDriverState","getDriverState","setDriverState","completeNativeAnimation","synchronizeNativeCompletion","clipPresentationEquals","createClipPresentation","isFiniteClipPresentation","createReactRequest","rejectDriverRequests","resolveReactRequest","INTERACTIVE","NATIVE","setPresentationHostFunction","setClipPresentation","beginInteractionHostFunction","beginInteraction","animateTimingHostFunction","animateTiming","animateSpringHostFunction","animateSpring","animateKeyframesHostFunction","animateKeyframes","rejectAnimationHostFunction","rejectAnimation","cancelAnimationHostFunction","cancelAnimation","destroyDriverHostFunction","destroyDriver","resolver","globalThis","__smoothClipPinnedResolver","reduceMotionCode","value","animationIsFinite","target","animation","from","undefined","type","x1","x2","controlPoints","Number","isFinite","duration","every","mass","stiffness","damping","initialVelocity","frames","length","previousOffset","frame","offset","presentation","presentationFromNative","values","fallback","clip","x","y","width","height","radius","contentTranslateX","contentTranslateY","flattenedKeyframes","push","uiOnly","Error","useSmoothClipDriver","initialValue","options","initialPresentation","ownership","suppressDeliveries","activeAnimationId","scalarsStale","disposed","callbackRef","onAnimationComplete","driverRef","current","driverId","reduceMotion","seedPresentation","next","beginOnUI","setOnUI","setScalarsOnUI","overridePendingAnimation","animateOnUI","scalarsWereStale","hasInteractiveStart","start","startClip","targetClip","workletGlobal","startedAtMs","__frameTimestamp","_getAnimationTimestamp","NaN","animationId","y1","y2","Math","max","inheritVelocity","cancelOnUI","behavior","driver","kind","ui","set","setScalars","animateTo","cancel","react","requestId","promise","result","currentDriver","state","subscription","onClipAnimationComplete","finished","source","listenerId","nativeDriverId","owner","suppressed","active","stale","gone","setter","last","deliver","addListener","remove","destroy","removeListener"],"sourceRoot":"../../src","sources":["drivers.native.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,7 +4,7 @@ import { deferDriverCompletions, releaseDriverCompletions } from "./driverState.
|
|
|
4
4
|
const requests = new Map();
|
|
5
5
|
const requestsByDriver = new Map();
|
|
6
6
|
let nextRequestId = 0;
|
|
7
|
-
export function createReactRequest(driverId, deferCompletions = false) {
|
|
7
|
+
export function createReactRequest(driverId, deferCompletions = false, teardownResolution) {
|
|
8
8
|
nextRequestId = nextRequestId % 0x7ffffffe + 1;
|
|
9
9
|
const requestId = nextRequestId;
|
|
10
10
|
let resolveRequest;
|
|
@@ -15,7 +15,8 @@ export function createReactRequest(driverId, deferCompletions = false) {
|
|
|
15
15
|
});
|
|
16
16
|
requests.set(requestId, {
|
|
17
17
|
resolve: resolveRequest,
|
|
18
|
-
reject: rejectRequest
|
|
18
|
+
reject: rejectRequest,
|
|
19
|
+
teardownResolution
|
|
19
20
|
});
|
|
20
21
|
const driverRequests = requestsByDriver.get(driverId) ?? new Set();
|
|
21
22
|
driverRequests.add(requestId);
|
|
@@ -43,7 +44,12 @@ export function rejectDriverRequests(driverId) {
|
|
|
43
44
|
for (const requestId of driverRequests) {
|
|
44
45
|
const request = requests.get(requestId);
|
|
45
46
|
requests.delete(requestId);
|
|
46
|
-
|
|
47
|
+
if (!request) continue;
|
|
48
|
+
if (request.teardownResolution) {
|
|
49
|
+
request.resolve(request.teardownResolution.value);
|
|
50
|
+
} else {
|
|
51
|
+
request.reject(new Error('[SmoothClipView] Driver was destroyed.'));
|
|
52
|
+
}
|
|
47
53
|
}
|
|
48
54
|
requestsByDriver.delete(driverId);
|
|
49
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["deferDriverCompletions","releaseDriverCompletions","requests","Map","requestsByDriver","nextRequestId","createReactRequest","driverId","deferCompletions","requestId","resolveRequest","rejectRequest","promise","Promise","resolve","reject","set","driverRequests","get","Set","add","resolveReactRequest","value","releaseCompletions","request","delete","size","queueMicrotask","rejectDriverRequests","Error"],"sourceRoot":"../../src","sources":["reactRequests.ts"],"mappings":";;AAAA,SACEA,sBAAsB,EACtBC,wBAAwB,QACnB,kBAAe;
|
|
1
|
+
{"version":3,"names":["deferDriverCompletions","releaseDriverCompletions","requests","Map","requestsByDriver","nextRequestId","createReactRequest","driverId","deferCompletions","teardownResolution","requestId","resolveRequest","rejectRequest","promise","Promise","resolve","reject","set","driverRequests","get","Set","add","resolveReactRequest","value","releaseCompletions","request","delete","size","queueMicrotask","rejectDriverRequests","Error"],"sourceRoot":"../../src","sources":["reactRequests.ts"],"mappings":";;AAAA,SACEA,sBAAsB,EACtBC,wBAAwB,QACnB,kBAAe;AAYtB,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAAyB,CAAC;AAClD,MAAMC,gBAAgB,GAAG,IAAID,GAAG,CAAsB,CAAC;AACvD,IAAIE,aAAa,GAAG,CAAC;AAErB,OAAO,SAASC,kBAAkBA,CAChCC,QAAgB,EAChBC,gBAAgB,GAAG,KAAK,EACxBC,kBAAuC,EACK;EAC5CJ,aAAa,GAAIA,aAAa,GAAG,UAAU,GAAI,CAAC;EAChD,MAAMK,SAAS,GAAGL,aAAa;EAC/B,IAAIM,cAAmC;EACvC,IAAIC,aAAsC;EAC1C,MAAMC,OAAO,GAAG,IAAIC,OAAO,CAAI,CAACC,OAAO,EAAEC,MAAM,KAAK;IAClDL,cAAc,GAAGI,OAAO;IACxBH,aAAa,GAAGI,MAAM;EACxB,CAAC,CAAC;EACFd,QAAQ,CAACe,GAAG,CAACP,SAAS,EAAE;IACtBK,OAAO,EAAEJ,cAA0C;IACnDK,MAAM,EAAEJ,aAAa;IACrBH;EACF,CAAC,CAAC;EACF,MAAMS,cAAc,GAAGd,gBAAgB,CAACe,GAAG,CAACZ,QAAQ,CAAC,IAAI,IAAIa,GAAG,CAAS,CAAC;EAC1EF,cAAc,CAACG,GAAG,CAACX,SAAS,CAAC;EAC7BN,gBAAgB,CAACa,GAAG,CAACV,QAAQ,EAAEW,cAAc,CAAC;EAC9C,IAAIV,gBAAgB,EAAER,sBAAsB,CAACO,QAAQ,CAAC;EACtD,OAAO;IAAEG,SAAS;IAAEG;EAAQ,CAAC;AAC/B;AAEA,OAAO,SAASS,mBAAmBA,CACjCf,QAAgB,EAChBG,SAAiB,EACjBa,KAAc,EACdC,kBAAkB,GAAG,KAAK,EACpB;EACN,MAAMC,OAAO,GAAGvB,QAAQ,CAACiB,GAAG,CAACT,SAAS,CAAC;EACvCR,QAAQ,CAACwB,MAAM,CAAChB,SAAS,CAAC;EAC1B,MAAMQ,cAAc,GAAGd,gBAAgB,CAACe,GAAG,CAACZ,QAAQ,CAAC;EACrDW,cAAc,EAAEQ,MAAM,CAAChB,SAAS,CAAC;EACjC,IAAIQ,cAAc,EAAES,IAAI,KAAK,CAAC,EAAEvB,gBAAgB,CAACsB,MAAM,CAACnB,QAAQ,CAAC;EACjEkB,OAAO,EAAEV,OAAO,CAACQ,KAAK,CAAC;EACvB,IAAIC,kBAAkB,EAAE;IACtBI,cAAc,CAAC,MAAM3B,wBAAwB,CAACM,QAAQ,CAAC,CAAC;EAC1D;AACF;AAEA,OAAO,SAASsB,oBAAoBA,CAACtB,QAAgB,EAAQ;EAC3D,MAAMW,cAAc,GAAGd,gBAAgB,CAACe,GAAG,CAACZ,QAAQ,CAAC;EACrD,IAAI,CAACW,cAAc,EAAE;EACrB,KAAK,MAAMR,SAAS,IAAIQ,cAAc,EAAE;IACtC,MAAMO,OAAO,GAAGvB,QAAQ,CAACiB,GAAG,CAACT,SAAS,CAAC;IACvCR,QAAQ,CAACwB,MAAM,CAAChB,SAAS,CAAC;IAC1B,IAAI,CAACe,OAAO,EAAE;IACd,IAAIA,OAAO,CAAChB,kBAAkB,EAAE;MAC9BgB,OAAO,CAACV,OAAO,CAACU,OAAO,CAAChB,kBAAkB,CAACc,KAAK,CAAC;IACnD,CAAC,MAAM;MACLE,OAAO,CAACT,MAAM,CAAC,IAAIc,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACrE;EACF;EACA1B,gBAAgB,CAACsB,MAAM,CAACnB,QAAQ,CAAC;AACnC","ignoreList":[]}
|