react-native-screen-transitions 3.13.0-beta.0 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/lib/commonjs/shared/adapters/with-screen-transitions/stack-layout.js +1 -2
- package/lib/commonjs/shared/adapters/with-screen-transitions/stack-layout.js.map +1 -1
- package/lib/commonjs/shared/components/activity/helpers.js +50 -1
- package/lib/commonjs/shared/components/activity/helpers.js.map +1 -1
- package/lib/commonjs/shared/components/activity/variants/activity-screen.js +16 -67
- package/lib/commonjs/shared/components/activity/variants/activity-screen.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/components/boundary-target.js +1 -1
- package/lib/commonjs/shared/components/boundary/components/boundary-target.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/create-boundary-component.js +5 -1
- package/lib/commonjs/shared/components/boundary/create-boundary-component.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js +2 -1
- package/lib/commonjs/shared/components/boundary/hooks/use-measurer.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +8 -0
- package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +3 -4
- package/lib/commonjs/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +1 -6
- package/lib/commonjs/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/portal/teleport.js +1 -13
- package/lib/commonjs/shared/components/boundary/portal/teleport.js.map +1 -1
- package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js +6 -6
- package/lib/commonjs/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
- package/lib/commonjs/shared/components/overlay/helpers/create-overlay-interpolator-frame.js +9 -2
- package/lib/commonjs/shared/components/overlay/helpers/create-overlay-interpolator-frame.js.map +1 -1
- package/lib/commonjs/shared/components/overlay/helpers/get-active-overlay.js +16 -4
- package/lib/commonjs/shared/components/overlay/helpers/get-active-overlay.js.map +1 -1
- package/lib/commonjs/shared/components/overlay/hooks/use-overlay-slot.js +11 -6
- package/lib/commonjs/shared/components/overlay/hooks/use-overlay-slot.js.map +1 -1
- package/lib/commonjs/shared/components/overlay/variations/overlay-host.js +5 -4
- package/lib/commonjs/shared/components/overlay/variations/overlay-host.js.map +1 -1
- package/lib/commonjs/shared/components/screen-container/layers/content.js +1 -3
- package/lib/commonjs/shared/components/screen-container/layers/content.js.map +1 -1
- package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js +8 -6
- package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
- package/lib/commonjs/shared/factories/screen-topology/create-screen-topology.js +147 -0
- package/lib/commonjs/shared/factories/screen-topology/create-screen-topology.js.map +1 -0
- package/lib/commonjs/shared/factories/screen-topology/index.js +45 -0
- package/lib/commonjs/shared/factories/screen-topology/index.js.map +1 -0
- package/lib/commonjs/shared/factories/screen-topology/types.js +2 -0
- package/lib/commonjs/shared/factories/screen-topology/types.js.map +1 -0
- package/lib/commonjs/shared/factories/screen-topology/use-screen-relationships.js +15 -0
- package/lib/commonjs/shared/factories/screen-topology/use-screen-relationships.js.map +1 -0
- package/lib/commonjs/shared/factories/screen-topology/worklet.js +55 -0
- package/lib/commonjs/shared/factories/screen-topology/worklet.js.map +1 -0
- package/lib/commonjs/shared/hooks/navigation/use-screen-state.js.map +1 -1
- package/lib/commonjs/shared/hooks/navigation/use-stack.js +16 -16
- package/lib/commonjs/shared/hooks/navigation/use-stack.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/animation.provider.js +26 -98
- package/lib/commonjs/shared/providers/screen/animation/animation.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +6 -52
- package/lib/commonjs/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js +14 -25
- package/lib/commonjs/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/read-screen-animation-revisions.js +4 -13
- package/lib/commonjs/shared/providers/screen/animation/helpers/read-screen-animation-revisions.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/stack-progress.js +10 -26
- package/lib/commonjs/shared/providers/screen/animation/helpers/stack-progress.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js +0 -1
- package/lib/commonjs/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/index.js +6 -0
- package/lib/commonjs/shared/providers/screen/animation/index.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/animation/use-screen-animation.js +8 -7
- package/lib/commonjs/shared/providers/screen/animation/use-screen-animation.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js +40 -25
- package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +1 -4
- package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/gestures.provider.js +24 -19
- package/lib/commonjs/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/hooks/use-screen-gesture-config.js +3 -3
- package/lib/commonjs/shared/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/hooks/use-screen-gesture.js +2 -3
- package/lib/commonjs/shared/providers/screen/gestures/hooks/use-screen-gesture.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/index.js +8 -2
- package/lib/commonjs/shared/providers/screen/gestures/index.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/ownership/gesture-ownership-bridge.js +11 -18
- package/lib/commonjs/shared/providers/screen/gestures/ownership/gesture-ownership-bridge.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/ownership/resolve-ownership.js +5 -7
- package/lib/commonjs/shared/providers/screen/gestures/ownership/resolve-ownership.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pan/activation/use-pan-activation.js +4 -1
- package/lib/commonjs/shared/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js +5 -8
- package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +5 -4
- package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.js +1 -3
- package/lib/commonjs/shared/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/shared/policy.js +4 -4
- package/lib/commonjs/shared/providers/screen/gestures/shared/policy.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/hooks/slot-resolvers.js +4 -2
- package/lib/commonjs/shared/providers/screen/styles/hooks/slot-resolvers.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +5 -8
- package/lib/commonjs/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/index.js +8 -2
- package/lib/commonjs/shared/providers/screen/styles/index.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/slot.provider.js +17 -19
- package/lib/commonjs/shared/providers/screen/styles/slot.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/use-current-screen-relationships.js +14 -0
- package/lib/commonjs/shared/providers/screen/use-current-screen-relationships.js.map +1 -0
- package/lib/commonjs/shared/providers/stack/blank-stack.provider.js +13 -5
- package/lib/commonjs/shared/providers/stack/blank-stack.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/stack/core.provider.js +1 -3
- package/lib/commonjs/shared/providers/stack/core.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/stack/direct.provider.js +2 -5
- package/lib/commonjs/shared/providers/stack/direct.provider.js.map +1 -1
- package/lib/commonjs/shared/stores/animation.store.js +0 -2
- package/lib/commonjs/shared/stores/animation.store.js.map +1 -1
- package/lib/commonjs/shared/stores/bounds/internals/coordinator.js +23 -9
- package/lib/commonjs/shared/stores/bounds/internals/coordinator.js.map +1 -1
- package/lib/commonjs/shared/stores/bounds/internals/links.js +2 -2
- package/lib/commonjs/shared/stores/bounds/internals/links.js.map +1 -1
- package/lib/commonjs/shared/stores/bounds/internals/state.js +1 -1
- package/lib/commonjs/shared/utils/create-provider.js +51 -100
- package/lib/commonjs/shared/utils/create-provider.js.map +1 -1
- package/lib/module/shared/adapters/with-screen-transitions/stack-layout.js +1 -2
- package/lib/module/shared/adapters/with-screen-transitions/stack-layout.js.map +1 -1
- package/lib/module/shared/components/activity/helpers.js +48 -0
- package/lib/module/shared/components/activity/helpers.js.map +1 -1
- package/lib/module/shared/components/activity/variants/activity-screen.js +17 -68
- package/lib/module/shared/components/activity/variants/activity-screen.js.map +1 -1
- package/lib/module/shared/components/boundary/components/boundary-target.js +2 -2
- package/lib/module/shared/components/boundary/components/boundary-target.js.map +1 -1
- package/lib/module/shared/components/boundary/create-boundary-component.js +6 -2
- package/lib/module/shared/components/boundary/create-boundary-component.js.map +1 -1
- package/lib/module/shared/components/boundary/hooks/use-measurer.js +3 -2
- package/lib/module/shared/components/boundary/hooks/use-measurer.js.map +1 -1
- package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js +8 -0
- package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.js.map +1 -1
- package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js +4 -5
- package/lib/module/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.js.map +1 -1
- package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js +2 -7
- package/lib/module/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.js.map +1 -1
- package/lib/module/shared/components/boundary/portal/teleport.js +1 -14
- package/lib/module/shared/components/boundary/portal/teleport.js.map +1 -1
- package/lib/module/shared/components/boundary/providers/boundary-root.provider.js +5 -6
- package/lib/module/shared/components/boundary/providers/boundary-root.provider.js.map +1 -1
- package/lib/module/shared/components/overlay/helpers/create-overlay-interpolator-frame.js +7 -1
- package/lib/module/shared/components/overlay/helpers/create-overlay-interpolator-frame.js.map +1 -1
- package/lib/module/shared/components/overlay/helpers/get-active-overlay.js +16 -4
- package/lib/module/shared/components/overlay/helpers/get-active-overlay.js.map +1 -1
- package/lib/module/shared/components/overlay/hooks/use-overlay-slot.js +12 -7
- package/lib/module/shared/components/overlay/hooks/use-overlay-slot.js.map +1 -1
- package/lib/module/shared/components/overlay/variations/overlay-host.js +7 -6
- package/lib/module/shared/components/overlay/variations/overlay-host.js.map +1 -1
- package/lib/module/shared/components/screen-container/layers/content.js +2 -3
- package/lib/module/shared/components/screen-container/layers/content.js.map +1 -1
- package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js +9 -7
- package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
- package/lib/module/shared/factories/screen-topology/create-screen-topology.js +142 -0
- package/lib/module/shared/factories/screen-topology/create-screen-topology.js.map +1 -0
- package/lib/module/shared/factories/screen-topology/index.js +6 -0
- package/lib/module/shared/factories/screen-topology/index.js.map +1 -0
- package/lib/module/shared/factories/screen-topology/types.js +2 -0
- package/lib/module/shared/factories/screen-topology/types.js.map +1 -0
- package/lib/module/shared/factories/screen-topology/use-screen-relationships.js +10 -0
- package/lib/module/shared/factories/screen-topology/use-screen-relationships.js.map +1 -0
- package/lib/module/shared/factories/screen-topology/worklet.js +48 -0
- package/lib/module/shared/factories/screen-topology/worklet.js.map +1 -0
- package/lib/module/shared/hooks/navigation/use-screen-state.js.map +1 -1
- package/lib/module/shared/hooks/navigation/use-stack.js +17 -18
- package/lib/module/shared/hooks/navigation/use-stack.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/animation.provider.js +25 -98
- package/lib/module/shared/providers/screen/animation/animation.provider.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js +6 -52
- package/lib/module/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/pipeline.js +16 -27
- package/lib/module/shared/providers/screen/animation/helpers/pipeline.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/read-screen-animation-revisions.js +4 -13
- package/lib/module/shared/providers/screen/animation/helpers/read-screen-animation-revisions.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/stack-progress.js +9 -24
- package/lib/module/shared/providers/screen/animation/helpers/stack-progress.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js +0 -1
- package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/index.js +1 -1
- package/lib/module/shared/providers/screen/animation/index.js.map +1 -1
- package/lib/module/shared/providers/screen/animation/use-screen-animation.js +9 -8
- package/lib/module/shared/providers/screen/animation/use-screen-animation.js.map +1 -1
- package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js +43 -27
- package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
- package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js +1 -4
- package/lib/module/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/gestures.provider.js +21 -17
- package/lib/module/shared/providers/screen/gestures/gestures.provider.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/hooks/use-screen-gesture-config.js +3 -3
- package/lib/module/shared/providers/screen/gestures/hooks/use-screen-gesture-config.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/hooks/use-screen-gesture.js +3 -4
- package/lib/module/shared/providers/screen/gestures/hooks/use-screen-gesture.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/index.js +1 -1
- package/lib/module/shared/providers/screen/gestures/index.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/ownership/gesture-ownership-bridge.js +13 -20
- package/lib/module/shared/providers/screen/gestures/ownership/gesture-ownership-bridge.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/ownership/resolve-ownership.js +5 -7
- package/lib/module/shared/providers/screen/gestures/ownership/resolve-ownership.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pan/activation/use-pan-activation.js +4 -1
- package/lib/module/shared/providers/screen/gestures/pan/activation/use-pan-activation.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js +4 -8
- package/lib/module/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js +7 -6
- package/lib/module/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.js +1 -3
- package/lib/module/shared/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/shared/policy.js +4 -4
- package/lib/module/shared/providers/screen/gestures/shared/policy.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/hooks/slot-resolvers.js +5 -3
- package/lib/module/shared/providers/screen/styles/hooks/slot-resolvers.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js +5 -8
- package/lib/module/shared/providers/screen/styles/hooks/use-interpolated-style-maps.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/index.js +1 -1
- package/lib/module/shared/providers/screen/styles/index.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/slot.provider.js +14 -16
- package/lib/module/shared/providers/screen/styles/slot.provider.js.map +1 -1
- package/lib/module/shared/providers/screen/use-current-screen-relationships.js +9 -0
- package/lib/module/shared/providers/screen/use-current-screen-relationships.js.map +1 -0
- package/lib/module/shared/providers/stack/blank-stack.provider.js +12 -5
- package/lib/module/shared/providers/stack/blank-stack.provider.js.map +1 -1
- package/lib/module/shared/providers/stack/core.provider.js +1 -3
- package/lib/module/shared/providers/stack/core.provider.js.map +1 -1
- package/lib/module/shared/providers/stack/direct.provider.js +2 -5
- package/lib/module/shared/providers/stack/direct.provider.js.map +1 -1
- package/lib/module/shared/stores/animation.store.js +0 -2
- package/lib/module/shared/stores/animation.store.js.map +1 -1
- package/lib/module/shared/stores/bounds/internals/coordinator.js +18 -4
- package/lib/module/shared/stores/bounds/internals/coordinator.js.map +1 -1
- package/lib/module/shared/stores/bounds/internals/links.js +1 -1
- package/lib/module/shared/stores/bounds/internals/links.js.map +1 -1
- package/lib/module/shared/stores/bounds/internals/state.js +1 -1
- package/lib/module/shared/utils/create-provider.js +51 -100
- package/lib/module/shared/utils/create-provider.js.map +1 -1
- package/lib/typescript/native-stack/views/useHeaderConfigProps.d.ts +1 -1
- package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts.map +1 -1
- package/lib/typescript/shared/components/activity/helpers.d.ts +16 -0
- package/lib/typescript/shared/components/activity/helpers.d.ts.map +1 -1
- package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts +2 -4
- package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/create-boundary-component.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/hooks/use-measurer.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts +2 -1
- package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/portal/components/boundary-portal/hooks/use-placeholder-styles.d.ts +2 -2
- package/lib/typescript/shared/components/boundary/portal/teleport.d.ts +1 -1
- package/lib/typescript/shared/components/boundary/portal/teleport.d.ts.map +1 -1
- package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts +3 -0
- package/lib/typescript/shared/components/boundary/providers/boundary-root.provider.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/helpers/create-overlay-interpolator-frame.d.ts +1 -0
- package/lib/typescript/shared/components/overlay/helpers/create-overlay-interpolator-frame.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/helpers/get-active-overlay.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/hooks/use-overlay-slot.d.ts +3 -2
- package/lib/typescript/shared/components/overlay/hooks/use-overlay-slot.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-container/layers/content.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-lifecycle/hooks/use-close-transition-intent.d.ts +1 -1
- package/lib/typescript/shared/components/screen-lifecycle/hooks/use-close-transition-intent.d.ts.map +1 -1
- package/lib/typescript/shared/factories/screen-topology/create-screen-topology.d.ts +4 -0
- package/lib/typescript/shared/factories/screen-topology/create-screen-topology.d.ts.map +1 -0
- package/lib/typescript/shared/factories/screen-topology/index.d.ts +5 -0
- package/lib/typescript/shared/factories/screen-topology/index.d.ts.map +1 -0
- package/lib/typescript/shared/factories/screen-topology/types.d.ts +20 -0
- package/lib/typescript/shared/factories/screen-topology/types.d.ts.map +1 -0
- package/lib/typescript/shared/factories/screen-topology/use-screen-relationships.d.ts +5 -0
- package/lib/typescript/shared/factories/screen-topology/use-screen-relationships.d.ts.map +1 -0
- package/lib/typescript/shared/factories/screen-topology/worklet.d.ts +5 -0
- package/lib/typescript/shared/factories/screen-topology/worklet.d.ts.map +1 -0
- package/lib/typescript/shared/hooks/navigation/use-screen-state.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/navigation/use-stack.d.ts +2 -0
- package/lib/typescript/shared/hooks/navigation/use-stack.d.ts.map +1 -1
- package/lib/typescript/shared/index.d.ts +0 -6
- package/lib/typescript/shared/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/animation.provider.d.ts +14 -12
- package/lib/typescript/shared/providers/screen/animation/animation.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.d.ts +4 -4
- package/lib/typescript/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/types.d.ts +0 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/hydrate-transition-state/types.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/pipeline.d.ts +1 -2
- package/lib/typescript/shared/providers/screen/animation/helpers/pipeline.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/read-screen-animation-revisions.d.ts +2 -2
- package/lib/typescript/shared/providers/screen/animation/helpers/read-screen-animation-revisions.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/stack-progress.d.ts +5 -2
- package/lib/typescript/shared/providers/screen/animation/helpers/stack-progress.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts +0 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/use-build-transition-state.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/index.d.ts +1 -1
- package/lib/typescript/shared/providers/screen/animation/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/animation/types.d.ts +1 -13
- package/lib/typescript/shared/providers/screen/animation/types.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts +5 -2
- package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts +1 -4
- package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/gestures.provider.d.ts +16 -4
- package/lib/typescript/shared/providers/screen/gestures/gestures.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/hooks/use-screen-gesture-config.d.ts +2 -2
- package/lib/typescript/shared/providers/screen/gestures/hooks/use-screen-gesture-config.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/hooks/use-screen-gesture.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/index.d.ts +1 -1
- package/lib/typescript/shared/providers/screen/gestures/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/ownership/gesture-ownership-bridge.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/ownership/resolve-ownership.d.ts +2 -3
- package/lib/typescript/shared/providers/screen/gestures/ownership/resolve-ownership.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pan/activation/use-pan-activation.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.d.ts +5 -3
- package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.d.ts +2 -2
- package/lib/typescript/shared/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/shared/policy.d.ts +3 -3
- package/lib/typescript/shared/providers/screen/gestures/shared/policy.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/types.d.ts +4 -2
- package/lib/typescript/shared/providers/screen/gestures/types.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/hooks/slot-resolvers.d.ts +4 -4
- package/lib/typescript/shared/providers/screen/styles/hooks/slot-resolvers.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/hooks/use-interpolated-style-maps.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +2 -2
- package/lib/typescript/shared/providers/screen/styles/index.d.ts +1 -1
- package/lib/typescript/shared/providers/screen/styles/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts +9 -4
- package/lib/typescript/shared/providers/screen/styles/slot.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/use-current-screen-relationships.d.ts +5 -0
- package/lib/typescript/shared/providers/screen/use-current-screen-relationships.d.ts.map +1 -0
- package/lib/typescript/shared/providers/stack/blank-stack.provider.d.ts +4 -1
- package/lib/typescript/shared/providers/stack/blank-stack.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/stack/core.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/stack/direct.provider.d.ts.map +1 -1
- package/lib/typescript/shared/stores/animation.store.d.ts +0 -1
- package/lib/typescript/shared/stores/animation.store.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds/internals/coordinator.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds/internals/links.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds/internals/state.d.ts +1 -1
- package/lib/typescript/shared/stores/bounds/internals/state.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds/types.d.ts +0 -1
- package/lib/typescript/shared/stores/bounds/types.d.ts.map +1 -1
- package/lib/typescript/shared/types/providers/blank-stack-provider.types.d.ts +1 -0
- package/lib/typescript/shared/types/providers/blank-stack-provider.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/screen.types.d.ts +0 -9
- package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
- package/lib/typescript/shared/utils/create-provider.d.ts +24 -24
- package/lib/typescript/shared/utils/create-provider.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/shared/adapters/with-screen-transitions/stack-layout.tsx +1 -2
- package/src/shared/components/activity/helpers.ts +59 -0
- package/src/shared/components/activity/variants/activity-screen.tsx +28 -93
- package/src/shared/components/boundary/components/boundary-target.tsx +2 -2
- package/src/shared/components/boundary/create-boundary-component.tsx +10 -2
- package/src/shared/components/boundary/hooks/use-measurer.ts +3 -2
- package/src/shared/components/boundary/portal/components/boundary-content-portal/helpers/active-handoff-receiver.ts +22 -0
- package/src/shared/components/boundary/portal/components/boundary-content-portal/hooks/use-boundary-content-portal-attachment.ts +7 -3
- package/src/shared/components/boundary/portal/components/boundary-portal/hooks/use-boundary-portal-attachment.ts +2 -6
- package/src/shared/components/boundary/portal/teleport.ts +2 -23
- package/src/shared/components/boundary/providers/boundary-root.provider.tsx +10 -6
- package/src/shared/components/overlay/helpers/create-overlay-interpolator-frame.ts +14 -1
- package/src/shared/components/overlay/helpers/get-active-overlay.ts +29 -4
- package/src/shared/components/overlay/hooks/use-overlay-slot.ts +26 -8
- package/src/shared/components/overlay/variations/overlay-host.tsx +11 -6
- package/src/shared/components/screen-container/layers/content.tsx +3 -4
- package/src/shared/components/screen-lifecycle/hooks/use-close-transition-intent.ts +8 -12
- package/src/shared/factories/screen-topology/create-screen-topology.ts +199 -0
- package/src/shared/factories/screen-topology/index.ts +16 -0
- package/src/shared/factories/screen-topology/types.ts +22 -0
- package/src/shared/factories/screen-topology/use-screen-relationships.ts +15 -0
- package/src/shared/factories/screen-topology/worklet.ts +60 -0
- package/src/shared/hooks/navigation/use-screen-state.ts +2 -7
- package/src/shared/hooks/navigation/use-stack.tsx +28 -31
- package/src/shared/providers/screen/animation/animation.provider.tsx +73 -212
- package/src/shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.ts +10 -81
- package/src/shared/providers/screen/animation/helpers/hydrate-transition-state/types.ts +0 -1
- package/src/shared/providers/screen/animation/helpers/pipeline.ts +45 -70
- package/src/shared/providers/screen/animation/helpers/read-screen-animation-revisions.ts +6 -30
- package/src/shared/providers/screen/animation/helpers/stack-progress.ts +13 -32
- package/src/shared/providers/screen/animation/helpers/use-build-transition-state.ts +0 -2
- package/src/shared/providers/screen/animation/index.tsx +1 -0
- package/src/shared/providers/screen/animation/types.ts +1 -23
- package/src/shared/providers/screen/animation/use-screen-animation.tsx +10 -14
- package/src/shared/providers/screen/descriptors/descriptors.provider.tsx +56 -35
- package/src/shared/providers/screen/descriptors/helpers/derive-descriptor-derivations.ts +0 -6
- package/src/shared/providers/screen/gestures/gestures.provider.tsx +96 -85
- package/src/shared/providers/screen/gestures/hooks/use-screen-gesture-config.ts +4 -4
- package/src/shared/providers/screen/gestures/hooks/use-screen-gesture.ts +3 -4
- package/src/shared/providers/screen/gestures/index.tsx +2 -1
- package/src/shared/providers/screen/gestures/ownership/gesture-ownership-bridge.tsx +16 -29
- package/src/shared/providers/screen/gestures/ownership/resolve-ownership.ts +5 -8
- package/src/shared/providers/screen/gestures/pan/activation/use-pan-activation.ts +2 -3
- package/src/shared/providers/screen/gestures/scroll-coordination/scroll-metadata-owner.tsx +6 -9
- package/src/shared/providers/screen/gestures/scroll-coordination/use-scroll-gesture-coordination.ts +11 -7
- package/src/shared/providers/screen/gestures/scroll-coordination/walk-up-scroll-gesture-coordination.ts +12 -12
- package/src/shared/providers/screen/gestures/shared/policy.ts +7 -7
- package/src/shared/providers/screen/gestures/types.ts +5 -2
- package/src/shared/providers/screen/styles/hooks/slot-resolvers.tsx +10 -3
- package/src/shared/providers/screen/styles/hooks/use-interpolated-style-maps.tsx +7 -17
- package/src/shared/providers/screen/styles/index.tsx +2 -1
- package/src/shared/providers/screen/styles/slot.provider.tsx +25 -24
- package/src/shared/providers/screen/use-current-screen-relationships.ts +10 -0
- package/src/shared/providers/stack/blank-stack.provider.tsx +19 -6
- package/src/shared/providers/stack/core.provider.tsx +0 -1
- package/src/shared/providers/stack/direct.provider.tsx +2 -4
- package/src/shared/stores/animation.store.ts +0 -3
- package/src/shared/stores/bounds/internals/coordinator.ts +20 -8
- package/src/shared/stores/bounds/internals/links.ts +1 -1
- package/src/shared/stores/bounds/internals/state.ts +1 -1
- package/src/shared/stores/bounds/types.ts +0 -1
- package/src/shared/types/providers/blank-stack-provider.types.ts +1 -0
- package/src/shared/types/screen.types.ts +0 -10
- package/src/shared/utils/create-provider.tsx +135 -200
- package/lib/commonjs/shared/providers/screen/animation/helpers/interpolator-participation.js +0 -9
- package/lib/commonjs/shared/providers/screen/animation/helpers/interpolator-participation.js.map +0 -1
- package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-structural-ancestor-keys.js +0 -12
- package/lib/commonjs/shared/providers/screen/descriptors/helpers/derive-structural-ancestor-keys.js.map +0 -1
- package/lib/commonjs/shared/providers/screen/gestures/shared/ancestors.js +0 -23
- package/lib/commonjs/shared/providers/screen/gestures/shared/ancestors.js.map +0 -1
- package/lib/commonjs/shared/stores/bounds/internals/screen-graph.js +0 -45
- package/lib/commonjs/shared/stores/bounds/internals/screen-graph.js.map +0 -1
- package/lib/module/shared/providers/screen/animation/helpers/interpolator-participation.js +0 -4
- package/lib/module/shared/providers/screen/animation/helpers/interpolator-participation.js.map +0 -1
- package/lib/module/shared/providers/screen/descriptors/helpers/derive-structural-ancestor-keys.js +0 -7
- package/lib/module/shared/providers/screen/descriptors/helpers/derive-structural-ancestor-keys.js.map +0 -1
- package/lib/module/shared/providers/screen/gestures/shared/ancestors.js +0 -19
- package/lib/module/shared/providers/screen/gestures/shared/ancestors.js.map +0 -1
- package/lib/module/shared/stores/bounds/internals/screen-graph.js +0 -39
- package/lib/module/shared/stores/bounds/internals/screen-graph.js.map +0 -1
- package/lib/typescript/shared/providers/screen/animation/helpers/interpolator-participation.d.ts +0 -3
- package/lib/typescript/shared/providers/screen/animation/helpers/interpolator-participation.d.ts.map +0 -1
- package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-structural-ancestor-keys.d.ts +0 -5
- package/lib/typescript/shared/providers/screen/descriptors/helpers/derive-structural-ancestor-keys.d.ts.map +0 -1
- package/lib/typescript/shared/providers/screen/gestures/shared/ancestors.d.ts +0 -11
- package/lib/typescript/shared/providers/screen/gestures/shared/ancestors.d.ts.map +0 -1
- package/lib/typescript/shared/stores/bounds/internals/screen-graph.d.ts +0 -5
- package/lib/typescript/shared/stores/bounds/internals/screen-graph.d.ts.map +0 -1
- package/src/shared/providers/screen/animation/helpers/interpolator-participation.ts +0 -6
- package/src/shared/providers/screen/descriptors/helpers/derive-structural-ancestor-keys.ts +0 -13
- package/src/shared/providers/screen/gestures/shared/ancestors.ts +0 -27
- package/src/shared/stores/bounds/internals/screen-graph.ts +0 -45
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { useMemo } from "react";
|
|
4
|
-
import { createBoundsAccessor } from "../../../../../utils/bounds";
|
|
5
4
|
const resolveTargetIndex = (target, currentIndex, sourceCount) => {
|
|
6
5
|
"worklet";
|
|
7
6
|
|
|
@@ -14,25 +13,9 @@ const resolveTargetIndex = (target, currentIndex, sourceCount) => {
|
|
|
14
13
|
const resolvedIndex = currentIndex + depth;
|
|
15
14
|
return resolvedIndex >= 0 && resolvedIndex < sourceCount ? resolvedIndex : -1;
|
|
16
15
|
};
|
|
17
|
-
export const createTransitionAccessor = (sources, originIndex = 0
|
|
16
|
+
export const createTransitionAccessor = (sources, originIndex = 0) => {
|
|
18
17
|
"worklet";
|
|
19
18
|
|
|
20
|
-
const getSources = () => {
|
|
21
|
-
"worklet";
|
|
22
|
-
|
|
23
|
-
if (!descendantSources) {
|
|
24
|
-
return sources;
|
|
25
|
-
}
|
|
26
|
-
const descendants = descendantSources.get();
|
|
27
|
-
if (descendants.length === 0) {
|
|
28
|
-
return sources;
|
|
29
|
-
}
|
|
30
|
-
const currentSources = sources.slice();
|
|
31
|
-
for (let index = 0; index < descendants.length; index++) {
|
|
32
|
-
currentSources.push(descendants[index].source);
|
|
33
|
-
}
|
|
34
|
-
return currentSources;
|
|
35
|
-
};
|
|
36
19
|
const buildScope = (sourceIndex, currentSources) => {
|
|
37
20
|
"worklet";
|
|
38
21
|
|
|
@@ -57,46 +40,17 @@ export const createTransitionAccessor = (sources, originIndex = 0, descendantSou
|
|
|
57
40
|
return target => {
|
|
58
41
|
"worklet";
|
|
59
42
|
|
|
60
|
-
const
|
|
61
|
-
const targetIndex = resolveTargetIndex(target, originIndex, currentSources.length);
|
|
43
|
+
const targetIndex = resolveTargetIndex(target, originIndex, sources.length);
|
|
62
44
|
if (targetIndex === -1) {
|
|
63
45
|
return null;
|
|
64
46
|
}
|
|
65
|
-
return buildScope(targetIndex,
|
|
47
|
+
return buildScope(targetIndex, sources);
|
|
66
48
|
};
|
|
67
49
|
};
|
|
68
|
-
const buildSourceBoundsAccessor = source => {
|
|
69
|
-
"worklet";
|
|
70
|
-
|
|
71
|
-
return createBoundsAccessor(() => {
|
|
72
|
-
"worklet";
|
|
73
|
-
|
|
74
|
-
return source.screenInterpolatorProps.get();
|
|
75
|
-
});
|
|
76
|
-
};
|
|
77
50
|
export const useBuildTransitionAccessor = ({
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
ancestorScreenAnimationSources,
|
|
81
|
-
descendantScreenAnimationSources
|
|
51
|
+
transitionSources,
|
|
52
|
+
transitionOriginIndex
|
|
82
53
|
}) => {
|
|
83
|
-
return useMemo(() =>
|
|
84
|
-
const selfSource = {
|
|
85
|
-
screenInterpolatorProps,
|
|
86
|
-
screenInterpolatorPropsRevision
|
|
87
|
-
};
|
|
88
|
-
const transitionSources = ancestorScreenAnimationSources.map(source => ({
|
|
89
|
-
...source,
|
|
90
|
-
boundsAccessor: buildSourceBoundsAccessor(source)
|
|
91
|
-
}));
|
|
92
|
-
const selfTransitionSource = {
|
|
93
|
-
...selfSource,
|
|
94
|
-
boundsAccessor: buildSourceBoundsAccessor(selfSource)
|
|
95
|
-
};
|
|
96
|
-
transitionSources.reverse();
|
|
97
|
-
const originIndex = transitionSources.length;
|
|
98
|
-
transitionSources.push(selfTransitionSource);
|
|
99
|
-
return createTransitionAccessor(transitionSources, originIndex, descendantScreenAnimationSources);
|
|
100
|
-
}, [screenInterpolatorProps, screenInterpolatorPropsRevision, ancestorScreenAnimationSources, descendantScreenAnimationSources]);
|
|
54
|
+
return useMemo(() => createTransitionAccessor(transitionSources, transitionOriginIndex), [transitionSources, transitionOriginIndex]);
|
|
101
55
|
};
|
|
102
56
|
//# sourceMappingURL=use-build-transition-accessor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","
|
|
1
|
+
{"version":3,"names":["useMemo","resolveTargetIndex","target","currentIndex","sourceCount","undefined","depth","Number","isInteger","resolvedIndex","createTransitionAccessor","sources","originIndex","buildScope","sourceIndex","currentSources","source","screenInterpolatorPropsRevision","get","frame","screenInterpolatorProps","bounds","boundsAccessor","transition","targetIndex","length","useBuildTransitionAccessor","transitionSources","transitionOriginIndex"],"sourceRoot":"../../../../../../../../src","sources":["shared/providers/screen/animation/helpers/accessors/use-build-transition-accessor.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAiB/B,MAAMC,kBAAkB,GAAGA,CAC1BC,MAA0C,EAC1CC,YAAmC,EACnCC,WAAmB,KACQ;EAC3B,SAAS;;EACT,IAAIA,WAAW,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;EAE/B,IACCF,MAAM,KAAKG,SAAS,KACnB,OAAOH,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,IAAI,EAAE,OAAO,IAAIA,MAAM,CAAC,CAAC,EACtE;IACD,OAAO,CAAC,CAAC;EACV;EAEA,MAAMI,KAAK,GAAGJ,MAAM,EAAEI,KAAK,IAAI,CAAC;EAChC,IAAI,CAACC,MAAM,CAACC,SAAS,CAACF,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;EAEvC,MAAMG,aAAa,GAAGN,YAAY,GAAGG,KAAK;EAC1C,OAAOG,aAAa,IAAI,CAAC,IAAIA,aAAa,GAAGL,WAAW,GAAGK,aAAa,GAAG,CAAC,CAAC;AAC9E,CAAC;AAED,OAAO,MAAMC,wBAAwB,GAAGA,CACvCC,OAA4C,EAC5CC,WAAW,GAAG,CAAC,KACX;EACJ,SAAS;;EAET,MAAMC,UAAU,GAAGA,CAClBC,WAAkC,EAClCC,cAAmD,KACd;IACrC,SAAS;;IACT,MAAMC,MAAM,GAAGD,cAAc,CAACD,WAAW,CAAC;IAC1C,IAAI,CAACE,MAAM,EAAE,OAAO,IAAI;IAExBA,MAAM,CAACC,+BAA+B,CAACC,GAAG,CAAC,CAAC;IAC5C,MAAMC,KAAK,GAAGH,MAAM,CAACI,uBAAuB,CAACF,GAAG,CAAC,CAAC;IAElD,OAAO;MACN,GAAGC,KAAK;MACRE,MAAM,EAAEL,MAAM,CAACM,cAAc;MAC7BC,UAAU,EAAGrB,MAA+B,IAAK;QAChD,SAAS;;QACT,MAAMsB,WAAW,GAAGvB,kBAAkB,CACrCC,MAAM,EACNY,WAAW,EACXC,cAAc,CAACU,MAChB,CAAC;QAED,IAAID,WAAW,KAAK,CAAC,CAAC,EAAE;UACvB,OAAO,IAAI;QACZ;QAEA,OAAOX,UAAU,CAACW,WAAW,EAAET,cAAc,CAAC;MAC/C;IACD,CAAC;EACF,CAAC;EAED,OAAQb,MAA+B,IAAsC;IAC5E,SAAS;;IACT,MAAMsB,WAAW,GAAGvB,kBAAkB,CAACC,MAAM,EAAEU,WAAW,EAAED,OAAO,CAACc,MAAM,CAAC;IAC3E,IAAID,WAAW,KAAK,CAAC,CAAC,EAAE;MACvB,OAAO,IAAI;IACZ;IAEA,OAAOX,UAAU,CAACW,WAAW,EAAEb,OAAO,CAAC;EACxC,CAAC;AACF,CAAC;AAED,OAAO,MAAMe,0BAA0B,GAAGA,CAAC;EAC1CC,iBAAiB;EACjBC;AACwB,CAAC,KAAK;EAC9B,OAAO5B,OAAO,CACb,MAAMU,wBAAwB,CAACiB,iBAAiB,EAAEC,qBAAqB,CAAC,EACxE,CAACD,iBAAiB,EAAEC,qBAAqB,CAC1C,CAAC;AACF,CAAC","ignoreList":[]}
|
|
@@ -5,14 +5,13 @@ import { useWindowDimensions } from "react-native";
|
|
|
5
5
|
import { useDerivedValue, useSharedValue } from "react-native-reanimated";
|
|
6
6
|
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
7
7
|
import { createScreenTransitionState, DEFAULT_SCREEN_TRANSITION_STATE } from "../../../../constants";
|
|
8
|
-
import { useStack } from "../../../../hooks/navigation/use-stack";
|
|
8
|
+
import { useStack, useStackProgressEntries } from "../../../../hooks/navigation/use-stack";
|
|
9
9
|
import { useDescriptorsStore } from "../../descriptors";
|
|
10
10
|
import { buildScreenTransitionOptions } from "./build-screen-transition-options";
|
|
11
11
|
import { updateDerivations } from "./derivations";
|
|
12
12
|
import { hasTransitionsEnabled } from "./has-transitions-enabled";
|
|
13
13
|
import { hydrateTransitionState } from "./hydrate-transition-state";
|
|
14
|
-
import {
|
|
15
|
-
import { resolveStackProgress } from "./stack-progress";
|
|
14
|
+
import { readStackProgress } from "./stack-progress";
|
|
16
15
|
import { useBuildTransitionState } from "./use-build-transition-state";
|
|
17
16
|
import { toPlainRoute, toPlainValue } from "./worklet";
|
|
18
17
|
const getInitialSettledProgress = descriptor => {
|
|
@@ -130,39 +129,36 @@ const hydrateInterpolatorFrame = ({
|
|
|
130
129
|
nextAnimation,
|
|
131
130
|
prevAnimation,
|
|
132
131
|
nextHasTransitions,
|
|
133
|
-
interpolatorOptions
|
|
132
|
+
interpolatorOptions,
|
|
133
|
+
stackProgressEntries,
|
|
134
|
+
currentRouteKey
|
|
134
135
|
}) => {
|
|
135
136
|
"worklet";
|
|
136
137
|
|
|
137
138
|
const shouldApplyOptionsToCurrent = interpolatorOptions.owner === "current";
|
|
138
139
|
const shouldApplyOptionsToNext = interpolatorOptions.owner === "next" && !!nextAnimation && nextHasTransitions;
|
|
139
|
-
const previousCurrentProgress = currentAnimation?.visualProgress.get();
|
|
140
|
-
const previousNextProgress = nextAnimation && nextHasTransitions ? nextAnimation.visualProgress.get() : undefined;
|
|
141
140
|
frame.previous = prevAnimation ? hydrateTransitionState(prevAnimation, dimensions) : undefined;
|
|
142
141
|
frame.current = currentAnimation ? hydrateTransitionState(currentAnimation, dimensions, shouldApplyOptionsToCurrent ? interpolatorOptions.options : undefined) : DEFAULT_SCREEN_TRANSITION_STATE;
|
|
143
142
|
frame.next = nextAnimation && nextHasTransitions ? hydrateTransitionState(nextAnimation, dimensions, shouldApplyOptionsToNext ? interpolatorOptions.options : undefined) : undefined;
|
|
144
143
|
frame.layouts = frame.current.layouts;
|
|
145
144
|
frame.insets = insets;
|
|
146
145
|
updateDerivations(frame);
|
|
147
|
-
frame.stackProgress =
|
|
146
|
+
frame.stackProgress = readStackProgress(stackProgressEntries, currentRouteKey, frame.progress);
|
|
148
147
|
frame.logicallySettled = frame.active.settled;
|
|
149
148
|
return frame;
|
|
150
149
|
};
|
|
151
|
-
export function useScreenAnimationPipeline(
|
|
150
|
+
export function useScreenAnimationPipeline() {
|
|
152
151
|
const transitionsAlwaysOn = useStack(stack => stack.flags.TRANSITIONS_ALWAYS_ON);
|
|
153
152
|
const dimensions = useWindowDimensions();
|
|
154
153
|
const insets = useSafeAreaInsets();
|
|
154
|
+
const stackProgressEntries = useStackProgressEntries();
|
|
155
155
|
const currDescriptor = useDescriptorsStore(store => store.current);
|
|
156
156
|
const nextDescriptor = useDescriptorsStore(store => store.next);
|
|
157
157
|
const prevDescriptor = useDescriptorsStore(store => store.previous);
|
|
158
|
-
const currentActivity = useStack(stack => {
|
|
159
|
-
const routeIndex = stack.routeKeys.indexOf(currDescriptor.route.key);
|
|
160
|
-
return stack.scenes[routeIndex]?.activity;
|
|
161
|
-
});
|
|
162
|
-
const interpolatorUpdatesEnabled = parentInterpolatorUpdatesEnabled && shouldUpdateScreenInterpolator(currentActivity ?? "active", currDescriptor.options.experimental_updateInactiveInterpolators === true);
|
|
163
158
|
const currentAnimation = useBuildTransitionState(currDescriptor);
|
|
164
159
|
const nextAnimation = useBuildTransitionState(nextDescriptor);
|
|
165
160
|
const prevAnimation = useBuildTransitionState(prevDescriptor);
|
|
161
|
+
const currentRouteKey = currDescriptor.route.key;
|
|
166
162
|
const nextRouteKey = nextDescriptor?.route?.key;
|
|
167
163
|
const nextHasTransitions = !!nextRouteKey && hasTransitionsEnabled(nextDescriptor?.options, transitionsAlwaysOn);
|
|
168
164
|
const initialInterpolatorProps = useMemo(() => createInitialInterpolatorProps({
|
|
@@ -179,7 +175,7 @@ export function useScreenAnimationPipeline(parentInterpolatorUpdatesEnabled = tr
|
|
|
179
175
|
const propsRevisionState = useSharedValue({
|
|
180
176
|
value: 0
|
|
181
177
|
});
|
|
182
|
-
const screenInterpolatorPropsRevision = useDerivedValue(
|
|
178
|
+
const screenInterpolatorPropsRevision = useDerivedValue(() => {
|
|
183
179
|
"worklet";
|
|
184
180
|
|
|
185
181
|
screenInterpolatorProps.modify(frame => {
|
|
@@ -194,32 +190,25 @@ export function useScreenAnimationPipeline(parentInterpolatorUpdatesEnabled = tr
|
|
|
194
190
|
nextAnimation,
|
|
195
191
|
prevAnimation,
|
|
196
192
|
nextHasTransitions,
|
|
197
|
-
interpolatorOptions
|
|
193
|
+
interpolatorOptions,
|
|
194
|
+
stackProgressEntries,
|
|
195
|
+
currentRouteKey
|
|
198
196
|
});
|
|
199
197
|
}, false);
|
|
200
198
|
|
|
201
|
-
//
|
|
202
|
-
//
|
|
203
|
-
// `screenInterpolatorProps` is mutated in place to avoid allocating a large
|
|
204
|
-
// interpolator frame every tick. Consumers must read this revision before
|
|
205
|
-
// reading `screenInterpolatorProps`, otherwise Reanimated may not subscribe
|
|
206
|
-
// to frame updates and can observe stale transition state.
|
|
199
|
+
// `screenInterpolatorProps` is mutated in place. Consumers read this
|
|
200
|
+
// revision first so Reanimated subscribes to the hydrated frame.
|
|
207
201
|
propsRevisionState.modify(revision => {
|
|
208
202
|
"worklet";
|
|
209
203
|
|
|
210
204
|
revision.value += 1;
|
|
211
205
|
return revision;
|
|
212
206
|
}, false);
|
|
213
|
-
return propsRevisionState.get().value;
|
|
214
|
-
} : () => {
|
|
215
|
-
"worklet";
|
|
216
|
-
|
|
217
207
|
return propsRevisionState.get().value;
|
|
218
208
|
});
|
|
219
209
|
const nextInterpolator = nextDescriptor?.options.screenStyleInterpolator;
|
|
220
|
-
const currentInterpolator = currDescriptor
|
|
210
|
+
const currentInterpolator = currDescriptor.options.screenStyleInterpolator;
|
|
221
211
|
return {
|
|
222
|
-
interpolatorUpdatesEnabled,
|
|
223
212
|
screenInterpolatorProps,
|
|
224
213
|
screenInterpolatorPropsRevision,
|
|
225
214
|
selectedInterpolatorOptions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","useWindowDimensions","useDerivedValue","useSharedValue","useSafeAreaInsets","createScreenTransitionState","DEFAULT_SCREEN_TRANSITION_STATE","useStack","useDescriptorsStore","buildScreenTransitionOptions","updateDerivations","hasTransitionsEnabled","hydrateTransitionState","
|
|
1
|
+
{"version":3,"names":["useMemo","useWindowDimensions","useDerivedValue","useSharedValue","useSafeAreaInsets","createScreenTransitionState","DEFAULT_SCREEN_TRANSITION_STATE","useStack","useStackProgressEntries","useDescriptorsStore","buildScreenTransitionOptions","updateDerivations","hasTransitionsEnabled","hydrateTransitionState","readStackProgress","useBuildTransitionState","toPlainRoute","toPlainValue","getInitialSettledProgress","descriptor","snapPoints","initialSnapIndex","options","length","clampedIndex","Math","min","max","snapPoint","applyInitialProgress","state","dimensions","progress","entering","closing","animating","willAnimate","settled","transitionProgress","logicallySettled","layouts","screen","createInitialTransitionState","meta","undefined","route","createInitialInterpolatorProps","insets","currentDescriptor","nextDescriptor","prevDescriptor","hasIncomingNext","isFocusedEntering","shouldAnimateInitialMount","experimental_animateOnInitialMount","currentProgress","currentEntering","current","previous","next","frame","stackProgress","focused","active","inactive","hydrateInterpolatorFrame","currentAnimation","nextAnimation","prevAnimation","nextHasTransitions","interpolatorOptions","stackProgressEntries","currentRouteKey","shouldApplyOptionsToCurrent","owner","shouldApplyOptionsToNext","useScreenAnimationPipeline","transitionsAlwaysOn","stack","flags","TRANSITIONS_ALWAYS_ON","currDescriptor","store","key","nextRouteKey","initialInterpolatorProps","screenInterpolatorProps","selectedInterpolatorOptions","propsRevisionState","value","screenInterpolatorPropsRevision","modify","get","revision","nextInterpolator","screenStyleInterpolator","currentInterpolator"],"sourceRoot":"../../../../../../../src","sources":["shared/providers/screen/animation/helpers/pipeline.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/shared/providers/screen/animation/helpers/read-screen-animation-revisions.js
CHANGED
|
@@ -1,20 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
export const readScreenAnimationRevisions = (
|
|
3
|
+
export const readScreenAnimationRevisions = (sources, externalRevisions = []) => {
|
|
4
4
|
"worklet";
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
ancestorScreenAnimationSources[index]?.screenInterpolatorPropsRevision.get();
|
|
9
|
-
}
|
|
10
|
-
const descendantSources = descendantScreenAnimationSources.get();
|
|
11
|
-
for (let index = 0; index < descendantSources.length; index++) {
|
|
12
|
-
descendantSources[index]?.source.screenInterpolatorPropsRevision.get();
|
|
13
|
-
}
|
|
14
|
-
if (screenInterpolatorExternalDeps) {
|
|
15
|
-
for (let index = 0; index < screenInterpolatorExternalDeps.length; index++) {
|
|
16
|
-
screenInterpolatorExternalDeps[index]?.get();
|
|
17
|
-
}
|
|
6
|
+
for (const source of sources) {
|
|
7
|
+
source.screenInterpolatorPropsRevision.get();
|
|
18
8
|
}
|
|
9
|
+
for (const revision of externalRevisions) revision.get();
|
|
19
10
|
};
|
|
20
11
|
//# sourceMappingURL=read-screen-animation-revisions.js.map
|
package/lib/module/shared/providers/screen/animation/helpers/read-screen-animation-revisions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["readScreenAnimationRevisions","
|
|
1
|
+
{"version":3,"names":["readScreenAnimationRevisions","sources","externalRevisions","source","screenInterpolatorPropsRevision","get","revision"],"sourceRoot":"../../../../../../../src","sources":["shared/providers/screen/animation/helpers/read-screen-animation-revisions.ts"],"mappings":";;AAKA,OAAO,MAAMA,4BAA4B,GAAGA,CAC3CC,OAAmD,EACnDC,iBAAiD,GAAG,EAAE,KAClD;EACJ,SAAS;;EACT,KAAK,MAAMC,MAAM,IAAIF,OAAO,EAAE;IAC7BE,MAAM,CAACC,+BAA+B,CAACC,GAAG,CAAC,CAAC;EAC7C;EACA,KAAK,MAAMC,QAAQ,IAAIJ,iBAAiB,EAAEI,QAAQ,CAACD,GAAG,CAAC,CAAC;AACzD,CAAC","ignoreList":[]}
|
|
@@ -1,30 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
export const
|
|
3
|
+
export const readStackProgress = (entries, routeKey, fallbackProgress) => {
|
|
4
4
|
"worklet";
|
|
5
5
|
|
|
6
|
-
let
|
|
7
|
-
for (let
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
};
|
|
15
|
-
export const resolveStackProgress = (stackProgress, fallbackProgress, currentProgress, previousCurrentProgress, nextProgress, previousNextProgress) => {
|
|
16
|
-
"worklet";
|
|
17
|
-
|
|
18
|
-
if (!stackProgress) {
|
|
19
|
-
return fallbackProgress;
|
|
20
|
-
}
|
|
21
|
-
let total = stackProgress.get();
|
|
22
|
-
if (previousCurrentProgress !== undefined) {
|
|
23
|
-
total += currentProgress - previousCurrentProgress;
|
|
24
|
-
}
|
|
25
|
-
if (nextProgress !== undefined && previousNextProgress !== undefined) {
|
|
26
|
-
total += nextProgress - previousNextProgress;
|
|
27
|
-
}
|
|
28
|
-
return total;
|
|
6
|
+
let progress = 0;
|
|
7
|
+
for (let index = entries.length - 1; index >= 0; index--) {
|
|
8
|
+
const entry = entries[index];
|
|
9
|
+
if (!entry) continue;
|
|
10
|
+
progress += entry.visualProgress.get();
|
|
11
|
+
if (entry.routeKey === routeKey) return progress;
|
|
12
|
+
}
|
|
13
|
+
return fallbackProgress;
|
|
29
14
|
};
|
|
30
15
|
//# sourceMappingURL=stack-progress.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["readStackProgress","entries","routeKey","fallbackProgress","progress","index","length","entry","visualProgress","get"],"sourceRoot":"../../../../../../../src","sources":["shared/providers/screen/animation/helpers/stack-progress.ts"],"mappings":";;AAOA,OAAO,MAAMA,iBAAiB,GAAGA,CAChCC,OAAsC,EACtCC,QAAgB,EAChBC,gBAAwB,KACpB;EACJ,SAAS;;EACT,IAAIC,QAAQ,GAAG,CAAC;EAEhB,KAAK,IAAIC,KAAK,GAAGJ,OAAO,CAACK,MAAM,GAAG,CAAC,EAAED,KAAK,IAAI,CAAC,EAAEA,KAAK,EAAE,EAAE;IACzD,MAAME,KAAK,GAAGN,OAAO,CAACI,KAAK,CAAC;IAC5B,IAAI,CAACE,KAAK,EAAE;IAEZH,QAAQ,IAAIG,KAAK,CAACC,cAAc,CAACC,GAAG,CAAC,CAAC;IACtC,IAAIF,KAAK,CAACL,QAAQ,KAAKA,QAAQ,EAAE,OAAOE,QAAQ;EACjD;EAEA,OAAOD,gBAAgB;AACxB,CAAC","ignoreList":[]}
|
|
@@ -22,7 +22,6 @@ export const useBuildTransitionState = descriptor => {
|
|
|
22
22
|
return {
|
|
23
23
|
transitionProgress: AnimationStore.getValue(key, "transitionProgress"),
|
|
24
24
|
visualProgress: AnimationStore.getValue(key, "visualProgress"),
|
|
25
|
-
stackProgress: AnimationStore.getValue(key, "stackProgress"),
|
|
26
25
|
willAnimate: AnimationStore.getValue(key, "willAnimate"),
|
|
27
26
|
closing: AnimationStore.getValue(key, "closing"),
|
|
28
27
|
entering: AnimationStore.getValue(key, "entering"),
|
package/lib/module/shared/providers/screen/animation/helpers/use-build-transition-state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","createScreenTransitionState","AnimationStore","GestureStore","ScrollStore","SystemStore","buildScreenTransitionOptions","toPlainRoute","toPlainValue","useBuildTransitionState","descriptor","key","route","meta","options","snapPoints","undefined","plainRoute","plainMeta","sortedNumericSnapPoints","filter","p","sort","a","b","transitionOptions","transitionProgress","getValue","visualProgress","
|
|
1
|
+
{"version":3,"names":["useMemo","createScreenTransitionState","AnimationStore","GestureStore","ScrollStore","SystemStore","buildScreenTransitionOptions","toPlainRoute","toPlainValue","useBuildTransitionState","descriptor","key","route","meta","options","snapPoints","undefined","plainRoute","plainMeta","sortedNumericSnapPoints","filter","p","sort","a","b","transitionOptions","transitionProgress","getValue","visualProgress","willAnimate","closing","entering","progressAnimating","progressSettled","targetProgress","resolvedAutoSnapPoint","measuredContentLayout","scrollMetadata","contentLayoutSlot","width","height","hasAutoSnapPoint","includes","gesture","getBag","optionsSlot","unwrapped"],"sourceRoot":"../../../../../../../src","sources":["shared/providers/screen/animation/helpers/use-build-transition-state.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
export { ScreenAnimationProvider, useScreenAnimationStore } from "./animation.provider";
|
|
3
|
+
export { ScreenAnimationProvider, useOptionalScreenAnimationStore, useScreenAnimationStore } from "./animation.provider";
|
|
4
4
|
export { useScreenAnimation } from "./use-screen-animation";
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ScreenAnimationProvider","useScreenAnimationStore","useScreenAnimation"],"sourceRoot":"../../../../../../src","sources":["shared/providers/screen/animation/index.tsx"],"mappings":";;AAAA,SACCA,uBAAuB,EACvBC,uBAAuB,QACjB,sBAAsB;AAC7B,SAECC,kBAAkB,QACZ,wBAAwB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ScreenAnimationProvider","useOptionalScreenAnimationStore","useScreenAnimationStore","useScreenAnimation"],"sourceRoot":"../../../../../../src","sources":["shared/providers/screen/animation/index.tsx"],"mappings":";;AAAA,SACCA,uBAAuB,EACvBC,+BAA+B,EAC/BC,uBAAuB,QACjB,sBAAsB;AAC7B,SAECC,kBAAkB,QACZ,wBAAwB","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import { useRoute } from "@react-navigation/native";
|
|
4
4
|
import { useDerivedValue } from "react-native-reanimated";
|
|
5
|
-
import {
|
|
5
|
+
import { useOptionalScreenAnimationStore } from "./animation.provider";
|
|
6
6
|
import { useBuildTransitionAccessor } from "./helpers/accessors/use-build-transition-accessor";
|
|
7
7
|
import { readScreenAnimationRevisions } from "./helpers/read-screen-animation-revisions";
|
|
8
8
|
|
|
@@ -12,21 +12,22 @@ import { readScreenAnimationRevisions } from "./helpers/read-screen-animation-re
|
|
|
12
12
|
|
|
13
13
|
export function useScreenAnimation(target) {
|
|
14
14
|
const route = useRoute();
|
|
15
|
-
const
|
|
15
|
+
const localAnimationStore = useOptionalScreenAnimationStore();
|
|
16
|
+
const keyedAnimationStore = useOptionalScreenAnimationStore(localAnimationStore ? null : route.key);
|
|
17
|
+
const screenAnimationStore = localAnimationStore ?? keyedAnimationStore;
|
|
16
18
|
if (!screenAnimationStore) {
|
|
17
|
-
throw new Error(`
|
|
19
|
+
throw new Error(`ScreenAnimationStore is unavailable for route "${route.key}"`);
|
|
18
20
|
}
|
|
19
21
|
const {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
descendantScreenAnimationSources
|
|
22
|
+
transitionSources,
|
|
23
|
+
transitionOriginIndex
|
|
23
24
|
} = screenAnimationStore;
|
|
24
25
|
const transition = useBuildTransitionAccessor(screenAnimationStore);
|
|
25
|
-
const transitionTarget = normalizeScreenAnimationTarget(target,
|
|
26
|
+
const transitionTarget = normalizeScreenAnimationTarget(target, transitionOriginIndex);
|
|
26
27
|
const animation = useDerivedValue(() => {
|
|
27
28
|
"worklet";
|
|
28
29
|
|
|
29
|
-
readScreenAnimationRevisions(
|
|
30
|
+
readScreenAnimationRevisions(transitionSources);
|
|
30
31
|
return transition(transitionTarget);
|
|
31
32
|
});
|
|
32
33
|
return animation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRoute","useDerivedValue","
|
|
1
|
+
{"version":3,"names":["useRoute","useDerivedValue","useOptionalScreenAnimationStore","useBuildTransitionAccessor","readScreenAnimationRevisions","useScreenAnimation","target","route","localAnimationStore","keyedAnimationStore","key","screenAnimationStore","Error","transitionSources","transitionOriginIndex","transition","transitionTarget","normalizeScreenAnimationTarget","animation","isTransitionTarget","ancestorCount","undefined","depth","Number","isInteger","ancestor","NaN"],"sourceRoot":"../../../../../../src","sources":["shared/providers/screen/animation/use-screen-animation.tsx"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,0BAA0B;AACnD,SAA4BC,eAAe,QAAQ,yBAAyB;AAK5E,SAASC,+BAA+B,QAAQ,sBAAsB;AACtE,SAASC,0BAA0B,QAAQ,mDAAmD;AAC9F,SAASC,4BAA4B,QAAQ,2CAA2C;;AAYxF;;AAOA;;AAIA,OAAO,SAASC,kBAAkBA,CACjCC,MAA8B,EAGkB;EAChD,MAAMC,KAAK,GAAGP,QAAQ,CAAC,CAAC;EACxB,MAAMQ,mBAAmB,GAAGN,+BAA+B,CAAC,CAAC;EAC7D,MAAMO,mBAAmB,GAAGP,+BAA+B,CAC1DM,mBAAmB,GAAG,IAAI,GAAGD,KAAK,CAACG,GACpC,CAAC;EACD,MAAMC,oBAAoB,GAAGH,mBAAmB,IAAIC,mBAAmB;EAEvE,IAAI,CAACE,oBAAoB,EAAE;IAC1B,MAAM,IAAIC,KAAK,CACd,kDAAkDL,KAAK,CAACG,GAAG,GAC5D,CAAC;EACF;EAEA,MAAM;IAAEG,iBAAiB;IAAEC;EAAsB,CAAC,GAAGH,oBAAoB;EACzE,MAAMI,UAAU,GAAGZ,0BAA0B,CAACQ,oBAAoB,CAAC;EACnE,MAAMK,gBAAgB,GAAGC,8BAA8B,CACtDX,MAAM,EACNQ,qBACD,CAAC;EAED,MAAMI,SAAS,GAAGjB,eAAe,CAAkC,MAAM;IACxE,SAAS;;IACTG,4BAA4B,CAACS,iBAAiB,CAAC;IAC/C,OAAOE,UAAU,CAACC,gBAAgB,CAAC;EACpC,CAAC,CAAC;EAEF,OAAOE,SAAS;AACjB;AAEA,MAAMC,kBAAkB,GACvBb,MAA6B,IACS;EACtC,OAAO,OAAOA,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,IAAI,IAAI,OAAO,IAAIA,MAAM;AAC1E,CAAC;AAED,MAAMW,8BAA8B,GAAGA,CACtCX,MAAyC,EACzCc,aAAqB,KACmB;EACxC,IAAId,MAAM,KAAKe,SAAS,IAAIF,kBAAkB,CAACb,MAAM,CAAC,EAAE;IACvD,OAAOA,MAAM;EACd;EAEA,IAAIA,MAAM,KAAK,MAAM,EAAE;IACtB,OAAO;MAAEgB,KAAK,EAAE;IAAE,CAAC;EACpB;EAEA,IAAIhB,MAAM,KAAK,QAAQ,EAAE;IACxB,OAAO;MAAEgB,KAAK,EAAE,CAAC;IAAE,CAAC;EACrB;EAEA,IAAIhB,MAAM,KAAK,MAAM,EAAE;IACtB,OAAO;MAAEgB,KAAK,EAAEF,aAAa,GAAG,CAAC,GAAG,CAACA,aAAa,GAAG,CAAC;IAAE,CAAC;EAC1D;EAEA,IAAI,CAACG,MAAM,CAACC,SAAS,CAAClB,MAAM,CAACmB,QAAQ,CAAC,IAAInB,MAAM,CAACmB,QAAQ,GAAG,CAAC,EAAE;IAC9D,OAAO;MAAEH,KAAK,EAAEC,MAAM,CAACG;IAAI,CAAC;EAC7B;EAEA,OAAO;IAAEJ,KAAK,EAAE,CAAChB,MAAM,CAACmB;EAAS,CAAC;AACnC,CAAC","ignoreList":[]}
|
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
import { useLayoutEffect, useMemo } from "react";
|
|
4
4
|
import { runOnUI } from "react-native-reanimated";
|
|
5
5
|
import { useScreenTransitionsAdapterOptionalContext } from "../../../adapters/with-screen-transitions/context";
|
|
6
|
-
import {
|
|
6
|
+
import { screenTopology } from "../../../factories/screen-topology";
|
|
7
|
+
import { useStack } from "../../../hooks/navigation/use-stack";
|
|
8
|
+
import { useOptionalBlankStackStore } from "../../../providers/stack/blank-stack.provider";
|
|
7
9
|
import { registerScreen, unregisterScreen } from "../../../stores/bounds/internals/coordinator";
|
|
8
10
|
import { SystemStore } from "../../../stores/system.store";
|
|
9
11
|
import createProvider from "../../../utils/create-provider";
|
|
10
12
|
import { deriveDescriptorDerivations } from "./helpers/derive-descriptor-derivations";
|
|
11
|
-
import { deriveStructuralAncestorKeys } from "./helpers/derive-structural-ancestor-keys";
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Base descriptor interface - minimal contract for all stack types.
|
|
@@ -16,32 +17,36 @@ import { deriveStructuralAncestorKeys } from "./helpers/derive-structural-ancest
|
|
|
16
17
|
* tight coupling to React Navigation.
|
|
17
18
|
*/
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
const createDescriptorsProvider = createProvider("Descriptors", {
|
|
21
|
+
global: true
|
|
22
|
+
});
|
|
23
|
+
const {
|
|
20
24
|
DescriptorsProvider,
|
|
21
|
-
useDescriptorsStore
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
})(({
|
|
25
|
+
useDescriptorsStore,
|
|
26
|
+
useOptionalDescriptorsStore
|
|
27
|
+
} = createDescriptorsProvider(({
|
|
25
28
|
previous,
|
|
26
29
|
current,
|
|
27
30
|
next,
|
|
28
31
|
routeKey,
|
|
29
32
|
children
|
|
30
|
-
}, {
|
|
31
|
-
useParentStore
|
|
32
33
|
}) => {
|
|
33
|
-
const parentScreenKey =
|
|
34
|
-
const
|
|
35
|
-
const
|
|
36
|
-
const
|
|
37
|
-
const
|
|
38
|
-
const
|
|
39
|
-
const blankStackNext = useBlankStackStore(store => routeKey ? store?.scenesByKey[routeKey]?.nextDescriptor : undefined);
|
|
34
|
+
const parentScreenKey = useOptionalDescriptorsStore(store => store?.derivations.currentScreenKey);
|
|
35
|
+
const parentTransitionSourcePairKey = useOptionalDescriptorsStore(store => store?.derivations.transitionSourcePairKey);
|
|
36
|
+
const parentTransitionDestinationScreenKey = useOptionalDescriptorsStore(store => store?.derivations.transitionDestinationScreenKey);
|
|
37
|
+
const blankStackCurrent = useOptionalBlankStackStore(store => routeKey ? store?.scenesByKey[routeKey]?.descriptor : undefined);
|
|
38
|
+
const blankStackPrevious = useOptionalBlankStackStore(store => routeKey ? store?.scenesByKey[routeKey]?.previousDescriptor : undefined);
|
|
39
|
+
const blankStackNext = useOptionalBlankStackStore(store => routeKey ? store?.scenesByKey[routeKey]?.nextDescriptor : undefined);
|
|
40
40
|
const adapterContext = useScreenTransitionsAdapterOptionalContext();
|
|
41
41
|
const adapterScene = routeKey ? adapterContext?.scenesByKey?.[routeKey] ?? adapterContext?.scenes[adapterContext.routeIndexByKey.get(routeKey) ?? -1] : undefined;
|
|
42
42
|
const resolvedCurrent = current ?? blankStackCurrent ?? adapterScene?.descriptor;
|
|
43
43
|
const resolvedPrevious = previous ?? blankStackPrevious ?? adapterScene?.previousDescriptor;
|
|
44
44
|
const resolvedNext = next ?? blankStackNext ?? adapterScene?.nextDescriptor;
|
|
45
|
+
const currentScreenKey = current?.route.key ?? routeKey;
|
|
46
|
+
const isActiveScreen = useStack(store => {
|
|
47
|
+
const focusedScene = store.scenes[store.focusedIndex];
|
|
48
|
+
return focusedScene.route.key === currentScreenKey && focusedScene.activity === "active";
|
|
49
|
+
});
|
|
45
50
|
if (!resolvedCurrent) {
|
|
46
51
|
throw new Error(`Descriptors scene "${routeKey ?? "unknown"}" was not found.`);
|
|
47
52
|
}
|
|
@@ -50,37 +55,47 @@ export const {
|
|
|
50
55
|
current: resolvedCurrent,
|
|
51
56
|
next: resolvedNext
|
|
52
57
|
}), [resolvedPrevious, resolvedCurrent, resolvedNext]);
|
|
53
|
-
const ancestorKeys = useMemo(() => deriveStructuralAncestorKeys(parentScreenKey ? {
|
|
54
|
-
currentScreenKey: parentScreenKey,
|
|
55
|
-
ancestorKeys: parentAncestorKeys ?? []
|
|
56
|
-
} : null), [parentAncestorKeys, parentScreenKey]);
|
|
57
58
|
const derivations = useMemo(() => {
|
|
58
59
|
const localDerivations = deriveDescriptorDerivations({
|
|
59
60
|
previous: resolvedPrevious,
|
|
60
61
|
current: resolvedCurrent,
|
|
61
|
-
next: resolvedNext
|
|
62
|
-
ancestorKeys
|
|
62
|
+
next: resolvedNext
|
|
63
63
|
});
|
|
64
64
|
return {
|
|
65
65
|
...localDerivations,
|
|
66
|
-
transitionSourcePairKey: localDerivations.sourcePairKey ?? parentTransitionSourcePairKey,
|
|
67
|
-
transitionDestinationScreenKey: localDerivations.nextScreenKey ?? parentTransitionDestinationScreenKey
|
|
66
|
+
transitionSourcePairKey: localDerivations.sourcePairKey ?? parentTransitionSourcePairKey ?? undefined,
|
|
67
|
+
transitionDestinationScreenKey: localDerivations.nextScreenKey ?? parentTransitionDestinationScreenKey ?? undefined
|
|
68
68
|
};
|
|
69
|
-
}, [resolvedPrevious, resolvedCurrent, resolvedNext,
|
|
69
|
+
}, [resolvedPrevious, resolvedCurrent, resolvedNext, parentTransitionSourcePairKey, parentTransitionDestinationScreenKey]);
|
|
70
70
|
const animationProgress = SystemStore.getValue(derivations.currentScreenKey, "animationProgress");
|
|
71
71
|
const pendingLifecycleStartBlockCount = SystemStore.getValue(derivations.currentScreenKey, "pendingLifecycleStartBlockCount");
|
|
72
72
|
useLayoutEffect(() => {
|
|
73
|
+
screenTopology.register({
|
|
74
|
+
screenKey: derivations.currentScreenKey,
|
|
75
|
+
parentScreenKey
|
|
76
|
+
});
|
|
73
77
|
runOnUI(registerScreen)({
|
|
74
78
|
screenKey: derivations.currentScreenKey,
|
|
75
|
-
parentScreenKey
|
|
79
|
+
parentScreenKey,
|
|
76
80
|
animationProgress,
|
|
77
81
|
pendingLifecycleStartBlockCount
|
|
78
82
|
});
|
|
79
83
|
return () => {
|
|
84
|
+
screenTopology.unregister(derivations.currentScreenKey);
|
|
80
85
|
runOnUI(unregisterScreen)(derivations.currentScreenKey);
|
|
81
86
|
};
|
|
82
|
-
}, [animationProgress, derivations.currentScreenKey,
|
|
87
|
+
}, [animationProgress, derivations.currentScreenKey, parentScreenKey, pendingLifecycleStartBlockCount]);
|
|
88
|
+
useLayoutEffect(() => {
|
|
89
|
+
if (!isActiveScreen || !parentScreenKey) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
return screenTopology.activate({
|
|
93
|
+
screenKey: derivations.currentScreenKey,
|
|
94
|
+
parentScreenKey
|
|
95
|
+
});
|
|
96
|
+
}, [isActiveScreen, derivations.currentScreenKey, parentScreenKey]);
|
|
83
97
|
return {
|
|
98
|
+
key: derivations.currentScreenKey,
|
|
84
99
|
value: {
|
|
85
100
|
previous: resolvedPrevious,
|
|
86
101
|
current: resolvedCurrent,
|
|
@@ -92,4 +107,5 @@ export const {
|
|
|
92
107
|
children
|
|
93
108
|
};
|
|
94
109
|
});
|
|
110
|
+
export { DescriptorsProvider, useDescriptorsStore };
|
|
95
111
|
//# sourceMappingURL=descriptors.provider.js.map
|