react-native-screen-transitions 3.6.0-beta.0 → 3.7.0-alpha.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 +2 -2
- package/lib/commonjs/blank-stack/components/stack-view.js +35 -39
- package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -1
- package/lib/commonjs/blank-stack/navigators/create-blank-stack-navigator.js +7 -14
- package/lib/commonjs/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -1
- package/lib/commonjs/component-stack/components/stack-view.js +4 -11
- package/lib/commonjs/component-stack/components/stack-view.js.map +1 -1
- package/lib/commonjs/component-stack/navigators/create-component-stack-navigator.js +1 -1
- package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +6 -0
- package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
- package/lib/commonjs/shared/adapters/with-screen-transitions/context.js +28 -0
- package/lib/commonjs/shared/adapters/with-screen-transitions/context.js.map +1 -0
- package/lib/commonjs/shared/adapters/with-screen-transitions/index.js +75 -0
- package/lib/commonjs/shared/adapters/with-screen-transitions/index.js.map +1 -0
- package/lib/commonjs/shared/adapters/with-screen-transitions/options.js +103 -0
- package/lib/commonjs/shared/adapters/with-screen-transitions/options.js.map +1 -0
- package/lib/commonjs/shared/adapters/with-screen-transitions/stack-layout.js +143 -0
- package/lib/commonjs/shared/adapters/with-screen-transitions/stack-layout.js.map +1 -0
- package/lib/commonjs/shared/adapters/with-screen-transitions/types.js +6 -0
- package/lib/commonjs/shared/adapters/with-screen-transitions/types.js.map +1 -0
- package/lib/commonjs/shared/components/activity/helpers.js +9 -0
- package/lib/commonjs/shared/components/activity/helpers.js.map +1 -0
- package/lib/commonjs/shared/components/activity/index.js +20 -0
- package/lib/commonjs/shared/components/activity/index.js.map +1 -0
- package/lib/commonjs/shared/components/activity/variants/activity-container.js +29 -0
- package/lib/commonjs/shared/components/activity/variants/activity-container.js.map +1 -0
- package/lib/commonjs/shared/components/activity/variants/activity-screen.js +107 -0
- package/lib/commonjs/shared/components/activity/variants/activity-screen.js.map +1 -0
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-measurer.js +10 -4
- package/lib/commonjs/shared/components/create-boundary-component/hooks/use-measurer.js.map +1 -1
- package/lib/commonjs/shared/components/create-boundary-component/utils/measured-bounds.js +13 -1
- package/lib/commonjs/shared/components/create-boundary-component/utils/measured-bounds.js.map +1 -1
- package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js +8 -17
- package/lib/commonjs/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
- package/lib/commonjs/shared/components/screen-lifecycle/index.js +1 -1
- package/lib/commonjs/shared/components/screen-lifecycle/index.js.map +1 -1
- package/lib/commonjs/shared/hooks/navigation/use-navigation-helpers.js +10 -4
- package/lib/commonjs/shared/hooks/navigation/use-navigation-helpers.js.map +1 -1
- package/lib/commonjs/shared/hooks/navigation/use-stack.js +63 -6
- package/lib/commonjs/shared/hooks/navigation/use-stack.js.map +1 -1
- package/lib/commonjs/shared/index.js +8 -0
- package/lib/commonjs/shared/index.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js +18 -29
- package/lib/commonjs/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/descriptors/index.js +6 -0
- package/lib/commonjs/shared/providers/screen/descriptors/index.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/ownership/resolve-ownership.js +2 -1
- package/lib/commonjs/shared/providers/screen/gestures/ownership/resolve-ownership.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pan/pan-lifecycle.js +4 -1
- package/lib/commonjs/shared/providers/screen/gestures/pan/pan-lifecycle.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pan/use-pan-behavior.js +4 -3
- package/lib/commonjs/shared/providers/screen/gestures/pan/use-pan-behavior.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pinch/pinch-lifecycle.js +4 -1
- package/lib/commonjs/shared/providers/screen/gestures/pinch/pinch-lifecycle.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/gestures/pinch/use-pinch-behavior.js +4 -3
- package/lib/commonjs/shared/providers/screen/gestures/pinch/use-pinch-behavior.js.map +1 -1
- package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +16 -1
- package/lib/commonjs/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
- package/lib/commonjs/shared/providers/stack/direct.provider.js +4 -3
- package/lib/commonjs/shared/providers/stack/direct.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.js +199 -0
- package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.js.map +1 -0
- package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.js +62 -0
- package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.js.map +1 -0
- package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.js +81 -0
- package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.js.map +1 -0
- package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.js +123 -0
- package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.js.map +1 -0
- package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/types.js +6 -0
- package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/types.js.map +1 -0
- package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/index.js +24 -0
- package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/index.js.map +1 -0
- package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.js +131 -0
- package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.js.map +1 -0
- package/lib/commonjs/shared/providers/stack/managed.provider.js +18 -29
- package/lib/commonjs/shared/providers/stack/managed.provider.js.map +1 -1
- package/lib/commonjs/shared/types/stack.types.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js +47 -50
- package/lib/commonjs/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/navigation/zoom/config.js +1 -1
- package/lib/commonjs/shared/utils/create-provider.js +99 -10
- package/lib/commonjs/shared/utils/create-provider.js.map +1 -1
- package/lib/commonjs/shared/utils/navigation/resolve-scene-neighbors.js +8 -5
- package/lib/commonjs/shared/utils/navigation/resolve-scene-neighbors.js.map +1 -1
- package/lib/commonjs/shared/utils/navigation/sync-routes-with-removed.js +23 -6
- package/lib/commonjs/shared/utils/navigation/sync-routes-with-removed.js.map +1 -1
- package/lib/commonjs/shared/utils/visibility-block-offset.js +13 -0
- package/lib/commonjs/shared/utils/visibility-block-offset.js.map +1 -0
- package/lib/module/blank-stack/components/stack-view.js +36 -40
- package/lib/module/blank-stack/components/stack-view.js.map +1 -1
- package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js +7 -14
- package/lib/module/blank-stack/navigators/create-blank-stack-navigator.js.map +1 -1
- package/lib/module/component-stack/components/stack-view.js +4 -11
- package/lib/module/component-stack/components/stack-view.js.map +1 -1
- package/lib/module/component-stack/navigators/create-component-stack-navigator.js +1 -1
- package/lib/module/native-stack/navigators/createNativeStackNavigator.js +6 -0
- package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -1
- package/lib/module/shared/adapters/with-screen-transitions/context.js +23 -0
- package/lib/module/shared/adapters/with-screen-transitions/context.js.map +1 -0
- package/lib/module/shared/adapters/with-screen-transitions/index.js +66 -0
- package/lib/module/shared/adapters/with-screen-transitions/index.js.map +1 -0
- package/lib/module/shared/adapters/with-screen-transitions/options.js +98 -0
- package/lib/module/shared/adapters/with-screen-transitions/options.js.map +1 -0
- package/lib/module/shared/adapters/with-screen-transitions/stack-layout.js +138 -0
- package/lib/module/shared/adapters/with-screen-transitions/stack-layout.js.map +1 -0
- package/lib/module/shared/adapters/with-screen-transitions/types.js +4 -0
- package/lib/module/shared/adapters/with-screen-transitions/types.js.map +1 -0
- package/lib/module/shared/components/activity/helpers.js +5 -0
- package/lib/module/shared/components/activity/helpers.js.map +1 -0
- package/lib/module/shared/components/activity/index.js +5 -0
- package/lib/module/shared/components/activity/index.js.map +1 -0
- package/lib/module/shared/components/activity/variants/activity-container.js +24 -0
- package/lib/module/shared/components/activity/variants/activity-container.js.map +1 -0
- package/lib/module/shared/components/activity/variants/activity-screen.js +103 -0
- package/lib/module/shared/components/activity/variants/activity-screen.js.map +1 -0
- package/lib/module/shared/components/create-boundary-component/hooks/use-measurer.js +11 -5
- package/lib/module/shared/components/create-boundary-component/hooks/use-measurer.js.map +1 -1
- package/lib/module/shared/components/create-boundary-component/utils/measured-bounds.js +11 -0
- package/lib/module/shared/components/create-boundary-component/utils/measured-bounds.js.map +1 -1
- package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js +8 -17
- package/lib/module/shared/components/screen-lifecycle/hooks/use-close-transition-intent.js.map +1 -1
- package/lib/module/shared/components/screen-lifecycle/index.js +1 -1
- package/lib/module/shared/components/screen-lifecycle/index.js.map +1 -1
- package/lib/module/shared/hooks/navigation/use-navigation-helpers.js +11 -5
- package/lib/module/shared/hooks/navigation/use-navigation-helpers.js.map +1 -1
- package/lib/module/shared/hooks/navigation/use-stack.js +63 -6
- package/lib/module/shared/hooks/navigation/use-stack.js.map +1 -1
- package/lib/module/shared/index.js +3 -0
- package/lib/module/shared/index.js.map +1 -1
- package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js +17 -29
- package/lib/module/shared/providers/screen/descriptors/descriptors.provider.js.map +1 -1
- package/lib/module/shared/providers/screen/descriptors/index.js +1 -1
- package/lib/module/shared/providers/screen/descriptors/index.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/ownership/resolve-ownership.js +2 -1
- package/lib/module/shared/providers/screen/gestures/ownership/resolve-ownership.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js +2 -2
- package/lib/module/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pan/pan-lifecycle.js +5 -2
- package/lib/module/shared/providers/screen/gestures/pan/pan-lifecycle.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pan/use-pan-behavior.js +4 -3
- package/lib/module/shared/providers/screen/gestures/pan/use-pan-behavior.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pinch/pinch-lifecycle.js +5 -2
- package/lib/module/shared/providers/screen/gestures/pinch/pinch-lifecycle.js.map +1 -1
- package/lib/module/shared/providers/screen/gestures/pinch/use-pinch-behavior.js +4 -3
- package/lib/module/shared/providers/screen/gestures/pinch/use-pinch-behavior.js.map +1 -1
- package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js +16 -1
- package/lib/module/shared/providers/screen/styles/hooks/use-maybe-block-visibility.js.map +1 -1
- package/lib/module/shared/providers/stack/direct.provider.js +5 -4
- package/lib/module/shared/providers/stack/direct.provider.js.map +1 -1
- package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.js +194 -0
- package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.js.map +1 -0
- package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.js +57 -0
- package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.js.map +1 -0
- package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.js +69 -0
- package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.js.map +1 -0
- package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.js +118 -0
- package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.js.map +1 -0
- package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/types.js +4 -0
- package/lib/module/shared/providers/stack/helpers/managed-stack-state/helpers/types.js.map +1 -0
- package/lib/module/shared/providers/stack/helpers/managed-stack-state/index.js +19 -0
- package/lib/module/shared/providers/stack/helpers/managed-stack-state/index.js.map +1 -0
- package/lib/module/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.js +126 -0
- package/lib/module/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.js.map +1 -0
- package/lib/module/shared/providers/stack/managed.provider.js +19 -30
- package/lib/module/shared/providers/stack/managed.provider.js.map +1 -1
- package/lib/module/shared/types/stack.types.js.map +1 -1
- package/lib/module/shared/utils/bounds/navigation/zoom/build.js +45 -48
- package/lib/module/shared/utils/bounds/navigation/zoom/build.js.map +1 -1
- package/lib/module/shared/utils/bounds/navigation/zoom/config.js +1 -1
- package/lib/module/shared/utils/create-provider.js +100 -11
- package/lib/module/shared/utils/create-provider.js.map +1 -1
- package/lib/module/shared/utils/navigation/resolve-scene-neighbors.js +8 -5
- package/lib/module/shared/utils/navigation/resolve-scene-neighbors.js.map +1 -1
- package/lib/module/shared/utils/navigation/sync-routes-with-removed.js +23 -6
- package/lib/module/shared/utils/navigation/sync-routes-with-removed.js.map +1 -1
- package/lib/module/shared/utils/visibility-block-offset.js +8 -0
- package/lib/module/shared/utils/visibility-block-offset.js.map +1 -0
- package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -1
- package/lib/typescript/blank-stack/index.d.ts +1 -1
- package/lib/typescript/blank-stack/index.d.ts.map +1 -1
- package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts +4 -6
- package/lib/typescript/blank-stack/navigators/create-blank-stack-navigator.d.ts.map +1 -1
- package/lib/typescript/blank-stack/types.d.ts +41 -29
- package/lib/typescript/blank-stack/types.d.ts.map +1 -1
- package/lib/typescript/component-stack/components/stack-view.d.ts.map +1 -1
- package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts +1 -1
- package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +5 -0
- package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts.map +1 -1
- package/lib/typescript/native-stack/types.d.ts +25 -0
- package/lib/typescript/native-stack/types.d.ts.map +1 -1
- package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts +15 -0
- package/lib/typescript/shared/adapters/with-screen-transitions/context.d.ts.map +1 -0
- package/lib/typescript/shared/adapters/with-screen-transitions/index.d.ts +11 -0
- package/lib/typescript/shared/adapters/with-screen-transitions/index.d.ts.map +1 -0
- package/lib/typescript/shared/adapters/with-screen-transitions/options.d.ts +16 -0
- package/lib/typescript/shared/adapters/with-screen-transitions/options.d.ts.map +1 -0
- package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts +12 -0
- package/lib/typescript/shared/adapters/with-screen-transitions/stack-layout.d.ts.map +1 -0
- package/lib/typescript/shared/adapters/with-screen-transitions/types.d.ts +24 -0
- package/lib/typescript/shared/adapters/with-screen-transitions/types.d.ts.map +1 -0
- package/lib/typescript/shared/components/activity/helpers.d.ts +4 -0
- package/lib/typescript/shared/components/activity/helpers.d.ts.map +1 -0
- package/lib/typescript/shared/components/activity/index.d.ts +3 -0
- package/lib/typescript/shared/components/activity/index.d.ts.map +1 -0
- package/lib/typescript/shared/components/activity/variants/activity-container.d.ts +6 -0
- package/lib/typescript/shared/components/activity/variants/activity-container.d.ts.map +1 -0
- package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts +13 -0
- package/lib/typescript/shared/components/activity/variants/activity-screen.d.ts.map +1 -0
- package/lib/typescript/shared/components/create-boundary-component/hooks/use-measurer.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-boundary-component/index.d.ts +2 -2
- package/lib/typescript/shared/components/create-boundary-component/utils/measured-bounds.d.ts +1 -0
- package/lib/typescript/shared/components/create-boundary-component/utils/measured-bounds.d.ts.map +1 -1
- package/lib/typescript/shared/components/screen-lifecycle/hooks/use-close-transition-intent.d.ts +1 -2
- package/lib/typescript/shared/components/screen-lifecycle/hooks/use-close-transition-intent.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/navigation/use-navigation-helpers.d.ts +1 -0
- package/lib/typescript/shared/hooks/navigation/use-navigation-helpers.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/navigation/use-stack.d.ts +13 -1
- package/lib/typescript/shared/hooks/navigation/use-stack.d.ts.map +1 -1
- package/lib/typescript/shared/index.d.ts +15 -11
- package/lib/typescript/shared/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts +11 -3
- package/lib/typescript/shared/providers/screen/descriptors/descriptors.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/descriptors/index.d.ts +1 -1
- package/lib/typescript/shared/providers/screen/descriptors/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/ownership/resolve-ownership.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pan/pan-lifecycle.d.ts +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pan/pan-lifecycle.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pan/use-pan-behavior.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pinch/pinch-lifecycle.d.ts +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pinch/pinch-lifecycle.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/gestures/pinch/use-pinch-behavior.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts +3 -1
- package/lib/typescript/shared/providers/screen/styles/hooks/use-maybe-block-visibility.d.ts.map +1 -1
- package/lib/typescript/shared/providers/stack/direct.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.d.ts +13 -0
- package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.d.ts.map +1 -0
- package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.d.ts +12 -0
- package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.d.ts.map +1 -0
- package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.d.ts +11 -0
- package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.d.ts.map +1 -0
- package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.d.ts +12 -0
- package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.d.ts.map +1 -0
- package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/types.d.ts +40 -0
- package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/helpers/types.d.ts.map +1 -0
- package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/index.d.ts +12 -0
- package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/index.d.ts.map +1 -0
- package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.d.ts +13 -0
- package/lib/typescript/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.d.ts.map +1 -0
- package/lib/typescript/shared/providers/stack/managed.provider.d.ts.map +1 -1
- package/lib/typescript/shared/types/bounds.types.d.ts +27 -0
- package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/index.d.ts +2 -2
- package/lib/typescript/shared/types/index.d.ts.map +1 -1
- package/lib/typescript/shared/types/providers/managed-stack.types.d.ts +3 -9
- package/lib/typescript/shared/types/providers/managed-stack.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/screen.types.d.ts +24 -0
- package/lib/typescript/shared/types/screen.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/stack.types.d.ts +7 -0
- package/lib/typescript/shared/types/stack.types.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/navigation/zoom/build.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/navigation/zoom/config.d.ts +1 -1
- package/lib/typescript/shared/utils/create-provider.d.ts +17 -3
- package/lib/typescript/shared/utils/create-provider.d.ts.map +1 -1
- package/lib/typescript/shared/utils/navigation/resolve-scene-neighbors.d.ts +2 -1
- package/lib/typescript/shared/utils/navigation/resolve-scene-neighbors.d.ts.map +1 -1
- package/lib/typescript/shared/utils/navigation/sync-routes-with-removed.d.ts +2 -1
- package/lib/typescript/shared/utils/navigation/sync-routes-with-removed.d.ts.map +1 -1
- package/lib/typescript/shared/utils/visibility-block-offset.d.ts +2 -0
- package/lib/typescript/shared/utils/visibility-block-offset.d.ts.map +1 -0
- package/package.json +11 -1
- package/src/blank-stack/components/stack-view.tsx +54 -48
- package/src/blank-stack/index.ts +1 -0
- package/src/blank-stack/navigators/create-blank-stack-navigator.tsx +7 -15
- package/src/blank-stack/types.ts +44 -29
- package/src/component-stack/components/stack-view.tsx +4 -11
- package/src/component-stack/navigators/create-component-stack-navigator.tsx +1 -1
- package/src/native-stack/navigators/createNativeStackNavigator.tsx +5 -0
- package/src/native-stack/types.ts +25 -0
- package/src/shared/adapters/with-screen-transitions/context.tsx +42 -0
- package/src/shared/adapters/with-screen-transitions/index.tsx +155 -0
- package/src/shared/adapters/with-screen-transitions/options.ts +172 -0
- package/src/shared/adapters/with-screen-transitions/stack-layout.tsx +233 -0
- package/src/shared/adapters/with-screen-transitions/types.ts +28 -0
- package/src/shared/components/activity/helpers.ts +8 -0
- package/src/shared/components/activity/index.tsx +2 -0
- package/src/shared/components/activity/variants/activity-container.tsx +25 -0
- package/src/shared/components/activity/variants/activity-screen.tsx +133 -0
- package/src/shared/components/create-boundary-component/hooks/use-measurer.ts +23 -4
- package/src/shared/components/create-boundary-component/utils/measured-bounds.ts +15 -0
- package/src/shared/components/screen-lifecycle/hooks/use-close-transition-intent.ts +9 -26
- package/src/shared/components/screen-lifecycle/index.tsx +1 -1
- package/src/shared/hooks/navigation/use-navigation-helpers.ts +9 -3
- package/src/shared/hooks/navigation/use-stack.tsx +115 -6
- package/src/shared/index.ts +9 -0
- package/src/shared/providers/screen/descriptors/descriptors.provider.tsx +31 -31
- package/src/shared/providers/screen/descriptors/index.tsx +1 -0
- package/src/shared/providers/screen/gestures/ownership/resolve-ownership.ts +2 -1
- package/src/shared/providers/screen/gestures/ownership/use-walk-up-and-register-shadowing-claims.ts +2 -2
- package/src/shared/providers/screen/gestures/pan/pan-lifecycle.ts +7 -2
- package/src/shared/providers/screen/gestures/pan/use-pan-behavior.ts +10 -2
- package/src/shared/providers/screen/gestures/pinch/pinch-lifecycle.ts +7 -2
- package/src/shared/providers/screen/gestures/pinch/use-pinch-behavior.ts +8 -3
- package/src/shared/providers/screen/styles/hooks/use-maybe-block-visibility.tsx +17 -1
- package/src/shared/providers/stack/direct.provider.tsx +13 -4
- package/src/shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.ts +368 -0
- package/src/shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.ts +129 -0
- package/src/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.ts +139 -0
- package/src/shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.ts +198 -0
- package/src/shared/providers/stack/helpers/managed-stack-state/helpers/types.ts +57 -0
- package/src/shared/providers/stack/helpers/managed-stack-state/index.ts +40 -0
- package/src/shared/providers/stack/helpers/managed-stack-state/managed-stack-controller.ts +160 -0
- package/src/shared/providers/stack/managed.provider.tsx +23 -39
- package/src/shared/types/bounds.types.ts +27 -0
- package/src/shared/types/index.ts +3 -0
- package/src/shared/types/providers/managed-stack.types.ts +6 -8
- package/src/shared/types/screen.types.ts +25 -0
- package/src/shared/types/stack.types.ts +11 -0
- package/src/shared/utils/bounds/navigation/zoom/build.ts +62 -71
- package/src/shared/utils/bounds/navigation/zoom/config.ts +1 -1
- package/src/shared/utils/create-provider.tsx +183 -8
- package/src/shared/utils/navigation/resolve-scene-neighbors.ts +9 -4
- package/src/shared/utils/navigation/sync-routes-with-removed.ts +38 -7
- package/src/shared/utils/visibility-block-offset.ts +4 -0
- package/lib/commonjs/blank-stack/components/stack-view.native.js +0 -64
- package/lib/commonjs/blank-stack/components/stack-view.native.js.map +0 -1
- package/lib/commonjs/shared/components/native-screen-container.js +0 -42
- package/lib/commonjs/shared/components/native-screen-container.js.map +0 -1
- package/lib/commonjs/shared/components/native-screen.js +0 -125
- package/lib/commonjs/shared/components/native-screen.js.map +0 -1
- package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.js +0 -51
- package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.js.map +0 -1
- package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.js +0 -15
- package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.js.map +0 -1
- package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.js +0 -14
- package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.js.map +0 -1
- package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.js +0 -13
- package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.js.map +0 -1
- package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/index.js +0 -101
- package/lib/commonjs/shared/providers/stack/helpers/use-local-routes/index.js.map +0 -1
- package/lib/module/blank-stack/components/stack-view.native.js +0 -60
- package/lib/module/blank-stack/components/stack-view.native.js.map +0 -1
- package/lib/module/shared/components/native-screen-container.js +0 -37
- package/lib/module/shared/components/native-screen-container.js.map +0 -1
- package/lib/module/shared/components/native-screen.js +0 -119
- package/lib/module/shared/components/native-screen.js.map +0 -1
- package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.js +0 -47
- package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.js.map +0 -1
- package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.js +0 -10
- package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.js.map +0 -1
- package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.js +0 -9
- package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.js.map +0 -1
- package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.js +0 -8
- package/lib/module/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.js.map +0 -1
- package/lib/module/shared/providers/stack/helpers/use-local-routes/index.js +0 -95
- package/lib/module/shared/providers/stack/helpers/use-local-routes/index.js.map +0 -1
- package/lib/typescript/blank-stack/components/stack-view.native.d.ts +0 -3
- package/lib/typescript/blank-stack/components/stack-view.native.d.ts.map +0 -1
- package/lib/typescript/shared/components/native-screen-container.d.ts +0 -6
- package/lib/typescript/shared/components/native-screen-container.d.ts.map +0 -1
- package/lib/typescript/shared/components/native-screen.d.ts +0 -12
- package/lib/typescript/shared/components/native-screen.d.ts.map +0 -1
- package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.d.ts +0 -10
- package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.d.ts.map +0 -1
- package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.d.ts +0 -2
- package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.d.ts.map +0 -1
- package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.d.ts +0 -3
- package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.d.ts.map +0 -1
- package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.d.ts +0 -3
- package/lib/typescript/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.d.ts.map +0 -1
- package/lib/typescript/shared/providers/stack/helpers/use-local-routes/index.d.ts +0 -19
- package/lib/typescript/shared/providers/stack/helpers/use-local-routes/index.d.ts.map +0 -1
- package/src/blank-stack/components/stack-view.native.tsx +0 -74
- package/src/shared/components/native-screen-container.tsx +0 -33
- package/src/shared/components/native-screen.tsx +0 -176
- package/src/shared/providers/stack/helpers/use-local-routes/helpers/align-routes-with-latest.ts +0 -65
- package/src/shared/providers/stack/helpers/use-local-routes/helpers/are-descriptors-equal.ts +0 -15
- package/src/shared/providers/stack/helpers/use-local-routes/helpers/have-same-route-keys.ts +0 -12
- package/src/shared/providers/stack/helpers/use-local-routes/helpers/routes-are-identical.ts +0 -11
- package/src/shared/providers/stack/helpers/use-local-routes/index.ts +0 -147
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.buildManagedStackState = void 0;
|
|
7
|
+
var _resolveSceneNeighbors = require("../../../../../utils/navigation/resolve-scene-neighbors");
|
|
8
|
+
var _visibility = require("../../../../../utils/overlay/visibility");
|
|
9
|
+
var _helpers = require("./helpers");
|
|
10
|
+
const areRouteKeysEqual = (a, b) => {
|
|
11
|
+
if (a === b) return true;
|
|
12
|
+
if (a.length !== b.length) return false;
|
|
13
|
+
return a.every((key, index) => key === b[index]);
|
|
14
|
+
};
|
|
15
|
+
const resolveStableDescriptorSource = ({
|
|
16
|
+
routeKey,
|
|
17
|
+
sourceDescriptor,
|
|
18
|
+
previousState
|
|
19
|
+
}) => {
|
|
20
|
+
const previousSourceDescriptor = previousState?.sourceDescriptors[routeKey];
|
|
21
|
+
if (previousSourceDescriptor && (0, _helpers.areDescriptorSourcesEquivalent)(previousSourceDescriptor, sourceDescriptor)) {
|
|
22
|
+
return previousSourceDescriptor;
|
|
23
|
+
}
|
|
24
|
+
return sourceDescriptor;
|
|
25
|
+
};
|
|
26
|
+
const getSceneActivity = ({
|
|
27
|
+
focusedIndex,
|
|
28
|
+
isClosing,
|
|
29
|
+
sceneIndex,
|
|
30
|
+
topIndex,
|
|
31
|
+
topIsClosing
|
|
32
|
+
}) => {
|
|
33
|
+
if (isClosing) {
|
|
34
|
+
return "closing";
|
|
35
|
+
}
|
|
36
|
+
if (topIsClosing) {
|
|
37
|
+
return sceneIndex === focusedIndex ? "inert" : "inactive";
|
|
38
|
+
}
|
|
39
|
+
if (sceneIndex === topIndex) {
|
|
40
|
+
return "active";
|
|
41
|
+
}
|
|
42
|
+
if (sceneIndex === topIndex - 1) {
|
|
43
|
+
return "inert";
|
|
44
|
+
}
|
|
45
|
+
return "inactive";
|
|
46
|
+
};
|
|
47
|
+
const getSceneActivityWindow = ({
|
|
48
|
+
props,
|
|
49
|
+
routes,
|
|
50
|
+
closingRouteKeys
|
|
51
|
+
}) => {
|
|
52
|
+
const focusedRouteKey = props.state.routes[props.state.index]?.key;
|
|
53
|
+
let focusedIndex = Math.max(0, routes.findIndex(route => route.key === focusedRouteKey));
|
|
54
|
+
while (focusedIndex > 0 && closingRouteKeys.has(routes[focusedIndex]?.key)) {
|
|
55
|
+
focusedIndex--;
|
|
56
|
+
}
|
|
57
|
+
const topIndex = routes.length - 1;
|
|
58
|
+
const topRoute = routes[topIndex];
|
|
59
|
+
const topIsClosing = topRoute !== undefined && closingRouteKeys.has(topRoute.key);
|
|
60
|
+
return {
|
|
61
|
+
focusedIndex,
|
|
62
|
+
topIndex,
|
|
63
|
+
topIsClosing
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
const withDescriptorActivityState = (descriptor, activity) => {
|
|
67
|
+
if (descriptor.activity === activity) {
|
|
68
|
+
return descriptor;
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
...descriptor,
|
|
72
|
+
activity
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
const buildBaseScenes = ({
|
|
76
|
+
routes,
|
|
77
|
+
descriptors,
|
|
78
|
+
closingRouteKeys,
|
|
79
|
+
previousState,
|
|
80
|
+
activityWindow
|
|
81
|
+
}) => {
|
|
82
|
+
const routeKeys = [];
|
|
83
|
+
const scenes = [];
|
|
84
|
+
const routeChildStates = {};
|
|
85
|
+
const sourceDescriptors = {};
|
|
86
|
+
const managedDescriptors = {};
|
|
87
|
+
let shouldShowFloatOverlay = false;
|
|
88
|
+
for (let sceneIndex = 0; sceneIndex < routes.length; sceneIndex++) {
|
|
89
|
+
const route = routes[sceneIndex];
|
|
90
|
+
const rawSourceDescriptor = descriptors[route.key];
|
|
91
|
+
if (!rawSourceDescriptor) {
|
|
92
|
+
throw new Error(`Missing descriptor for route "${route.key}"`);
|
|
93
|
+
}
|
|
94
|
+
const routeChildState = (0, _helpers.getRouteChildState)(route);
|
|
95
|
+
const childStateUnchanged = !previousState || Object.is(previousState.routeChildStates[route.key], routeChildState);
|
|
96
|
+
const sourceDescriptor = childStateUnchanged ? resolveStableDescriptorSource({
|
|
97
|
+
routeKey: route.key,
|
|
98
|
+
sourceDescriptor: rawSourceDescriptor,
|
|
99
|
+
previousState
|
|
100
|
+
}) : rawSourceDescriptor;
|
|
101
|
+
const activity = getSceneActivity({
|
|
102
|
+
...activityWindow,
|
|
103
|
+
isClosing: closingRouteKeys.has(route.key),
|
|
104
|
+
sceneIndex
|
|
105
|
+
});
|
|
106
|
+
const previousDescriptor = previousState?.descriptors[route.key];
|
|
107
|
+
const descriptor = previousDescriptor && childStateUnchanged && previousDescriptor.route === sourceDescriptor.route && previousDescriptor.navigation === sourceDescriptor.navigation && previousDescriptor.options === sourceDescriptor.options && previousDescriptor.activity === activity ? previousDescriptor : withDescriptorActivityState(sourceDescriptor, activity);
|
|
108
|
+
routeKeys.push(route.key);
|
|
109
|
+
routeChildStates[route.key] = routeChildState;
|
|
110
|
+
sourceDescriptors[route.key] = sourceDescriptor;
|
|
111
|
+
managedDescriptors[route.key] = descriptor;
|
|
112
|
+
if (!shouldShowFloatOverlay) {
|
|
113
|
+
shouldShowFloatOverlay = (0, _visibility.isOverlayVisible)(sourceDescriptor?.options);
|
|
114
|
+
}
|
|
115
|
+
scenes.push({
|
|
116
|
+
route: descriptor.route,
|
|
117
|
+
descriptor
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
scenes,
|
|
122
|
+
routeChildStates,
|
|
123
|
+
sourceDescriptors,
|
|
124
|
+
descriptors: managedDescriptors,
|
|
125
|
+
routeKeys,
|
|
126
|
+
shouldShowFloatOverlay
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
const withSceneRelationships = ({
|
|
130
|
+
scenes,
|
|
131
|
+
sourceDescriptors,
|
|
132
|
+
closingRouteKeys,
|
|
133
|
+
previousState
|
|
134
|
+
}) => {
|
|
135
|
+
const isRouteClosing = routeKey => closingRouteKeys.has(routeKey);
|
|
136
|
+
const closingRouteOrder = new Map(Array.from(closingRouteKeys, (routeKey, index) => [routeKey, index]));
|
|
137
|
+
const previousScenesByRouteKey = previousState ? new Map(previousState.scenes.map(scene => [scene.route.key, scene])) : undefined;
|
|
138
|
+
let reusedEveryScene = previousState !== undefined && scenes.length === previousState.scenes.length;
|
|
139
|
+
const relationshipScenes = scenes.map(scene => ({
|
|
140
|
+
route: scene.route,
|
|
141
|
+
descriptor: sourceDescriptors[scene.route.key] ?? scene.descriptor
|
|
142
|
+
}));
|
|
143
|
+
const nextScenes = scenes.map((scene, sceneIndex) => {
|
|
144
|
+
const {
|
|
145
|
+
previousDescriptor,
|
|
146
|
+
nextDescriptor
|
|
147
|
+
} = (0, _resolveSceneNeighbors.resolveSceneNeighbors)(relationshipScenes, sceneIndex, isRouteClosing, routeKey => closingRouteOrder.get(routeKey));
|
|
148
|
+
const nextScene = {
|
|
149
|
+
...scene,
|
|
150
|
+
previousDescriptor,
|
|
151
|
+
nextDescriptor
|
|
152
|
+
};
|
|
153
|
+
const previousScene = previousState?.scenes[sceneIndex]?.route === scene.route ? previousState.scenes[sceneIndex] : previousScenesByRouteKey?.get(scene.route.key);
|
|
154
|
+
if (previousScene && previousScene.route === nextScene.route && previousScene.descriptor === nextScene.descriptor && previousScene.previousDescriptor === nextScene.previousDescriptor && previousScene.nextDescriptor === nextScene.nextDescriptor) {
|
|
155
|
+
return previousScene;
|
|
156
|
+
}
|
|
157
|
+
reusedEveryScene = false;
|
|
158
|
+
return nextScene;
|
|
159
|
+
});
|
|
160
|
+
if (reusedEveryScene && previousState) {
|
|
161
|
+
return previousState.scenes;
|
|
162
|
+
}
|
|
163
|
+
return nextScenes;
|
|
164
|
+
};
|
|
165
|
+
const buildManagedStackState = params => {
|
|
166
|
+
const activityWindow = getSceneActivityWindow(params);
|
|
167
|
+
const focusedRouteKey = params.props.state.routes[params.props.state.index]?.key;
|
|
168
|
+
const {
|
|
169
|
+
scenes: baseScenes,
|
|
170
|
+
routeChildStates,
|
|
171
|
+
sourceDescriptors,
|
|
172
|
+
descriptors: managedDescriptors,
|
|
173
|
+
routeKeys,
|
|
174
|
+
shouldShowFloatOverlay
|
|
175
|
+
} = buildBaseScenes({
|
|
176
|
+
...params,
|
|
177
|
+
activityWindow
|
|
178
|
+
});
|
|
179
|
+
const scenes = withSceneRelationships({
|
|
180
|
+
scenes: baseScenes,
|
|
181
|
+
sourceDescriptors,
|
|
182
|
+
closingRouteKeys: params.closingRouteKeys,
|
|
183
|
+
previousState: params.previousState
|
|
184
|
+
});
|
|
185
|
+
const closingRouteKeys = new Set(params.closingRouteKeys);
|
|
186
|
+
return {
|
|
187
|
+
routes: params.routes,
|
|
188
|
+
descriptors: params.previousState && (0, _helpers.areDescriptorsEqual)(params.previousState.descriptors, managedDescriptors) ? params.previousState.descriptors : managedDescriptors,
|
|
189
|
+
sourceDescriptors: params.previousState && (0, _helpers.areDescriptorsEqual)(params.previousState.sourceDescriptors, sourceDescriptors) ? params.previousState.sourceDescriptors : sourceDescriptors,
|
|
190
|
+
focusedRouteKey,
|
|
191
|
+
routeChildStates: params.previousState && (0, _helpers.areRouteChildStateMapsEqual)(params.previousState.routeChildStates, routeChildStates) ? params.previousState.routeChildStates : routeChildStates,
|
|
192
|
+
scenes,
|
|
193
|
+
routeKeys: params.previousState && areRouteKeysEqual(params.previousState.routeKeys, routeKeys) ? params.previousState.routeKeys : routeKeys,
|
|
194
|
+
shouldShowFloatOverlay,
|
|
195
|
+
closingRouteKeys: params.previousState && (0, _helpers.setsAreEqual)(params.previousState.closingRouteKeys, closingRouteKeys) ? params.previousState.closingRouteKeys : closingRouteKeys
|
|
196
|
+
};
|
|
197
|
+
};
|
|
198
|
+
exports.buildManagedStackState = buildManagedStackState;
|
|
199
|
+
//# sourceMappingURL=build-managed-stack-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_resolveSceneNeighbors","require","_visibility","_helpers","areRouteKeysEqual","a","b","length","every","key","index","resolveStableDescriptorSource","routeKey","sourceDescriptor","previousState","previousSourceDescriptor","sourceDescriptors","areDescriptorSourcesEquivalent","getSceneActivity","focusedIndex","isClosing","sceneIndex","topIndex","topIsClosing","getSceneActivityWindow","props","routes","closingRouteKeys","focusedRouteKey","state","Math","max","findIndex","route","has","topRoute","undefined","withDescriptorActivityState","descriptor","activity","buildBaseScenes","descriptors","activityWindow","routeKeys","scenes","routeChildStates","managedDescriptors","shouldShowFloatOverlay","rawSourceDescriptor","Error","routeChildState","getRouteChildState","childStateUnchanged","Object","is","previousDescriptor","navigation","options","push","isOverlayVisible","withSceneRelationships","isRouteClosing","closingRouteOrder","Map","Array","from","previousScenesByRouteKey","map","scene","reusedEveryScene","relationshipScenes","nextScenes","nextDescriptor","resolveSceneNeighbors","get","nextScene","previousScene","buildManagedStackState","params","baseScenes","Set","areDescriptorsEqual","areRouteChildStateMapsEqual","setsAreEqual","exports"],"sourceRoot":"../../../../../../../../src","sources":["shared/providers/stack/helpers/managed-stack-state/helpers/build-managed-stack-state.ts"],"mappings":";;;;;;AAQA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AA0BA,MAAMG,iBAAiB,GAAGA,CAACC,CAAW,EAAEC,CAAW,KAAc;EAChE,IAAID,CAAC,KAAKC,CAAC,EAAE,OAAO,IAAI;EACxB,IAAID,CAAC,CAACE,MAAM,KAAKD,CAAC,CAACC,MAAM,EAAE,OAAO,KAAK;EAEvC,OAAOF,CAAC,CAACG,KAAK,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAKD,GAAG,KAAKH,CAAC,CAACI,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,MAAMC,6BAA6B,GAAGA,CAEpC;EACDC,QAAQ;EACRC,gBAAgB;EAChBC;AAKD,CAAC,KAAyC;EACzC,MAAMC,wBAAwB,GAAGD,aAAa,EAAEE,iBAAiB,CAACJ,QAAQ,CAAC;EAE3E,IACCG,wBAAwB,IACxB,IAAAE,uCAA8B,EAACF,wBAAwB,EAAEF,gBAAgB,CAAC,EACzE;IACD,OAAOE,wBAAwB;EAChC;EAEA,OAAOF,gBAAgB;AACxB,CAAC;AAED,MAAMK,gBAAgB,GAAGA,CAAC;EACzBC,YAAY;EACZC,SAAS;EACTC,UAAU;EACVC,QAAQ;EACRC;AAID,CAAC,KAAyB;EACzB,IAAIH,SAAS,EAAE;IACd,OAAO,SAAS;EACjB;EAEA,IAAIG,YAAY,EAAE;IACjB,OAAOF,UAAU,KAAKF,YAAY,GAAG,OAAO,GAAG,UAAU;EAC1D;EAEA,IAAIE,UAAU,KAAKC,QAAQ,EAAE;IAC5B,OAAO,QAAQ;EAChB;EAEA,IAAID,UAAU,KAAKC,QAAQ,GAAG,CAAC,EAAE;IAChC,OAAO,OAAO;EACf;EAEA,OAAO,UAAU;AAClB,CAAC;AAED,MAAME,sBAAsB,GAAGA,CAG7B;EACDC,KAAK;EACLC,MAAM;EACNC;AAID,CAAC,KAA0B;EAC1B,MAAMC,eAAe,GAAGH,KAAK,CAACI,KAAK,CAACH,MAAM,CAACD,KAAK,CAACI,KAAK,CAACnB,KAAK,CAAC,EAAED,GAAG;EAElE,IAAIU,YAAY,GAAGW,IAAI,CAACC,GAAG,CAC1B,CAAC,EACDL,MAAM,CAACM,SAAS,CAAEC,KAAK,IAAKA,KAAK,CAACxB,GAAG,KAAKmB,eAAe,CAC1D,CAAC;EAED,OAAOT,YAAY,GAAG,CAAC,IAAIQ,gBAAgB,CAACO,GAAG,CAACR,MAAM,CAACP,YAAY,CAAC,EAAEV,GAAG,CAAC,EAAE;IAC3EU,YAAY,EAAE;EACf;EAEA,MAAMG,QAAQ,GAAGI,MAAM,CAACnB,MAAM,GAAG,CAAC;EAClC,MAAM4B,QAAQ,GAAGT,MAAM,CAACJ,QAAQ,CAAC;EACjC,MAAMC,YAAY,GACjBY,QAAQ,KAAKC,SAAS,IAAIT,gBAAgB,CAACO,GAAG,CAACC,QAAQ,CAAC1B,GAAG,CAAC;EAE7D,OAAO;IACNU,YAAY;IACZG,QAAQ;IACRC;EACD,CAAC;AACF,CAAC;AAED,MAAMc,2BAA2B,GAAGA,CACnCC,UAA8C,EAC9CC,QAA4B,KACX;EACjB,IAAID,UAAU,CAACC,QAAQ,KAAKA,QAAQ,EAAE;IACrC,OAAOD,UAAU;EAClB;EAEA,OAAO;IACN,GAAGA,UAAU;IACbC;EACD,CAAC;AACF,CAAC;AAED,MAAMC,eAAe,GAAGA,CAGtB;EACDd,MAAM;EACNe,WAAW;EACXd,gBAAgB;EAChBb,aAAa;EACb4B;AAGD,CAAC,KAAK;EACL,MAAMC,SAAmB,GAAG,EAAE;EAC9B,MAAMC,MAAqC,GAAG,EAAE;EAChD,MAAMC,gBAAyC,GAAG,CAAC,CAAC;EACpD,MAAM7B,iBAAiB,GAAG,CAAC,CAA0C;EACrE,MAAM8B,kBAAkB,GAAG,CAAC,CAAoC;EAChE,IAAIC,sBAAsB,GAAG,KAAK;EAElC,KAAK,IAAI1B,UAAU,GAAG,CAAC,EAAEA,UAAU,GAAGK,MAAM,CAACnB,MAAM,EAAEc,UAAU,EAAE,EAAE;IAClE,MAAMY,KAAK,GAAGP,MAAM,CAACL,UAAU,CAAyB;IAExD,MAAM2B,mBAAmB,GAAGP,WAAW,CAACR,KAAK,CAACxB,GAAG,CAErC;IAEZ,IAAI,CAACuC,mBAAmB,EAAE;MACzB,MAAM,IAAIC,KAAK,CAAC,iCAAiChB,KAAK,CAACxB,GAAG,GAAG,CAAC;IAC/D;IAEA,MAAMyC,eAAe,GAAG,IAAAC,2BAAkB,EAAClB,KAAK,CAAC;IACjD,MAAMmB,mBAAmB,GACxB,CAACtC,aAAa,IACduC,MAAM,CAACC,EAAE,CAACxC,aAAa,CAAC+B,gBAAgB,CAACZ,KAAK,CAACxB,GAAG,CAAC,EAAEyC,eAAe,CAAC;IAEtE,MAAMrC,gBAAgB,GAAGuC,mBAAmB,GACzCzC,6BAA6B,CAAC;MAC9BC,QAAQ,EAAEqB,KAAK,CAACxB,GAAG;MACnBI,gBAAgB,EAAEmC,mBAAmB;MACrClC;IACD,CAAC,CAAC,GACDkC,mBAAmB;IAEtB,MAAMT,QAAQ,GAAGrB,gBAAgB,CAAC;MACjC,GAAGwB,cAAc;MACjBtB,SAAS,EAAEO,gBAAgB,CAACO,GAAG,CAACD,KAAK,CAACxB,GAAG,CAAC;MAC1CY;IACD,CAAC,CAAC;IAEF,MAAMkC,kBAAkB,GAAGzC,aAAa,EAAE2B,WAAW,CAACR,KAAK,CAACxB,GAAG,CAAC;IAChE,MAAM6B,UAAU,GACfiB,kBAAkB,IAClBH,mBAAmB,IACnBG,kBAAkB,CAACtB,KAAK,KAAKpB,gBAAgB,CAACoB,KAAK,IACnDsB,kBAAkB,CAACC,UAAU,KAAK3C,gBAAgB,CAAC2C,UAAU,IAC7DD,kBAAkB,CAACE,OAAO,KAAK5C,gBAAgB,CAAC4C,OAAO,IACvDF,kBAAkB,CAAChB,QAAQ,KAAKA,QAAQ,GACrCgB,kBAAkB,GAClBlB,2BAA2B,CAACxB,gBAAgB,EAAE0B,QAAQ,CAAC;IAE3DI,SAAS,CAACe,IAAI,CAACzB,KAAK,CAACxB,GAAG,CAAC;IACzBoC,gBAAgB,CAACZ,KAAK,CAACxB,GAAG,CAAC,GAAGyC,eAAe;IAC7ClC,iBAAiB,CAACiB,KAAK,CAACxB,GAAG,CAAC,GAAGI,gBAAgB;IAC/CiC,kBAAkB,CAACb,KAAK,CAACxB,GAAG,CAAC,GAAG6B,UAAU;IAE1C,IAAI,CAACS,sBAAsB,EAAE;MAC5BA,sBAAsB,GAAG,IAAAY,4BAAgB,EAAC9C,gBAAgB,EAAE4C,OAAO,CAAC;IACrE;IAEAb,MAAM,CAACc,IAAI,CAAC;MACXzB,KAAK,EAAEK,UAAU,CAACL,KAAK;MACvBK;IACD,CAAC,CAAC;EACH;EAEA,OAAO;IACNM,MAAM;IACNC,gBAAgB;IAChB7B,iBAAiB;IACjByB,WAAW,EAAEK,kBAAkB;IAC/BH,SAAS;IACTI;EACD,CAAC;AACF,CAAC;AAED,MAAMa,sBAAsB,GAAGA,CAA0C;EACxEhB,MAAM;EACN5B,iBAAiB;EACjBW,gBAAgB;EAChBb;AAMD,CAAC,KAAoC;EACpC,MAAM+C,cAAc,GAAIjD,QAAgB,IAAKe,gBAAgB,CAACO,GAAG,CAACtB,QAAQ,CAAC;EAE3E,MAAMkD,iBAAiB,GAAG,IAAIC,GAAG,CAChCC,KAAK,CAACC,IAAI,CAACtC,gBAAgB,EAAE,CAACf,QAAQ,EAAEF,KAAK,KAAK,CAACE,QAAQ,EAAEF,KAAK,CAAC,CACpE,CAAC;EAED,MAAMwD,wBAAwB,GAAGpD,aAAa,GAC3C,IAAIiD,GAAG,CAACjD,aAAa,CAAC8B,MAAM,CAACuB,GAAG,CAAEC,KAAK,IAAK,CAACA,KAAK,CAACnC,KAAK,CAACxB,GAAG,EAAE2D,KAAK,CAAC,CAAC,CAAC,GACtEhC,SAAS;EAEZ,IAAIiC,gBAAgB,GACnBvD,aAAa,KAAKsB,SAAS,IAC3BQ,MAAM,CAACrC,MAAM,KAAKO,aAAa,CAAC8B,MAAM,CAACrC,MAAM;EAE9C,MAAM+D,kBAAkB,GAAG1B,MAAM,CAACuB,GAAG,CAAEC,KAAK,KAAM;IACjDnC,KAAK,EAAEmC,KAAK,CAACnC,KAAK;IAClBK,UAAU,EAAGtB,iBAAiB,CAACoD,KAAK,CAACnC,KAAK,CAACxB,GAAG,CAAC,IAC9C2D,KAAK,CAAC9B;EACR,CAAC,CAAC,CAAC;EAEH,MAAMiC,UAAU,GAAG3B,MAAM,CAACuB,GAAG,CAAC,CAACC,KAAK,EAAE/C,UAAU,KAAK;IACpD,MAAM;MAAEkC,kBAAkB;MAAEiB;IAAe,CAAC,GAAG,IAAAC,4CAAqB,EACnEH,kBAAkB,EAClBjD,UAAU,EACVwC,cAAc,EACbjD,QAAQ,IAAKkD,iBAAiB,CAACY,GAAG,CAAC9D,QAAQ,CAC7C,CAAC;IAED,MAAM+D,SAAS,GAAG;MACjB,GAAGP,KAAK;MACRb,kBAAkB;MAClBiB;IACD,CAAC;IAED,MAAMI,aAAa,GAClB9D,aAAa,EAAE8B,MAAM,CAACvB,UAAU,CAAC,EAAEY,KAAK,KAAKmC,KAAK,CAACnC,KAAK,GACrDnB,aAAa,CAAC8B,MAAM,CAACvB,UAAU,CAAC,GAChC6C,wBAAwB,EAAEQ,GAAG,CAACN,KAAK,CAACnC,KAAK,CAACxB,GAAG,CAAC;IAElD,IACCmE,aAAa,IACbA,aAAa,CAAC3C,KAAK,KAAK0C,SAAS,CAAC1C,KAAK,IACvC2C,aAAa,CAACtC,UAAU,KAAKqC,SAAS,CAACrC,UAAU,IACjDsC,aAAa,CAACrB,kBAAkB,KAAKoB,SAAS,CAACpB,kBAAkB,IACjEqB,aAAa,CAACJ,cAAc,KAAKG,SAAS,CAACH,cAAc,EACxD;MACD,OAAOI,aAAa;IACrB;IAEAP,gBAAgB,GAAG,KAAK;IACxB,OAAOM,SAAS;EACjB,CAAC,CAAC;EAEF,IAAIN,gBAAgB,IAAIvD,aAAa,EAAE;IACtC,OAAOA,aAAa,CAAC8B,MAAM;EAC5B;EAEA,OAAO2B,UAAU;AAClB,CAAC;AAEM,MAAMM,sBAAsB,GAIlCC,MAA8D,IAC3B;EACnC,MAAMpC,cAAc,GAAGlB,sBAAsB,CAACsD,MAAM,CAAC;EACrD,MAAMlD,eAAe,GACpBkD,MAAM,CAACrD,KAAK,CAACI,KAAK,CAACH,MAAM,CAACoD,MAAM,CAACrD,KAAK,CAACI,KAAK,CAACnB,KAAK,CAAC,EAAED,GAAG;EAEzD,MAAM;IACLmC,MAAM,EAAEmC,UAAU;IAClBlC,gBAAgB;IAChB7B,iBAAiB;IACjByB,WAAW,EAAEK,kBAAkB;IAC/BH,SAAS;IACTI;EACD,CAAC,GAAGP,eAAe,CAAC;IACnB,GAAGsC,MAAM;IACTpC;EACD,CAAC,CAAC;EAEF,MAAME,MAAM,GAAGgB,sBAAsB,CAAC;IACrChB,MAAM,EAAEmC,UAAU;IAClB/D,iBAAiB;IACjBW,gBAAgB,EAAEmD,MAAM,CAACnD,gBAAgB;IACzCb,aAAa,EAAEgE,MAAM,CAAChE;EACvB,CAAC,CAAC;EAEF,MAAMa,gBAAgB,GAAG,IAAIqD,GAAG,CAACF,MAAM,CAACnD,gBAAgB,CAAC;EAEzD,OAAO;IACND,MAAM,EAAEoD,MAAM,CAACpD,MAAM;IACrBe,WAAW,EACVqC,MAAM,CAAChE,aAAa,IACpB,IAAAmE,4BAAmB,EAACH,MAAM,CAAChE,aAAa,CAAC2B,WAAW,EAAEK,kBAAkB,CAAC,GACtEgC,MAAM,CAAChE,aAAa,CAAC2B,WAAW,GAChCK,kBAAkB;IACtB9B,iBAAiB,EAChB8D,MAAM,CAAChE,aAAa,IACpB,IAAAmE,4BAAmB,EAClBH,MAAM,CAAChE,aAAa,CAACE,iBAAiB,EACtCA,iBACD,CAAC,GACE8D,MAAM,CAAChE,aAAa,CAACE,iBAAiB,GACtCA,iBAAiB;IACrBY,eAAe;IACfiB,gBAAgB,EACfiC,MAAM,CAAChE,aAAa,IACpB,IAAAoE,oCAA2B,EAC1BJ,MAAM,CAAChE,aAAa,CAAC+B,gBAAgB,EACrCA,gBACD,CAAC,GACEiC,MAAM,CAAChE,aAAa,CAAC+B,gBAAgB,GACrCA,gBAAgB;IACpBD,MAAM;IACND,SAAS,EACRmC,MAAM,CAAChE,aAAa,IACpBV,iBAAiB,CAAC0E,MAAM,CAAChE,aAAa,CAAC6B,SAAS,EAAEA,SAAS,CAAC,GACzDmC,MAAM,CAAChE,aAAa,CAAC6B,SAAS,GAC9BA,SAAS;IACbI,sBAAsB;IACtBpB,gBAAgB,EACfmD,MAAM,CAAChE,aAAa,IACpB,IAAAqE,qBAAY,EAACL,MAAM,CAAChE,aAAa,CAACa,gBAAgB,EAAEA,gBAAgB,CAAC,GAClEmD,MAAM,CAAChE,aAAa,CAACa,gBAAgB,GACrCA;EACL,CAAC;AACF,CAAC;AAACyD,OAAA,CAAAP,sBAAA,GAAAA,sBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.deriveManagedStackState = void 0;
|
|
7
|
+
var _buildManagedStackState = require("./build-managed-stack-state");
|
|
8
|
+
var _helpers = require("./helpers");
|
|
9
|
+
var _reconcileManagedRoutes = require("./reconcile-managed-routes");
|
|
10
|
+
const routesAreIdentical = (a, b) => {
|
|
11
|
+
if (a === b) return true;
|
|
12
|
+
if (a.length !== b.length) return false;
|
|
13
|
+
return a.every((route, index) => route === b[index]);
|
|
14
|
+
};
|
|
15
|
+
const routeKeysAreEqual = (a, b) => {
|
|
16
|
+
if (a.length !== b.length) return false;
|
|
17
|
+
return a.every((route, index) => route.key === b[index]?.key);
|
|
18
|
+
};
|
|
19
|
+
const deriveManagedStackState = ({
|
|
20
|
+
props,
|
|
21
|
+
current,
|
|
22
|
+
previousRoutesSnapshot,
|
|
23
|
+
closingRouteKeys
|
|
24
|
+
}) => {
|
|
25
|
+
const nextRoutesSnapshot = props.state.routes;
|
|
26
|
+
const nextDescriptors = props.descriptors;
|
|
27
|
+
const nextRouteChildStates = (0, _helpers.getRouteChildStateMap)(nextRoutesSnapshot);
|
|
28
|
+
const nextFocusedRouteKey = nextRoutesSnapshot[props.state.index]?.key;
|
|
29
|
+
const focusedRouteUnchanged = current.focusedRouteKey === nextFocusedRouteKey;
|
|
30
|
+
const closingRouteKeysUnchanged = (0, _helpers.setsAreEqual)(current.closingRouteKeys, closingRouteKeys);
|
|
31
|
+
const routeChildStatesUnchanged = (0, _helpers.areRouteChildStateMapsEqual)(current.routeChildStates, nextRouteChildStates);
|
|
32
|
+
const alreadyAligned = focusedRouteUnchanged && closingRouteKeysUnchanged && routeChildStatesUnchanged && routesAreIdentical(current.routes, nextRoutesSnapshot) && (0, _helpers.areDescriptorsEqual)(current.sourceDescriptors, nextDescriptors);
|
|
33
|
+
if (alreadyAligned) {
|
|
34
|
+
return current;
|
|
35
|
+
}
|
|
36
|
+
const logicallyAligned = focusedRouteUnchanged && closingRouteKeysUnchanged && routeChildStatesUnchanged && routeKeysAreEqual(current.routes, nextRoutesSnapshot) && (0, _helpers.areDescriptorSourceMapsEquivalent)(current.sourceDescriptors, nextDescriptors);
|
|
37
|
+
if (logicallyAligned) {
|
|
38
|
+
return current;
|
|
39
|
+
}
|
|
40
|
+
const result = (0, _reconcileManagedRoutes.reconcileManagedRoutes)({
|
|
41
|
+
current,
|
|
42
|
+
previousRoutesSnapshot,
|
|
43
|
+
nextRoutesSnapshot,
|
|
44
|
+
nextDescriptors,
|
|
45
|
+
closingRouteKeys
|
|
46
|
+
});
|
|
47
|
+
const routesChanged = !routesAreIdentical(current.routes, result.routes);
|
|
48
|
+
const descriptorsChanged = !(0, _helpers.areDescriptorsEqual)(current.sourceDescriptors, result.descriptors);
|
|
49
|
+
const closingRouteKeysChanged = !(0, _helpers.setsAreEqual)(current.closingRouteKeys, closingRouteKeys);
|
|
50
|
+
if (!routesChanged && !descriptorsChanged && !closingRouteKeysChanged) {
|
|
51
|
+
return current;
|
|
52
|
+
}
|
|
53
|
+
return (0, _buildManagedStackState.buildManagedStackState)({
|
|
54
|
+
props,
|
|
55
|
+
routes: routesChanged ? result.routes : current.routes,
|
|
56
|
+
descriptors: descriptorsChanged ? result.descriptors : current.sourceDescriptors,
|
|
57
|
+
closingRouteKeys,
|
|
58
|
+
previousState: current
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
exports.deriveManagedStackState = deriveManagedStackState;
|
|
62
|
+
//# sourceMappingURL=derive-managed-stack-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_buildManagedStackState","require","_helpers","_reconcileManagedRoutes","routesAreIdentical","a","b","length","every","route","index","routeKeysAreEqual","key","deriveManagedStackState","props","current","previousRoutesSnapshot","closingRouteKeys","nextRoutesSnapshot","state","routes","nextDescriptors","descriptors","nextRouteChildStates","getRouteChildStateMap","nextFocusedRouteKey","focusedRouteUnchanged","focusedRouteKey","closingRouteKeysUnchanged","setsAreEqual","routeChildStatesUnchanged","areRouteChildStateMapsEqual","routeChildStates","alreadyAligned","areDescriptorsEqual","sourceDescriptors","logicallyAligned","areDescriptorSourceMapsEquivalent","result","reconcileManagedRoutes","routesChanged","descriptorsChanged","closingRouteKeysChanged","buildManagedStackState","previousState","exports"],"sourceRoot":"../../../../../../../../src","sources":["shared/providers/stack/helpers/managed-stack-state/helpers/derive-managed-stack-state.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.setsAreEqual = exports.getRouteChildStateMap = exports.getRouteChildState = exports.areRouteChildStateMapsEqual = exports.areRecordsShallowEqual = exports.areDescriptorsEqual = exports.areDescriptorSourcesEquivalent = exports.areDescriptorSourceMapsEquivalent = void 0;
|
|
7
|
+
const areDescriptorsEqual = (a, b) => {
|
|
8
|
+
if (a === b) return true;
|
|
9
|
+
const aKeys = Object.keys(a);
|
|
10
|
+
const bKeys = Object.keys(b);
|
|
11
|
+
if (aKeys.length !== bKeys.length) return false;
|
|
12
|
+
return aKeys.every(key => a[key] === b[key]);
|
|
13
|
+
};
|
|
14
|
+
exports.areDescriptorsEqual = areDescriptorsEqual;
|
|
15
|
+
const setsAreEqual = (left, right) => {
|
|
16
|
+
if (left.size !== right.size) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
for (const value of left) {
|
|
20
|
+
if (!right.has(value)) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return true;
|
|
25
|
+
};
|
|
26
|
+
exports.setsAreEqual = setsAreEqual;
|
|
27
|
+
const getRouteChildState = route => {
|
|
28
|
+
if (!route || typeof route !== "object") {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
const childStateSymbol = Object.getOwnPropertySymbols(route).find(symbol => symbol.description === "CHILD_STATE");
|
|
32
|
+
if (childStateSymbol && childStateSymbol in route) {
|
|
33
|
+
return route[childStateSymbol];
|
|
34
|
+
}
|
|
35
|
+
return route.state;
|
|
36
|
+
};
|
|
37
|
+
exports.getRouteChildState = getRouteChildState;
|
|
38
|
+
const getRouteChildStateMap = routes => {
|
|
39
|
+
const childStates = {};
|
|
40
|
+
for (const route of routes) {
|
|
41
|
+
childStates[route.key] = getRouteChildState(route);
|
|
42
|
+
}
|
|
43
|
+
return childStates;
|
|
44
|
+
};
|
|
45
|
+
exports.getRouteChildStateMap = getRouteChildStateMap;
|
|
46
|
+
const areRouteChildStateMapsEqual = (previous, next) => {
|
|
47
|
+
if (previous === next) return true;
|
|
48
|
+
const previousKeys = Object.keys(previous);
|
|
49
|
+
const nextKeys = Object.keys(next);
|
|
50
|
+
if (previousKeys.length !== nextKeys.length) return false;
|
|
51
|
+
return previousKeys.every(key => Object.is(previous[key], next[key]));
|
|
52
|
+
};
|
|
53
|
+
exports.areRouteChildStateMapsEqual = areRouteChildStateMapsEqual;
|
|
54
|
+
const areRecordsShallowEqual = (a, b) => {
|
|
55
|
+
if (a === b) return true;
|
|
56
|
+
const aKeys = Object.keys(a);
|
|
57
|
+
const bKeys = Object.keys(b);
|
|
58
|
+
if (aKeys.length !== bKeys.length) return false;
|
|
59
|
+
return aKeys.every(key => Object.is(a[key], b[key]));
|
|
60
|
+
};
|
|
61
|
+
exports.areRecordsShallowEqual = areRecordsShallowEqual;
|
|
62
|
+
const areDescriptorSourcesEquivalent = (previous, next) => {
|
|
63
|
+
return previous.navigation === next.navigation && areRecordsShallowEqual(previous.route, next.route) && areRecordsShallowEqual(previous.options, next.options);
|
|
64
|
+
};
|
|
65
|
+
exports.areDescriptorSourcesEquivalent = areDescriptorSourcesEquivalent;
|
|
66
|
+
const areDescriptorSourceMapsEquivalent = (previous, next) => {
|
|
67
|
+
if (previous === next) return true;
|
|
68
|
+
const previousKeys = Object.keys(previous);
|
|
69
|
+
const nextKeys = Object.keys(next);
|
|
70
|
+
if (previousKeys.length !== nextKeys.length) return false;
|
|
71
|
+
return previousKeys.every(key => {
|
|
72
|
+
const previousDescriptor = previous[key];
|
|
73
|
+
const nextDescriptor = next[key];
|
|
74
|
+
if (!previousDescriptor || !nextDescriptor) {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
return areDescriptorSourcesEquivalent(previousDescriptor, nextDescriptor);
|
|
78
|
+
});
|
|
79
|
+
};
|
|
80
|
+
exports.areDescriptorSourceMapsEquivalent = areDescriptorSourceMapsEquivalent;
|
|
81
|
+
//# sourceMappingURL=helpers.js.map
|
package/lib/commonjs/shared/providers/stack/helpers/managed-stack-state/helpers/helpers.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["areDescriptorsEqual","a","b","aKeys","Object","keys","bKeys","length","every","key","exports","setsAreEqual","left","right","size","value","has","getRouteChildState","route","undefined","childStateSymbol","getOwnPropertySymbols","find","symbol","description","state","getRouteChildStateMap","routes","childStates","areRouteChildStateMapsEqual","previous","next","previousKeys","nextKeys","is","areRecordsShallowEqual","areDescriptorSourcesEquivalent","navigation","options","areDescriptorSourceMapsEquivalent","previousDescriptor","nextDescriptor"],"sourceRoot":"../../../../../../../../src","sources":["shared/providers/stack/helpers/managed-stack-state/helpers/helpers.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.reconcileManagedRoutes = void 0;
|
|
7
|
+
var _composeDescriptors = require("../../../../../utils/navigation/compose-descriptors");
|
|
8
|
+
var _syncRoutesWithRemoved = require("../../../../../utils/navigation/sync-routes-with-removed");
|
|
9
|
+
const haveSameRouteKeys = (previous, next) => {
|
|
10
|
+
if (previous.length !== next.length) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
return previous.every((route, index) => route?.key === next[index]?.key);
|
|
14
|
+
};
|
|
15
|
+
const alignRoutesWithLatest = (currentRoutes, currentDescriptors, nextRoutes, nextDescriptors) => {
|
|
16
|
+
if (currentRoutes.length === 0) {
|
|
17
|
+
return {
|
|
18
|
+
routes: nextRoutes,
|
|
19
|
+
descriptors: (0, _composeDescriptors.composeDescriptors)(nextRoutes, nextDescriptors, currentDescriptors)
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const nextRouteLookup = new Map();
|
|
23
|
+
for (const route of nextRoutes) {
|
|
24
|
+
nextRouteLookup.set(route.key, route);
|
|
25
|
+
}
|
|
26
|
+
let didChange = currentRoutes.length !== nextRoutes.length;
|
|
27
|
+
const alignedRoutes = currentRoutes.map(route => {
|
|
28
|
+
const nextRoute = nextRouteLookup.get(route.key);
|
|
29
|
+
if (!nextRoute) {
|
|
30
|
+
return route;
|
|
31
|
+
}
|
|
32
|
+
if (nextRoute !== route) {
|
|
33
|
+
didChange = true;
|
|
34
|
+
return nextRoute;
|
|
35
|
+
}
|
|
36
|
+
return route;
|
|
37
|
+
});
|
|
38
|
+
const routesResult = didChange ? alignedRoutes : currentRoutes;
|
|
39
|
+
return {
|
|
40
|
+
routes: routesResult,
|
|
41
|
+
descriptors: (0, _composeDescriptors.composeDescriptors)(routesResult, nextDescriptors, currentDescriptors)
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
const acceptAlreadyClosingRouteRemovals = ({
|
|
45
|
+
current,
|
|
46
|
+
previousRoutesSnapshot,
|
|
47
|
+
nextRoutesSnapshot,
|
|
48
|
+
nextDescriptors,
|
|
49
|
+
closingRouteKeys
|
|
50
|
+
}) => {
|
|
51
|
+
const nextRouteKeys = new Set(nextRoutesSnapshot.map(route => route.key));
|
|
52
|
+
const acceptedRemovedKeys = new Set();
|
|
53
|
+
for (const route of previousRoutesSnapshot) {
|
|
54
|
+
if (nextRouteKeys.has(route.key)) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
if (!closingRouteKeys.has(route.key)) {
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
acceptedRemovedKeys.add(route.key);
|
|
61
|
+
closingRouteKeys.delete(route.key);
|
|
62
|
+
}
|
|
63
|
+
if (acceptedRemovedKeys.size === 0) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
const remainingClosingRoutes = current.routes.filter(route => {
|
|
67
|
+
if (nextRouteKeys.has(route.key)) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
if (acceptedRemovedKeys.has(route.key)) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
return closingRouteKeys.has(route.key);
|
|
74
|
+
});
|
|
75
|
+
const routes = [...nextRoutesSnapshot, ...remainingClosingRoutes];
|
|
76
|
+
const descriptors = {
|
|
77
|
+
...nextDescriptors
|
|
78
|
+
};
|
|
79
|
+
for (const route of remainingClosingRoutes) {
|
|
80
|
+
const descriptor = current.sourceDescriptors[route.key];
|
|
81
|
+
if (descriptor) {
|
|
82
|
+
descriptors[route.key] = descriptor;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
routes,
|
|
87
|
+
descriptors
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
const reconcileManagedRoutes = params => {
|
|
91
|
+
const {
|
|
92
|
+
current,
|
|
93
|
+
previousRoutesSnapshot,
|
|
94
|
+
nextRoutesSnapshot,
|
|
95
|
+
nextDescriptors,
|
|
96
|
+
closingRouteKeys
|
|
97
|
+
} = params;
|
|
98
|
+
const routeKeysUnchanged = haveSameRouteKeys(previousRoutesSnapshot, nextRoutesSnapshot);
|
|
99
|
+
if (routeKeysUnchanged) {
|
|
100
|
+
const result = alignRoutesWithLatest(current.routes, current.sourceDescriptors, nextRoutesSnapshot, nextDescriptors);
|
|
101
|
+
return {
|
|
102
|
+
routes: result.routes,
|
|
103
|
+
descriptors: result.descriptors
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
const acceptedRemoval = acceptAlreadyClosingRouteRemovals(params);
|
|
107
|
+
if (acceptedRemoval) {
|
|
108
|
+
return acceptedRemoval;
|
|
109
|
+
}
|
|
110
|
+
const result = (0, _syncRoutesWithRemoved.syncRoutesWithRemoved)({
|
|
111
|
+
prevRoutes: previousRoutesSnapshot.length > 0 ? previousRoutesSnapshot : current.routes,
|
|
112
|
+
prevDescriptors: current.sourceDescriptors,
|
|
113
|
+
nextRoutes: nextRoutesSnapshot,
|
|
114
|
+
nextDescriptors,
|
|
115
|
+
closingRouteKeys
|
|
116
|
+
});
|
|
117
|
+
return {
|
|
118
|
+
routes: result.routes,
|
|
119
|
+
descriptors: result.descriptors
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
exports.reconcileManagedRoutes = reconcileManagedRoutes;
|
|
123
|
+
//# sourceMappingURL=reconcile-managed-routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_composeDescriptors","require","_syncRoutesWithRemoved","haveSameRouteKeys","previous","next","length","every","route","index","key","alignRoutesWithLatest","currentRoutes","currentDescriptors","nextRoutes","nextDescriptors","routes","descriptors","composeDescriptors","nextRouteLookup","Map","set","didChange","alignedRoutes","map","nextRoute","get","routesResult","acceptAlreadyClosingRouteRemovals","current","previousRoutesSnapshot","nextRoutesSnapshot","closingRouteKeys","nextRouteKeys","Set","acceptedRemovedKeys","has","add","delete","size","remainingClosingRoutes","filter","descriptor","sourceDescriptors","reconcileManagedRoutes","params","routeKeysUnchanged","result","acceptedRemoval","syncRoutesWithRemoved","prevRoutes","prevDescriptors","exports"],"sourceRoot":"../../../../../../../../src","sources":["shared/providers/stack/helpers/managed-stack-state/helpers/reconcile-managed-routes.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../../../../../src","sources":["shared/providers/stack/helpers/managed-stack-state/helpers/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useManagedStackState = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _managedStackController = require("./managed-stack-controller");
|
|
9
|
+
const useManagedStackState = props => {
|
|
10
|
+
const controllerRef = (0, _react.useRef)(undefined);
|
|
11
|
+
if (!controllerRef.current) {
|
|
12
|
+
controllerRef.current = (0, _managedStackController.createManagedStackController)(props);
|
|
13
|
+
}
|
|
14
|
+
const controller = controllerRef.current;
|
|
15
|
+
controller.update(props);
|
|
16
|
+
const snapshot = (0, _react.useSyncExternalStore)(controller.subscribe, controller.getSnapshot, controller.getSnapshot);
|
|
17
|
+
return {
|
|
18
|
+
state: snapshot.state,
|
|
19
|
+
handleCloseRoute: controller.handleCloseRoute,
|
|
20
|
+
requestDismiss: controller.requestDismiss
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
exports.useManagedStackState = useManagedStackState;
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_managedStackController","useManagedStackState","props","controllerRef","useRef","undefined","current","createManagedStackController","controller","update","snapshot","useSyncExternalStore","subscribe","getSnapshot","state","handleCloseRoute","requestDismiss","exports"],"sourceRoot":"../../../../../../../src","sources":["shared/providers/stack/helpers/managed-stack-state/index.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAMA,IAAAC,uBAAA,GAAAD,OAAA;AAKO,MAAME,oBAAoB,GAIhCC,KAAkD,IAC9C;EACJ,MAAMC,aAAa,GAAG,IAAAC,aAAM,EAE1BC,SAAS,CAAC;EAEZ,IAAI,CAACF,aAAa,CAACG,OAAO,EAAE;IAC3BH,aAAa,CAACG,OAAO,GAAG,IAAAC,oDAA4B,EAACL,KAAK,CAAC;EAC5D;EAEA,MAAMM,UAAU,GAAGL,aAAa,CAACG,OAAO;EACxCE,UAAU,CAACC,MAAM,CAACP,KAAK,CAAC;EAExB,MAAMQ,QAAQ,GAAG,IAAAC,2BAAoB,EACpCH,UAAU,CAACI,SAAS,EACpBJ,UAAU,CAACK,WAAW,EACtBL,UAAU,CAACK,WACZ,CAAC;EAED,OAAO;IACNC,KAAK,EAAEJ,QAAQ,CAACI,KAAK;IACrBC,gBAAgB,EAAEP,UAAU,CAACO,gBAAgB;IAC7CC,cAAc,EAAER,UAAU,CAACQ;EAC5B,CAAC;AACF,CAAC;AAACC,OAAA,CAAAhB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|