react-native-screen-transitions 3.1.0 → 3.2.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +103 -8
- package/lib/commonjs/blank-stack/components/adjusted-screen-container.js +36 -0
- package/lib/commonjs/blank-stack/components/adjusted-screen-container.js.map +1 -0
- package/lib/commonjs/blank-stack/components/{screens.js → adjusted-screen.js} +33 -13
- package/lib/commonjs/blank-stack/components/adjusted-screen.js.map +1 -0
- package/lib/commonjs/blank-stack/components/stack-view.js +44 -61
- package/lib/commonjs/blank-stack/components/stack-view.js.map +1 -1
- package/lib/commonjs/blank-stack/components/stack-view.native.js +81 -0
- package/lib/commonjs/blank-stack/components/stack-view.native.js.map +1 -0
- package/lib/commonjs/component-stack/components/component-screen-container.js +23 -0
- package/lib/commonjs/component-stack/components/component-screen-container.js.map +1 -0
- package/lib/commonjs/component-stack/components/component-screen.js +36 -0
- package/lib/commonjs/component-stack/components/component-screen.js.map +1 -0
- package/lib/commonjs/component-stack/components/stack-view.js +64 -0
- package/lib/commonjs/component-stack/components/stack-view.js.map +1 -0
- package/lib/commonjs/component-stack/index.js +13 -0
- package/lib/commonjs/component-stack/index.js.map +1 -0
- package/lib/commonjs/component-stack/navigators/create-component-stack-navigator.js +52 -0
- package/lib/commonjs/component-stack/navigators/create-component-stack-navigator.js.map +1 -0
- package/lib/commonjs/component-stack/types.js.map +1 -0
- package/lib/commonjs/{shared/components → native-stack}/controllers/native-stack-lifecycle.js +18 -9
- package/lib/commonjs/native-stack/controllers/native-stack-lifecycle.js.map +1 -0
- package/lib/commonjs/native-stack/views/NativeStackView.native.js +114 -117
- package/lib/commonjs/native-stack/views/NativeStackView.native.js.map +1 -1
- package/lib/commonjs/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/commonjs/shared/components/overlay/helpers/get-active-overlay.js +39 -0
- package/lib/commonjs/shared/components/overlay/helpers/get-active-overlay.js.map +1 -0
- package/lib/commonjs/shared/components/overlay/index.js +13 -0
- package/lib/commonjs/shared/components/overlay/index.js.map +1 -0
- package/lib/commonjs/shared/components/overlay/variations/float-overlay.js +51 -0
- package/lib/commonjs/shared/components/overlay/variations/float-overlay.js.map +1 -0
- package/lib/commonjs/shared/components/overlay/variations/overlay-host.js +124 -0
- package/lib/commonjs/shared/components/overlay/variations/overlay-host.js.map +1 -0
- package/lib/commonjs/shared/components/overlay/variations/screen-overlay.js +47 -0
- package/lib/commonjs/shared/components/overlay/variations/screen-overlay.js.map +1 -0
- package/lib/commonjs/shared/components/root-transition-aware.js +2 -2
- package/lib/commonjs/shared/components/root-transition-aware.js.map +1 -1
- package/lib/commonjs/shared/constants.js +4 -31
- package/lib/commonjs/shared/constants.js.map +1 -1
- package/lib/commonjs/shared/{components/controllers/blank-stack-lifecycle.js → controller/managed-lifecycle.js} +25 -19
- package/lib/commonjs/shared/controller/managed-lifecycle.js.map +1 -0
- package/lib/commonjs/shared/hooks/animation/use-associated-style.js +2 -2
- package/lib/commonjs/shared/hooks/animation/use-associated-style.js.map +1 -1
- package/lib/commonjs/shared/hooks/animation/use-high-refresh-rate.js +36 -0
- package/lib/commonjs/shared/hooks/animation/use-high-refresh-rate.js.map +1 -0
- package/lib/commonjs/shared/hooks/animation/use-screen-animation.js +18 -11
- package/lib/commonjs/shared/hooks/animation/use-screen-animation.js.map +1 -1
- package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js +4 -2
- package/lib/commonjs/shared/hooks/gestures/use-build-gestures.js.map +1 -1
- package/lib/commonjs/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
- package/lib/commonjs/{blank-stack/utils/with-stack-navigation/hooks → shared/hooks/navigation}/use-closing-route-keys.js +1 -1
- package/lib/commonjs/shared/hooks/navigation/use-closing-route-keys.js.map +1 -0
- package/lib/commonjs/shared/hooks/navigation/use-previous.js.map +1 -0
- package/lib/commonjs/shared/hooks/navigation/use-stack.js +37 -0
- package/lib/commonjs/shared/hooks/navigation/use-stack.js.map +1 -0
- package/lib/commonjs/shared/hooks/reanimated/use-shared-value-state.js +5 -0
- package/lib/commonjs/shared/hooks/reanimated/use-shared-value-state.js.map +1 -1
- package/lib/commonjs/shared/providers/gestures.provider.js +1 -1
- package/lib/commonjs/shared/providers/gestures.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/layout-anchor.provider.js +73 -0
- package/lib/commonjs/shared/providers/layout-anchor.provider.js.map +1 -0
- package/lib/commonjs/shared/providers/register-bounds.provider.js +19 -8
- package/lib/commonjs/shared/providers/register-bounds.provider.js.map +1 -1
- package/lib/commonjs/shared/providers/{keys.provider.js → screen/keys.provider.js} +12 -0
- package/lib/commonjs/shared/providers/screen/keys.provider.js.map +1 -0
- package/lib/commonjs/shared/providers/{screen-transition.provider.js → screen/screen-composer.js} +7 -7
- package/lib/commonjs/shared/providers/screen/screen-composer.js.map +1 -0
- package/lib/commonjs/shared/providers/screen/styles.provider.js +95 -0
- package/lib/commonjs/shared/providers/screen/styles.provider.js.map +1 -0
- package/lib/commonjs/shared/providers/stack/core.provider.js +84 -0
- package/lib/commonjs/shared/providers/stack/core.provider.js.map +1 -0
- package/lib/commonjs/shared/providers/stack/direct.provider.js +160 -0
- package/lib/commonjs/shared/providers/stack/direct.provider.js.map +1 -0
- package/lib/commonjs/{blank-stack/utils/with-stack-navigation/helpers/calculate-active-screens-limit.js → shared/providers/stack/helpers/active-screens-limit.js} +1 -1
- package/lib/commonjs/shared/providers/stack/helpers/active-screens-limit.js.map +1 -0
- package/lib/commonjs/shared/providers/stack/helpers/use-local-routes.js +93 -0
- package/lib/commonjs/shared/providers/stack/helpers/use-local-routes.js.map +1 -0
- package/lib/commonjs/shared/providers/stack/managed.provider.js +157 -0
- package/lib/commonjs/shared/providers/stack/managed.provider.js.map +1 -0
- package/lib/commonjs/shared/stores/bounds.store.js.map +1 -1
- package/lib/commonjs/shared/types/index.js +19 -0
- package/lib/commonjs/shared/types/index.js.map +1 -0
- package/lib/commonjs/shared/types/overlay.types.js +6 -0
- package/lib/commonjs/shared/types/overlay.types.js.map +1 -0
- package/lib/commonjs/shared/types/{core.types.js → screen.types.js} +1 -1
- package/lib/commonjs/shared/types/screen.types.js.map +1 -0
- package/lib/commonjs/shared/types/stack.types.js +32 -0
- package/lib/commonjs/shared/types/stack.types.js.map +1 -0
- package/lib/commonjs/shared/utils/bounds/helpers/styles.js.map +1 -1
- package/lib/commonjs/shared/utils/bounds/index.js +13 -1
- package/lib/commonjs/shared/utils/bounds/index.js.map +1 -1
- package/lib/commonjs/shared/utils/create-provider.js +16 -13
- package/lib/commonjs/shared/utils/create-provider.js.map +1 -1
- package/lib/commonjs/shared/utils/gesture/check-gesture-activation.js.map +1 -1
- package/lib/commonjs/shared/utils/navigation/align-routes-with-latest.js +51 -0
- package/lib/commonjs/shared/utils/navigation/align-routes-with-latest.js.map +1 -0
- package/lib/commonjs/shared/utils/navigation/are-descriptors-equal.js.map +1 -0
- package/lib/commonjs/shared/utils/navigation/compose-descriptors.js.map +1 -0
- package/lib/commonjs/shared/utils/navigation/have-same-route-keys.js.map +1 -0
- package/lib/commonjs/shared/utils/navigation/routes-are-identical.js.map +1 -0
- package/lib/commonjs/shared/utils/navigation/sync-routes-with-removed.js +70 -0
- package/lib/commonjs/shared/utils/navigation/sync-routes-with-removed.js.map +1 -0
- package/lib/commonjs/shared/utils/read-shared-value.js +17 -0
- package/lib/commonjs/shared/utils/read-shared-value.js.map +1 -0
- package/lib/commonjs/shared/utils/reset-stores-for-screen.js +2 -1
- package/lib/commonjs/shared/utils/reset-stores-for-screen.js.map +1 -1
- package/lib/module/blank-stack/components/adjusted-screen-container.js +31 -0
- package/lib/module/blank-stack/components/adjusted-screen-container.js.map +1 -0
- package/lib/module/blank-stack/components/{screens.js → adjusted-screen.js} +32 -12
- package/lib/module/blank-stack/components/adjusted-screen.js.map +1 -0
- package/lib/module/blank-stack/components/stack-view.js +43 -60
- package/lib/module/blank-stack/components/stack-view.js.map +1 -1
- package/lib/module/blank-stack/components/stack-view.native.js +76 -0
- package/lib/module/blank-stack/components/stack-view.native.js.map +1 -0
- package/lib/module/component-stack/components/component-screen-container.js +18 -0
- package/lib/module/component-stack/components/component-screen-container.js.map +1 -0
- package/lib/module/component-stack/components/component-screen.js +30 -0
- package/lib/module/component-stack/components/component-screen.js.map +1 -0
- package/lib/module/component-stack/components/stack-view.js +59 -0
- package/lib/module/component-stack/components/stack-view.js.map +1 -0
- package/lib/module/component-stack/index.js +4 -0
- package/lib/module/component-stack/index.js.map +1 -0
- package/lib/module/component-stack/navigators/create-component-stack-navigator.js +48 -0
- package/lib/module/component-stack/navigators/create-component-stack-navigator.js.map +1 -0
- package/lib/module/component-stack/types.js.map +1 -0
- package/lib/module/{shared/components → native-stack}/controllers/native-stack-lifecycle.js +18 -9
- package/lib/module/native-stack/controllers/native-stack-lifecycle.js.map +1 -0
- package/lib/module/native-stack/views/NativeStackView.native.js +115 -118
- package/lib/module/native-stack/views/NativeStackView.native.js.map +1 -1
- package/lib/module/shared/components/create-transition-aware-component.js.map +1 -1
- package/lib/module/shared/components/overlay/helpers/get-active-overlay.js +35 -0
- package/lib/module/shared/components/overlay/helpers/get-active-overlay.js.map +1 -0
- package/lib/module/shared/components/overlay/index.js +9 -0
- package/lib/module/shared/components/overlay/index.js.map +1 -0
- package/lib/module/shared/components/overlay/variations/float-overlay.js +48 -0
- package/lib/module/shared/components/overlay/variations/float-overlay.js.map +1 -0
- package/lib/module/shared/components/overlay/variations/overlay-host.js +120 -0
- package/lib/module/shared/components/overlay/variations/overlay-host.js.map +1 -0
- package/lib/module/shared/components/overlay/variations/screen-overlay.js +44 -0
- package/lib/module/shared/components/overlay/variations/screen-overlay.js.map +1 -0
- package/lib/module/shared/components/root-transition-aware.js +2 -2
- package/lib/module/shared/components/root-transition-aware.js.map +1 -1
- package/lib/module/shared/constants.js +2 -29
- package/lib/module/shared/constants.js.map +1 -1
- package/lib/module/shared/controller/managed-lifecycle.js +72 -0
- package/lib/module/shared/controller/managed-lifecycle.js.map +1 -0
- package/lib/module/shared/hooks/animation/use-associated-style.js +2 -2
- package/lib/module/shared/hooks/animation/use-associated-style.js.map +1 -1
- package/lib/module/shared/hooks/animation/use-high-refresh-rate.js +31 -0
- package/lib/module/shared/hooks/animation/use-high-refresh-rate.js.map +1 -0
- package/lib/module/shared/hooks/animation/use-screen-animation.js +18 -11
- package/lib/module/shared/hooks/animation/use-screen-animation.js.map +1 -1
- package/lib/module/shared/hooks/gestures/use-build-gestures.js +5 -3
- package/lib/module/shared/hooks/gestures/use-build-gestures.js.map +1 -1
- package/lib/module/shared/hooks/gestures/use-scroll-registry.js.map +1 -1
- package/lib/module/{blank-stack/utils/with-stack-navigation/hooks → shared/hooks/navigation}/use-closing-route-keys.js +1 -1
- package/lib/module/shared/hooks/navigation/use-closing-route-keys.js.map +1 -0
- package/lib/module/shared/hooks/navigation/use-previous.js.map +1 -0
- package/lib/module/shared/hooks/navigation/use-stack.js +33 -0
- package/lib/module/shared/hooks/navigation/use-stack.js.map +1 -0
- package/lib/module/shared/hooks/reanimated/use-shared-value-state.js +5 -0
- package/lib/module/shared/hooks/reanimated/use-shared-value-state.js.map +1 -1
- package/lib/module/shared/providers/gestures.provider.js +1 -1
- package/lib/module/shared/providers/gestures.provider.js.map +1 -1
- package/lib/module/shared/providers/layout-anchor.provider.js +67 -0
- package/lib/module/shared/providers/layout-anchor.provider.js.map +1 -0
- package/lib/module/shared/providers/register-bounds.provider.js +19 -8
- package/lib/module/shared/providers/register-bounds.provider.js.map +1 -1
- package/lib/module/shared/providers/{keys.provider.js → screen/keys.provider.js} +12 -0
- package/lib/module/shared/providers/screen/keys.provider.js.map +1 -0
- package/lib/module/shared/providers/{screen-transition.provider.js → screen/screen-composer.js} +6 -6
- package/lib/module/shared/providers/screen/screen-composer.js.map +1 -0
- package/lib/module/shared/providers/screen/styles.provider.js +90 -0
- package/lib/module/shared/providers/screen/styles.provider.js.map +1 -0
- package/lib/module/shared/providers/stack/core.provider.js +78 -0
- package/lib/module/shared/providers/stack/core.provider.js.map +1 -0
- package/lib/module/shared/providers/stack/direct.provider.js +155 -0
- package/lib/module/shared/providers/stack/direct.provider.js.map +1 -0
- package/lib/module/{blank-stack/utils/with-stack-navigation/helpers/calculate-active-screens-limit.js → shared/providers/stack/helpers/active-screens-limit.js} +1 -1
- package/lib/module/shared/providers/stack/helpers/active-screens-limit.js.map +1 -0
- package/lib/module/shared/providers/stack/helpers/use-local-routes.js +87 -0
- package/lib/module/shared/providers/stack/helpers/use-local-routes.js.map +1 -0
- package/lib/module/shared/providers/stack/managed.provider.js +152 -0
- package/lib/module/shared/providers/stack/managed.provider.js.map +1 -0
- package/lib/module/shared/stores/bounds.store.js.map +1 -1
- package/lib/module/shared/types/index.js +4 -0
- package/lib/module/shared/types/index.js.map +1 -0
- package/lib/module/shared/types/overlay.types.js +4 -0
- package/lib/module/shared/types/overlay.types.js.map +1 -0
- package/lib/module/shared/types/screen.types.js +4 -0
- package/lib/module/shared/types/screen.types.js.map +1 -0
- package/lib/module/shared/types/stack.types.js +33 -0
- package/lib/module/shared/types/stack.types.js.map +1 -0
- package/lib/module/shared/utils/bounds/helpers/styles.js.map +1 -1
- package/lib/module/shared/utils/bounds/index.js +13 -1
- package/lib/module/shared/utils/bounds/index.js.map +1 -1
- package/lib/module/shared/utils/create-provider.js +16 -13
- package/lib/module/shared/utils/create-provider.js.map +1 -1
- package/lib/module/shared/utils/gesture/check-gesture-activation.js.map +1 -1
- package/lib/module/shared/utils/navigation/align-routes-with-latest.js +46 -0
- package/lib/module/shared/utils/navigation/align-routes-with-latest.js.map +1 -0
- package/lib/module/shared/utils/navigation/are-descriptors-equal.js.map +1 -0
- package/lib/module/shared/utils/navigation/compose-descriptors.js.map +1 -0
- package/lib/module/shared/utils/navigation/have-same-route-keys.js.map +1 -0
- package/lib/module/shared/utils/navigation/routes-are-identical.js.map +1 -0
- package/lib/module/shared/utils/navigation/sync-routes-with-removed.js +65 -0
- package/lib/module/shared/utils/navigation/sync-routes-with-removed.js.map +1 -0
- package/lib/module/shared/utils/read-shared-value.js +14 -0
- package/lib/module/shared/utils/read-shared-value.js.map +1 -0
- package/lib/module/shared/utils/reset-stores-for-screen.js +2 -2
- package/lib/module/shared/utils/reset-stores-for-screen.js.map +1 -1
- package/lib/typescript/blank-stack/components/adjusted-screen-container.d.ts +6 -0
- package/lib/typescript/blank-stack/components/adjusted-screen-container.d.ts.map +1 -0
- package/lib/typescript/blank-stack/components/{screens.d.ts → adjusted-screen.d.ts} +2 -2
- package/lib/typescript/blank-stack/components/adjusted-screen.d.ts.map +1 -0
- package/lib/typescript/blank-stack/components/stack-view.d.ts +2 -1
- package/lib/typescript/blank-stack/components/stack-view.d.ts.map +1 -1
- package/lib/typescript/blank-stack/components/stack-view.native.d.ts +4 -0
- package/lib/typescript/blank-stack/components/stack-view.native.d.ts.map +1 -0
- package/lib/typescript/blank-stack/types.d.ts +10 -49
- package/lib/typescript/blank-stack/types.d.ts.map +1 -1
- package/lib/typescript/component-stack/components/component-screen-container.d.ts +6 -0
- package/lib/typescript/component-stack/components/component-screen-container.d.ts.map +1 -0
- package/lib/typescript/component-stack/components/component-screen.d.ts +8 -0
- package/lib/typescript/component-stack/components/component-screen.d.ts.map +1 -0
- package/lib/typescript/component-stack/components/stack-view.d.ts +4 -0
- package/lib/typescript/component-stack/components/stack-view.d.ts.map +1 -0
- package/lib/typescript/component-stack/index.d.ts +3 -0
- package/lib/typescript/component-stack/index.d.ts.map +1 -0
- package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts +16 -0
- package/lib/typescript/component-stack/navigators/create-component-stack-navigator.d.ts.map +1 -0
- package/lib/typescript/component-stack/types.d.ts +39 -0
- package/lib/typescript/component-stack/types.d.ts.map +1 -0
- package/lib/typescript/native-stack/controllers/native-stack-lifecycle.d.ts.map +1 -0
- package/lib/typescript/native-stack/index.d.ts +1 -1
- package/lib/typescript/native-stack/index.d.ts.map +1 -1
- package/lib/typescript/native-stack/types.d.ts +9 -6
- package/lib/typescript/native-stack/types.d.ts.map +1 -1
- package/lib/typescript/native-stack/views/NativeStackView.native.d.ts +2 -10
- package/lib/typescript/native-stack/views/NativeStackView.native.d.ts.map +1 -1
- package/lib/typescript/shared/components/create-transition-aware-component.d.ts.map +1 -1
- package/lib/typescript/shared/components/overlay/helpers/get-active-overlay.d.ts +11 -0
- package/lib/typescript/shared/components/overlay/helpers/get-active-overlay.d.ts.map +1 -0
- package/lib/typescript/shared/components/overlay/index.d.ts +7 -0
- package/lib/typescript/shared/components/overlay/index.d.ts.map +1 -0
- package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts +6 -0
- package/lib/typescript/shared/components/overlay/variations/float-overlay.d.ts.map +1 -0
- package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts +12 -0
- package/lib/typescript/shared/components/overlay/variations/overlay-host.d.ts.map +1 -0
- package/lib/typescript/shared/components/overlay/variations/screen-overlay.d.ts +6 -0
- package/lib/typescript/shared/components/overlay/variations/screen-overlay.d.ts.map +1 -0
- package/lib/typescript/shared/configs/index.d.ts.map +1 -1
- package/lib/typescript/shared/configs/presets.d.ts +1 -1
- package/lib/typescript/shared/configs/presets.d.ts.map +1 -1
- package/lib/typescript/shared/constants.d.ts +2 -16
- package/lib/typescript/shared/constants.d.ts.map +1 -1
- package/lib/typescript/shared/controller/managed-lifecycle.d.ts +9 -0
- package/lib/typescript/shared/controller/managed-lifecycle.d.ts.map +1 -0
- package/lib/typescript/shared/hooks/animation/use-high-refresh-rate.d.ts +13 -0
- package/lib/typescript/shared/hooks/animation/use-high-refresh-rate.d.ts.map +1 -0
- package/lib/typescript/shared/hooks/animation/use-screen-animation.d.ts +2 -1
- package/lib/typescript/shared/hooks/animation/use-screen-animation.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/gestures/use-build-gestures.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/gestures/use-scroll-registry.d.ts.map +1 -1
- package/lib/typescript/shared/hooks/navigation/use-closing-route-keys.d.ts.map +1 -0
- package/lib/typescript/shared/hooks/navigation/use-previous.d.ts.map +1 -0
- package/lib/typescript/shared/hooks/navigation/use-stack.d.ts +66 -0
- package/lib/typescript/shared/hooks/navigation/use-stack.d.ts.map +1 -0
- package/lib/typescript/shared/hooks/reanimated/use-shared-value-state.d.ts.map +1 -1
- package/lib/typescript/shared/index.d.ts +41 -43
- package/lib/typescript/shared/index.d.ts.map +1 -1
- package/lib/typescript/shared/providers/gestures.provider.d.ts +4 -2
- package/lib/typescript/shared/providers/gestures.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/layout-anchor.provider.d.ts +34 -0
- package/lib/typescript/shared/providers/layout-anchor.provider.d.ts.map +1 -0
- package/lib/typescript/shared/providers/register-bounds.provider.d.ts.map +1 -1
- package/lib/typescript/shared/providers/screen/keys.provider.d.ts +29 -0
- package/lib/typescript/shared/providers/screen/keys.provider.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/screen-composer.d.ts +13 -0
- package/lib/typescript/shared/providers/screen/screen-composer.d.ts.map +1 -0
- package/lib/typescript/shared/providers/screen/styles.provider.d.ts +13 -0
- package/lib/typescript/shared/providers/screen/styles.provider.d.ts.map +1 -0
- package/lib/typescript/shared/providers/stack/core.provider.d.ts +22 -0
- package/lib/typescript/shared/providers/stack/core.provider.d.ts.map +1 -0
- package/lib/typescript/shared/providers/stack/direct.provider.d.ts +34 -0
- package/lib/typescript/shared/providers/stack/direct.provider.d.ts.map +1 -0
- package/lib/typescript/shared/providers/stack/helpers/active-screens-limit.d.ts +9 -0
- package/lib/typescript/shared/providers/stack/helpers/active-screens-limit.d.ts.map +1 -0
- package/lib/typescript/shared/providers/stack/helpers/use-local-routes.d.ts +19 -0
- package/lib/typescript/shared/providers/stack/helpers/use-local-routes.d.ts.map +1 -0
- package/lib/typescript/shared/providers/stack/managed.provider.d.ts +39 -0
- package/lib/typescript/shared/providers/stack/managed.provider.d.ts.map +1 -0
- package/lib/typescript/shared/stores/animation.store.d.ts +1 -1
- package/lib/typescript/shared/stores/animation.store.d.ts.map +1 -1
- package/lib/typescript/shared/stores/bounds.store.d.ts.map +1 -1
- package/lib/typescript/shared/stores/gesture.store.d.ts +2 -2
- package/lib/typescript/shared/stores/gesture.store.d.ts.map +1 -1
- package/lib/typescript/shared/types/animation.types.d.ts +3 -3
- package/lib/typescript/shared/types/animation.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/bounds.types.d.ts +1 -0
- package/lib/typescript/shared/types/bounds.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/gesture.types.d.ts +0 -1
- package/lib/typescript/shared/types/gesture.types.d.ts.map +1 -1
- package/lib/typescript/shared/types/index.d.ts +8 -0
- package/lib/typescript/shared/types/index.d.ts.map +1 -0
- package/lib/typescript/shared/types/overlay.types.d.ts +39 -0
- package/lib/typescript/shared/types/overlay.types.d.ts.map +1 -0
- package/lib/typescript/shared/types/{core.types.d.ts → screen.types.d.ts} +31 -6
- package/lib/typescript/shared/types/screen.types.d.ts.map +1 -0
- package/lib/typescript/shared/types/stack.types.d.ts +55 -0
- package/lib/typescript/shared/types/stack.types.d.ts.map +1 -0
- package/lib/typescript/shared/utils/bounds/helpers/geometry.d.ts +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/geometry.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/style-composers.d.ts +2 -1
- package/lib/typescript/shared/utils/bounds/helpers/style-composers.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/helpers/styles.d.ts +1 -2
- package/lib/typescript/shared/utils/bounds/helpers/styles.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/index.d.ts +1 -9
- package/lib/typescript/shared/utils/bounds/index.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/types/builder.d.ts +9 -8
- package/lib/typescript/shared/utils/bounds/types/builder.d.ts.map +1 -1
- package/lib/typescript/shared/utils/bounds/types/geometry.d.ts +2 -1
- package/lib/typescript/shared/utils/bounds/types/geometry.d.ts.map +1 -1
- package/lib/typescript/shared/utils/create-provider.d.ts.map +1 -1
- package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts +1 -1
- package/lib/typescript/shared/utils/gesture/check-gesture-activation.d.ts.map +1 -1
- package/lib/typescript/shared/utils/navigation/align-routes-with-latest.d.ts +13 -0
- package/lib/typescript/shared/utils/navigation/align-routes-with-latest.d.ts.map +1 -0
- package/lib/typescript/shared/utils/navigation/are-descriptors-equal.d.ts +2 -0
- package/lib/typescript/shared/utils/navigation/are-descriptors-equal.d.ts.map +1 -0
- package/lib/typescript/shared/utils/navigation/compose-descriptors.d.ts +6 -0
- package/lib/typescript/shared/utils/navigation/compose-descriptors.d.ts.map +1 -0
- package/lib/typescript/shared/utils/navigation/have-same-route-keys.d.ts +6 -0
- package/lib/typescript/shared/utils/navigation/have-same-route-keys.d.ts.map +1 -0
- package/lib/typescript/shared/utils/navigation/routes-are-identical.d.ts +6 -0
- package/lib/typescript/shared/utils/navigation/routes-are-identical.d.ts.map +1 -0
- package/lib/typescript/shared/utils/navigation/sync-routes-with-removed.d.ts +21 -0
- package/lib/typescript/shared/utils/navigation/sync-routes-with-removed.d.ts.map +1 -0
- package/lib/typescript/shared/utils/read-shared-value.d.ts +7 -0
- package/lib/typescript/shared/utils/read-shared-value.d.ts.map +1 -0
- package/lib/typescript/shared/utils/reset-stores-for-screen.d.ts +4 -3
- package/lib/typescript/shared/utils/reset-stores-for-screen.d.ts.map +1 -1
- package/package.json +7 -2
- package/src/blank-stack/components/adjusted-screen-container.tsx +25 -0
- package/src/blank-stack/components/{screens.tsx → adjusted-screen.tsx} +35 -14
- package/src/blank-stack/components/stack-view.native.tsx +94 -0
- package/src/blank-stack/components/stack-view.tsx +60 -74
- package/src/blank-stack/types.ts +12 -63
- package/src/component-stack/components/component-screen-container.tsx +15 -0
- package/src/component-stack/components/component-screen.tsx +40 -0
- package/src/component-stack/components/stack-view.tsx +74 -0
- package/src/component-stack/index.ts +10 -0
- package/src/component-stack/navigators/create-component-stack-navigator.tsx +88 -0
- package/src/component-stack/types.ts +101 -0
- package/src/{shared/components → native-stack}/controllers/native-stack-lifecycle.tsx +18 -11
- package/src/native-stack/index.ts +1 -0
- package/src/native-stack/types.ts +11 -7
- package/src/native-stack/views/NativeStackView.native.tsx +138 -167
- package/src/shared/__tests__/sync-routes-with-removed.test.ts +137 -0
- package/src/shared/components/create-transition-aware-component.tsx +5 -6
- package/src/shared/components/overlay/helpers/get-active-overlay.ts +38 -0
- package/src/shared/components/overlay/index.ts +7 -0
- package/src/shared/components/overlay/variations/float-overlay.tsx +44 -0
- package/src/shared/components/overlay/variations/overlay-host.tsx +148 -0
- package/src/shared/components/overlay/variations/screen-overlay.tsx +51 -0
- package/src/shared/components/root-transition-aware.tsx +2 -2
- package/src/shared/configs/presets.ts +1 -1
- package/src/shared/constants.ts +3 -32
- package/src/shared/controller/managed-lifecycle.tsx +73 -0
- package/src/shared/hooks/animation/use-associated-style.tsx +2 -2
- package/src/shared/hooks/animation/use-high-refresh-rate.tsx +34 -0
- package/src/shared/hooks/animation/use-screen-animation.tsx +24 -18
- package/src/shared/hooks/gestures/use-build-gestures.tsx +10 -3
- package/src/shared/hooks/gestures/use-scroll-registry.tsx +3 -4
- package/src/{blank-stack/utils/with-stack-navigation/hooks → shared/hooks/navigation}/use-closing-route-keys.tsx +1 -1
- package/src/shared/hooks/navigation/use-stack.tsx +89 -0
- package/src/shared/hooks/reanimated/use-shared-value-state.ts +5 -0
- package/src/shared/index.ts +8 -3
- package/src/shared/providers/gestures.provider.tsx +6 -2
- package/src/shared/providers/layout-anchor.provider.tsx +81 -0
- package/src/shared/providers/register-bounds.provider.tsx +23 -9
- package/src/shared/providers/{keys.provider.tsx → screen/keys.provider.tsx} +25 -10
- package/src/shared/providers/screen/screen-composer.tsx +38 -0
- package/src/shared/providers/screen/styles.provider.tsx +120 -0
- package/src/shared/providers/stack/core.provider.tsx +87 -0
- package/src/shared/providers/stack/direct.provider.tsx +231 -0
- package/src/{blank-stack/utils/with-stack-navigation/helpers/calculate-active-screens-limit.ts → shared/providers/stack/helpers/active-screens-limit.ts} +10 -4
- package/src/shared/providers/stack/helpers/use-local-routes.tsx +133 -0
- package/src/shared/providers/stack/managed.provider.tsx +229 -0
- package/src/shared/stores/animation.store.ts +1 -1
- package/src/shared/stores/bounds.store.ts +4 -5
- package/src/shared/stores/gesture.store.ts +2 -2
- package/src/shared/types/animation.types.ts +3 -3
- package/src/shared/types/bounds.types.ts +5 -0
- package/src/shared/types/gesture.types.ts +0 -2
- package/src/shared/types/index.ts +46 -0
- package/src/shared/types/overlay.types.ts +49 -0
- package/src/shared/types/{core.types.ts → screen.types.ts} +34 -7
- package/src/shared/types/stack.types.ts +63 -0
- package/src/shared/utils/bounds/helpers/geometry.ts +1 -1
- package/src/shared/utils/bounds/helpers/style-composers.ts +1 -1
- package/src/shared/utils/bounds/helpers/styles.ts +1 -2
- package/src/shared/utils/bounds/index.ts +19 -10
- package/src/shared/utils/bounds/types/builder.ts +8 -8
- package/src/shared/utils/bounds/types/geometry.ts +1 -1
- package/src/shared/utils/create-provider.tsx +14 -16
- package/src/shared/utils/gesture/check-gesture-activation.ts +1 -1
- package/src/shared/utils/navigation/align-routes-with-latest.ts +68 -0
- package/src/{blank-stack/utils/with-stack-navigation/helpers → shared/utils/navigation}/are-descriptors-equal.ts +5 -5
- package/src/shared/utils/navigation/compose-descriptors.ts +21 -0
- package/src/{blank-stack/utils/with-stack-navigation/helpers → shared/utils/navigation}/have-same-route-keys.ts +6 -4
- package/src/{blank-stack/utils/with-stack-navigation/helpers → shared/utils/navigation}/routes-are-identical.ts +6 -4
- package/src/shared/utils/navigation/sync-routes-with-removed.ts +102 -0
- package/src/shared/utils/read-shared-value.ts +15 -0
- package/src/shared/utils/reset-stores-for-screen.ts +4 -3
- package/lib/commonjs/blank-stack/components/overlay.js +0 -156
- package/lib/commonjs/blank-stack/components/overlay.js.map +0 -1
- package/lib/commonjs/blank-stack/components/screens.js.map +0 -1
- package/lib/commonjs/blank-stack/hooks/use-overlay-animation.js +0 -72
- package/lib/commonjs/blank-stack/hooks/use-overlay-animation.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/are-descriptors-equal.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/calculate-active-screens-limit.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/have-same-route-keys.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/helpers/routes-are-identical.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-previous.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.js +0 -196
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/index.js +0 -61
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/index.js.map +0 -1
- package/lib/commonjs/blank-stack/utils/with-stack-navigation/types.js.map +0 -1
- package/lib/commonjs/native-stack/views/FooterComponent.js +0 -17
- package/lib/commonjs/native-stack/views/FooterComponent.js.map +0 -1
- package/lib/commonjs/shared/components/controllers/blank-stack-lifecycle.js.map +0 -1
- package/lib/commonjs/shared/components/controllers/native-stack-lifecycle.js.map +0 -1
- package/lib/commonjs/shared/providers/flags.provider.js +0 -25
- package/lib/commonjs/shared/providers/flags.provider.js.map +0 -1
- package/lib/commonjs/shared/providers/keys.provider.js.map +0 -1
- package/lib/commonjs/shared/providers/routes.provider.js +0 -48
- package/lib/commonjs/shared/providers/routes.provider.js.map +0 -1
- package/lib/commonjs/shared/providers/screen-transition.provider.js.map +0 -1
- package/lib/commonjs/shared/providers/transition-styles.provider.js +0 -62
- package/lib/commonjs/shared/providers/transition-styles.provider.js.map +0 -1
- package/lib/commonjs/shared/types/core.types.js.map +0 -1
- package/lib/commonjs/shared/types/utils.types.js +0 -2
- package/lib/commonjs/shared/types/utils.types.js.map +0 -1
- package/lib/commonjs/shared/utils/animation/compute-stack-progress.js +0 -20
- package/lib/commonjs/shared/utils/animation/compute-stack-progress.js.map +0 -1
- package/lib/commonjs/shared/utils/bounds/constants.js +0 -42
- package/lib/commonjs/shared/utils/bounds/constants.js.map +0 -1
- package/lib/commonjs/shared/utils/bounds/helpers/is-bounds-equal.js +0 -19
- package/lib/commonjs/shared/utils/bounds/helpers/is-bounds-equal.js.map +0 -1
- package/lib/commonjs/shared/utils/gesture/apply-offset-rules.js +0 -224
- package/lib/commonjs/shared/utils/gesture/apply-offset-rules.js.map +0 -1
- package/lib/commonjs/shared/utils/reanimated/version.js +0 -12
- package/lib/commonjs/shared/utils/reanimated/version.js.map +0 -1
- package/lib/module/blank-stack/components/overlay.js +0 -152
- package/lib/module/blank-stack/components/overlay.js.map +0 -1
- package/lib/module/blank-stack/components/screens.js.map +0 -1
- package/lib/module/blank-stack/hooks/use-overlay-animation.js +0 -68
- package/lib/module/blank-stack/hooks/use-overlay-animation.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/helpers/are-descriptors-equal.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/helpers/calculate-active-screens-limit.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/helpers/have-same-route-keys.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/helpers/routes-are-identical.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-previous.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.js +0 -190
- package/lib/module/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/index.js +0 -55
- package/lib/module/blank-stack/utils/with-stack-navigation/index.js.map +0 -1
- package/lib/module/blank-stack/utils/with-stack-navigation/types.js.map +0 -1
- package/lib/module/native-stack/views/FooterComponent.js +0 -13
- package/lib/module/native-stack/views/FooterComponent.js.map +0 -1
- package/lib/module/shared/components/controllers/blank-stack-lifecycle.js +0 -66
- package/lib/module/shared/components/controllers/blank-stack-lifecycle.js.map +0 -1
- package/lib/module/shared/components/controllers/native-stack-lifecycle.js.map +0 -1
- package/lib/module/shared/providers/flags.provider.js +0 -19
- package/lib/module/shared/providers/flags.provider.js.map +0 -1
- package/lib/module/shared/providers/keys.provider.js.map +0 -1
- package/lib/module/shared/providers/routes.provider.js +0 -42
- package/lib/module/shared/providers/routes.provider.js.map +0 -1
- package/lib/module/shared/providers/screen-transition.provider.js.map +0 -1
- package/lib/module/shared/providers/transition-styles.provider.js +0 -56
- package/lib/module/shared/providers/transition-styles.provider.js.map +0 -1
- package/lib/module/shared/types/core.types.js +0 -4
- package/lib/module/shared/types/core.types.js.map +0 -1
- package/lib/module/shared/types/utils.types.js +0 -2
- package/lib/module/shared/types/utils.types.js.map +0 -1
- package/lib/module/shared/utils/animation/compute-stack-progress.js +0 -15
- package/lib/module/shared/utils/animation/compute-stack-progress.js.map +0 -1
- package/lib/module/shared/utils/bounds/constants.js +0 -37
- package/lib/module/shared/utils/bounds/constants.js.map +0 -1
- package/lib/module/shared/utils/bounds/helpers/is-bounds-equal.js +0 -14
- package/lib/module/shared/utils/bounds/helpers/is-bounds-equal.js.map +0 -1
- package/lib/module/shared/utils/gesture/apply-offset-rules.js +0 -219
- package/lib/module/shared/utils/gesture/apply-offset-rules.js.map +0 -1
- package/lib/module/shared/utils/reanimated/version.js +0 -7
- package/lib/module/shared/utils/reanimated/version.js.map +0 -1
- package/lib/typescript/blank-stack/components/overlay.d.ts +0 -5
- package/lib/typescript/blank-stack/components/overlay.d.ts.map +0 -1
- package/lib/typescript/blank-stack/components/screens.d.ts.map +0 -1
- package/lib/typescript/blank-stack/hooks/use-overlay-animation.d.ts +0 -12
- package/lib/typescript/blank-stack/hooks/use-overlay-animation.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/are-descriptors-equal.d.ts +0 -3
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/are-descriptors-equal.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/calculate-active-screens-limit.d.ts +0 -4
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/calculate-active-screens-limit.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.d.ts +0 -4
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/have-same-route-keys.d.ts +0 -3
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/have-same-route-keys.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/routes-are-identical.d.ts +0 -3
- package/lib/typescript/blank-stack/utils/with-stack-navigation/helpers/routes-are-identical.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/hooks/use-closing-route-keys.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/hooks/use-previous.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.d.ts +0 -20
- package/lib/typescript/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/index.d.ts +0 -4
- package/lib/typescript/blank-stack/utils/with-stack-navigation/index.d.ts.map +0 -1
- package/lib/typescript/blank-stack/utils/with-stack-navigation/types.d.ts +0 -22
- package/lib/typescript/blank-stack/utils/with-stack-navigation/types.d.ts.map +0 -1
- package/lib/typescript/native-stack/views/FooterComponent.d.ts +0 -7
- package/lib/typescript/native-stack/views/FooterComponent.d.ts.map +0 -1
- package/lib/typescript/shared/components/controllers/blank-stack-lifecycle.d.ts +0 -8
- package/lib/typescript/shared/components/controllers/blank-stack-lifecycle.d.ts.map +0 -1
- package/lib/typescript/shared/components/controllers/native-stack-lifecycle.d.ts.map +0 -1
- package/lib/typescript/shared/providers/flags.provider.d.ts +0 -10
- package/lib/typescript/shared/providers/flags.provider.d.ts.map +0 -1
- package/lib/typescript/shared/providers/keys.provider.d.ts +0 -18
- package/lib/typescript/shared/providers/keys.provider.d.ts.map +0 -1
- package/lib/typescript/shared/providers/routes.provider.d.ts +0 -19
- package/lib/typescript/shared/providers/routes.provider.d.ts.map +0 -1
- package/lib/typescript/shared/providers/screen-transition.provider.d.ts +0 -14
- package/lib/typescript/shared/providers/screen-transition.provider.d.ts.map +0 -1
- package/lib/typescript/shared/providers/transition-styles.provider.d.ts +0 -14
- package/lib/typescript/shared/providers/transition-styles.provider.d.ts.map +0 -1
- package/lib/typescript/shared/types/core.types.d.ts.map +0 -1
- package/lib/typescript/shared/types/utils.types.d.ts +0 -5
- package/lib/typescript/shared/types/utils.types.d.ts.map +0 -1
- package/lib/typescript/shared/utils/animation/compute-stack-progress.d.ts +0 -3
- package/lib/typescript/shared/utils/animation/compute-stack-progress.d.ts.map +0 -1
- package/lib/typescript/shared/utils/bounds/constants.d.ts +0 -7
- package/lib/typescript/shared/utils/bounds/constants.d.ts.map +0 -1
- package/lib/typescript/shared/utils/bounds/helpers/is-bounds-equal.d.ts +0 -7
- package/lib/typescript/shared/utils/bounds/helpers/is-bounds-equal.d.ts.map +0 -1
- package/lib/typescript/shared/utils/gesture/apply-offset-rules.d.ts +0 -38
- package/lib/typescript/shared/utils/gesture/apply-offset-rules.d.ts.map +0 -1
- package/lib/typescript/shared/utils/reanimated/version.d.ts +0 -2
- package/lib/typescript/shared/utils/reanimated/version.d.ts.map +0 -1
- package/src/blank-stack/components/overlay.tsx +0 -169
- package/src/blank-stack/hooks/use-overlay-animation.tsx +0 -86
- package/src/blank-stack/utils/with-stack-navigation/helpers/compose-descriptors.ts +0 -17
- package/src/blank-stack/utils/with-stack-navigation/hooks/use-stack-navigation-state.tsx +0 -267
- package/src/blank-stack/utils/with-stack-navigation/index.tsx +0 -74
- package/src/blank-stack/utils/with-stack-navigation/types.ts +0 -35
- package/src/native-stack/views/FooterComponent.tsx +0 -10
- package/src/shared/components/controllers/blank-stack-lifecycle.tsx +0 -70
- package/src/shared/providers/flags.provider.tsx +0 -21
- package/src/shared/providers/routes.provider.tsx +0 -54
- package/src/shared/providers/screen-transition.provider.tsx +0 -41
- package/src/shared/providers/transition-styles.provider.tsx +0 -74
- package/src/shared/types/utils.types.ts +0 -4
- package/src/shared/utils/animation/compute-stack-progress.ts +0 -16
- package/src/shared/utils/bounds/constants.ts +0 -40
- package/src/shared/utils/bounds/helpers/is-bounds-equal.ts +0 -24
- package/src/shared/utils/gesture/apply-offset-rules.ts +0 -312
- package/src/shared/utils/reanimated/version.ts +0 -5
- /package/lib/commonjs/{blank-stack/utils/with-stack-navigation → component-stack}/types.js +0 -0
- /package/lib/commonjs/{blank-stack/utils/with-stack-navigation/hooks → shared/hooks/navigation}/use-previous.js +0 -0
- /package/lib/commonjs/{blank-stack/utils/with-stack-navigation/helpers → shared/utils/navigation}/are-descriptors-equal.js +0 -0
- /package/lib/commonjs/{blank-stack/utils/with-stack-navigation/helpers → shared/utils/navigation}/compose-descriptors.js +0 -0
- /package/lib/commonjs/{blank-stack/utils/with-stack-navigation/helpers → shared/utils/navigation}/have-same-route-keys.js +0 -0
- /package/lib/commonjs/{blank-stack/utils/with-stack-navigation/helpers → shared/utils/navigation}/routes-are-identical.js +0 -0
- /package/lib/module/{blank-stack/utils/with-stack-navigation → component-stack}/types.js +0 -0
- /package/lib/module/{blank-stack/utils/with-stack-navigation/hooks → shared/hooks/navigation}/use-previous.js +0 -0
- /package/lib/module/{blank-stack/utils/with-stack-navigation/helpers → shared/utils/navigation}/are-descriptors-equal.js +0 -0
- /package/lib/module/{blank-stack/utils/with-stack-navigation/helpers → shared/utils/navigation}/compose-descriptors.js +0 -0
- /package/lib/module/{blank-stack/utils/with-stack-navigation/helpers → shared/utils/navigation}/have-same-route-keys.js +0 -0
- /package/lib/module/{blank-stack/utils/with-stack-navigation/helpers → shared/utils/navigation}/routes-are-identical.js +0 -0
- /package/lib/typescript/{shared/components → native-stack}/controllers/native-stack-lifecycle.d.ts +0 -0
- /package/lib/typescript/{blank-stack/utils/with-stack-navigation/hooks → shared/hooks/navigation}/use-closing-route-keys.d.ts +0 -0
- /package/lib/typescript/{blank-stack/utils/with-stack-navigation/hooks → shared/hooks/navigation}/use-previous.d.ts +0 -0
- /package/src/{blank-stack/utils/with-stack-navigation/hooks → shared/hooks/navigation}/use-previous.tsx +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { GestureStateManagerType } from "react-native-gesture-handler/lib/typescript/handlers/gestures/gestureStateManager";
|
|
2
2
|
import type { SharedValue } from "react-native-reanimated";
|
|
3
|
-
import type { Layout } from "../../types/core.types";
|
|
4
3
|
import { type ActivationArea, type GestureActivationArea, GestureOffsetState } from "../../types/gesture.types";
|
|
4
|
+
import type { Layout } from "../../types/screen.types";
|
|
5
5
|
type Directions = {
|
|
6
6
|
vertical: boolean;
|
|
7
7
|
verticalInverted: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-gesture-activation.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/gesture/check-gesture-activation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mFAAmF,CAAC;AACjI,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"check-gesture-activation.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/gesture/check-gesture-activation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mFAAmF,CAAC;AACjI,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,kBAAkB,EAElB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,KAAK,UAAU,GAAG;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,UAAU,2BAA2B;IACpC,YAAY,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAClC,kBAAkB,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;IACpD,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,KAAK,eAAe,GAAG;IACtB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,cAAc,CAAC;IACtB,GAAG,EAAE,cAAc,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC;CACvB,CAAC;AAEF,UAAU,yBAAyB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;CACvB;AAED,UAAU,YAAY;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;CACvB;AAaD,wBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,qBAAqB,GAAG,eAAe,CAc5E;AAED,wBAAgB,sBAAsB,CACrC,YAAY,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EACtC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,eAAe,EACtB,gBAAgB,CAAC,EAAE,MAAM;;;;;EAczB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;;;;EAmBhE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,yBAAyB;;;EAyFrE;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,iHAS9B,2BAA2B,KAAG,YA2EhC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface RouteWithKey {
|
|
2
|
+
key: string;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Aligns current routes with the latest route data while preserving references
|
|
6
|
+
* when possible for performance optimization
|
|
7
|
+
*/
|
|
8
|
+
export declare const alignRoutesWithLatest: <Route extends RouteWithKey, DescriptorMap extends Record<string, unknown>>(currentRoutes: Route[], currentDescriptors: DescriptorMap, nextRoutes: Route[], nextDescriptors: DescriptorMap) => {
|
|
9
|
+
routes: Route[];
|
|
10
|
+
descriptors: DescriptorMap;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=align-routes-with-latest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"align-routes-with-latest.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/navigation/align-routes-with-latest.ts"],"names":[],"mappings":"AAEA,UAAU,YAAY;IACrB,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GACjC,KAAK,SAAS,YAAY,EAC1B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE7C,eAAe,KAAK,EAAE,EACtB,oBAAoB,aAAa,EACjC,YAAY,KAAK,EAAE,EACnB,iBAAiB,aAAa,KAC5B;IAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAAC,WAAW,EAAE,aAAa,CAAA;CAiD/C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"are-descriptors-equal.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/navigation/are-descriptors-equal.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,GAC/B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE7C,GAAG,aAAa,EAChB,GAAG,aAAa,KACd,OASF,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
interface RouteWithKey {
|
|
2
|
+
key: string;
|
|
3
|
+
}
|
|
4
|
+
export declare const composeDescriptors: <Route extends RouteWithKey, DescriptorMap extends Record<string, unknown>>(routes: Route[], nextDescriptors: DescriptorMap, currentDescriptors: DescriptorMap) => DescriptorMap;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=compose-descriptors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose-descriptors.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/navigation/compose-descriptors.ts"],"names":[],"mappings":"AAAA,UAAU,YAAY;IACrB,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,kBAAkB,GAC9B,KAAK,SAAS,YAAY,EAC1B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAE7C,QAAQ,KAAK,EAAE,EACf,iBAAiB,aAAa,EAC9B,oBAAoB,aAAa,KAC/B,aASF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"have-same-route-keys.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/navigation/have-same-route-keys.ts"],"names":[],"mappings":"AAAA,UAAU,YAAY;IACrB,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,iBAAiB,GAAI,KAAK,SAAS,YAAY,EAC3D,UAAU,KAAK,EAAE,EACjB,MAAM,KAAK,EAAE,KACX,OAMF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"routes-are-identical.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/navigation/routes-are-identical.ts"],"names":[],"mappings":"AAAA,UAAU,YAAY;IACrB,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,kBAAkB,GAAI,KAAK,SAAS,YAAY,EAC5D,GAAG,KAAK,EAAE,EACV,GAAG,KAAK,EAAE,KACR,OAKF,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { useClosingRouteKeys } from "../../hooks/navigation/use-closing-route-keys";
|
|
2
|
+
interface RouteWithKey {
|
|
3
|
+
key: string;
|
|
4
|
+
}
|
|
5
|
+
type SyncRoutesWithRemovedParams<Route extends RouteWithKey, DescriptorMap extends Record<string, unknown>> = {
|
|
6
|
+
prevRoutes: Route[];
|
|
7
|
+
prevDescriptors: DescriptorMap;
|
|
8
|
+
nextRoutes: Route[];
|
|
9
|
+
nextDescriptors: DescriptorMap;
|
|
10
|
+
closingRouteKeys: ReturnType<typeof useClosingRouteKeys>;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Synchronizes routes while handling removed routes that may still be animating out.
|
|
14
|
+
* This manages the complex logic of keeping closing routes visible during transitions.
|
|
15
|
+
*/
|
|
16
|
+
export declare const syncRoutesWithRemoved: <Route extends RouteWithKey, DescriptorMap extends Record<string, unknown>>({ prevRoutes, prevDescriptors, nextRoutes, nextDescriptors, closingRouteKeys, }: SyncRoutesWithRemovedParams<Route, DescriptorMap>) => {
|
|
17
|
+
routes: Route[];
|
|
18
|
+
descriptors: DescriptorMap;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=sync-routes-with-removed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-routes-with-removed.d.ts","sourceRoot":"","sources":["../../../../../src/shared/utils/navigation/sync-routes-with-removed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AAGzF,UAAU,YAAY;IACrB,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,KAAK,2BAA2B,CAC/B,KAAK,SAAS,YAAY,EAC1B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC1C;IACH,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,eAAe,EAAE,aAAa,CAAC;IAC/B,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,eAAe,EAAE,aAAa,CAAC;IAC/B,gBAAgB,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;CACzD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GACjC,KAAK,SAAS,YAAY,EAC1B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5C,iFAMC,2BAA2B,CAAC,KAAK,EAAE,aAAa,CAAC,KAAG;IACtD,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,EAAE,aAAa,CAAC;CAoE3B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type SharedValue } from "react-native-reanimated";
|
|
2
|
+
/**
|
|
3
|
+
* Safely read a SharedValue from the UI thread.
|
|
4
|
+
* Avoids the "cannot read .value inside component render" warning.
|
|
5
|
+
*/
|
|
6
|
+
export declare const readSharedValue: <T>(sv: SharedValue<T>) => T;
|
|
7
|
+
//# sourceMappingURL=read-shared-value.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-shared-value.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/read-shared-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,WAAW,EAChB,MAAM,yBAAyB,CAAC;AAEjC;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC1B,CAAC,0BAIF,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BaseStackDescriptor } from "../types/stack.types";
|
|
2
2
|
/**
|
|
3
|
-
* Reset all stores for a given screen
|
|
3
|
+
* Reset all stores for a given screen.
|
|
4
|
+
* Accepts any descriptor that has a route with a key.
|
|
4
5
|
*/
|
|
5
|
-
export declare const resetStoresForScreen: (current:
|
|
6
|
+
export declare const resetStoresForScreen: (current: BaseStackDescriptor) => void;
|
|
6
7
|
//# sourceMappingURL=reset-stores-for-screen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset-stores-for-screen.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/reset-stores-for-screen.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reset-stores-for-screen.d.ts","sourceRoot":"","sources":["../../../../src/shared/utils/reset-stores-for-screen.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,SAAS,mBAAmB,SAIhE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-screen-transitions",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0-beta.1",
|
|
4
4
|
"description": "Easy screen transitions for React Native and Expo",
|
|
5
5
|
"author": "Ed",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,6 +31,12 @@
|
|
|
31
31
|
"import": "./lib/module/blank-stack/index.js",
|
|
32
32
|
"require": "./lib/commonjs/blank-stack/index.js",
|
|
33
33
|
"types": "./lib/typescript/blank-stack/index.d.ts"
|
|
34
|
+
},
|
|
35
|
+
"./component-stack": {
|
|
36
|
+
"react-native": "./src/component-stack/index.ts",
|
|
37
|
+
"import": "./lib/module/component-stack/index.js",
|
|
38
|
+
"require": "./lib/commonjs/component-stack/index.js",
|
|
39
|
+
"types": "./lib/typescript/component-stack/index.d.ts"
|
|
34
40
|
}
|
|
35
41
|
},
|
|
36
42
|
"scripts": {
|
|
@@ -67,7 +73,6 @@
|
|
|
67
73
|
"react-native-screens": ">=4.4.0"
|
|
68
74
|
},
|
|
69
75
|
"devDependencies": {
|
|
70
|
-
"@testing-library/react-native": "^13.2.0",
|
|
71
76
|
"@types/react": "~19.1.10",
|
|
72
77
|
"react-native-builder-bob": "0.39.0",
|
|
73
78
|
"typescript": "catalog:"
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { StyleSheet, View } from "react-native";
|
|
2
|
+
import { ScreenContainer } from "react-native-screens";
|
|
3
|
+
import { useStack } from "../../shared/hooks/navigation/use-stack";
|
|
4
|
+
|
|
5
|
+
interface Props {
|
|
6
|
+
children: React.ReactNode;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const AdjustedScreenContainer = ({ children }: Props) => {
|
|
10
|
+
const {
|
|
11
|
+
flags: { DISABLE_NATIVE_SCREENS = false },
|
|
12
|
+
} = useStack();
|
|
13
|
+
if (!DISABLE_NATIVE_SCREENS) {
|
|
14
|
+
return (
|
|
15
|
+
<ScreenContainer style={styles.container}>{children}</ScreenContainer>
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
return <View style={styles.container}>{children}</View>;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const styles = StyleSheet.create({
|
|
22
|
+
container: {
|
|
23
|
+
flex: 1,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import type * as React from "react";
|
|
2
|
-
import { StyleSheet } from "react-native";
|
|
2
|
+
import { StyleSheet, type View } from "react-native";
|
|
3
3
|
import Animated, {
|
|
4
|
+
Extrapolation,
|
|
4
5
|
interpolate,
|
|
5
6
|
useAnimatedProps,
|
|
7
|
+
useAnimatedRef,
|
|
6
8
|
useDerivedValue,
|
|
7
9
|
useSharedValue,
|
|
8
10
|
} from "react-native-reanimated";
|
|
9
11
|
import { Screen as RNSScreen } from "react-native-screens";
|
|
12
|
+
import { useStack } from "../../shared/hooks/navigation/use-stack";
|
|
13
|
+
import { LayoutAnchorProvider } from "../../shared/providers/layout-anchor.provider";
|
|
14
|
+
import { useManagedStackContext } from "../../shared/providers/stack/managed.provider";
|
|
10
15
|
import { AnimationStore } from "../../shared/stores/animation.store";
|
|
11
|
-
import { useStackNavigationContext } from "../utils/with-stack-navigation";
|
|
12
16
|
|
|
13
17
|
interface ScreenProps {
|
|
14
18
|
routeKey: string;
|
|
@@ -25,10 +29,12 @@ enum ScreenActivity {
|
|
|
25
29
|
}
|
|
26
30
|
|
|
27
31
|
const EPSILON = 1e-5;
|
|
32
|
+
const POINT_NONE = "none" as const;
|
|
33
|
+
const POINT_BOX_NONE = "box-none" as const;
|
|
28
34
|
|
|
29
|
-
const
|
|
35
|
+
const AnimatedNativeScreen = Animated.createAnimatedComponent(RNSScreen);
|
|
30
36
|
|
|
31
|
-
export const
|
|
37
|
+
export const AdjustedScreen = ({
|
|
32
38
|
routeKey,
|
|
33
39
|
index,
|
|
34
40
|
isPreloaded,
|
|
@@ -36,8 +42,12 @@ export const Screen = ({
|
|
|
36
42
|
freezeOnBlur,
|
|
37
43
|
shouldFreeze,
|
|
38
44
|
}: ScreenProps) => {
|
|
39
|
-
const {
|
|
45
|
+
const {
|
|
46
|
+
flags: { DISABLE_NATIVE_SCREENS = false },
|
|
47
|
+
} = useStack();
|
|
48
|
+
const { activeScreensLimit, routes } = useManagedStackContext();
|
|
40
49
|
const routesLength = routes.length;
|
|
50
|
+
const screenRef = useAnimatedRef<View>();
|
|
41
51
|
|
|
42
52
|
const sceneProgress = AnimationStore.getAnimation(routeKey, "progress");
|
|
43
53
|
const sceneClosing = AnimationStore.getAnimation(routeKey, "closing");
|
|
@@ -65,7 +75,7 @@ export const Screen = ({
|
|
|
65
75
|
sceneProgress.get(),
|
|
66
76
|
[0, 1 - EPSILON, 1],
|
|
67
77
|
[1, 1, outputValue],
|
|
68
|
-
|
|
78
|
+
Extrapolation.CLAMP,
|
|
69
79
|
);
|
|
70
80
|
|
|
71
81
|
const next = Math.trunc(v) ?? ScreenActivity.TRANSITIONING_OR_BELOW_TOP;
|
|
@@ -78,23 +88,34 @@ export const Screen = ({
|
|
|
78
88
|
|
|
79
89
|
const animatedProps = useAnimatedProps(() => {
|
|
80
90
|
const activity = screenActivity.get();
|
|
91
|
+
if (!DISABLE_NATIVE_SCREENS) {
|
|
92
|
+
return {
|
|
93
|
+
activityState: activity,
|
|
94
|
+
shouldFreeze: activity === ScreenActivity.INACTIVE && shouldFreeze,
|
|
95
|
+
pointerEvents: sceneClosing.get() ? POINT_NONE : POINT_BOX_NONE,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
81
99
|
return {
|
|
82
|
-
|
|
83
|
-
shouldFreeze: activity === ScreenActivity.INACTIVE && shouldFreeze,
|
|
84
|
-
pointerEvents: sceneClosing.get()
|
|
85
|
-
? ("none" as const)
|
|
86
|
-
: ("box-none" as const),
|
|
100
|
+
pointerEvents: sceneClosing.get() ? POINT_NONE : POINT_BOX_NONE,
|
|
87
101
|
};
|
|
88
102
|
});
|
|
89
103
|
|
|
104
|
+
const AdjustedScreenComponent = !DISABLE_NATIVE_SCREENS
|
|
105
|
+
? AnimatedNativeScreen
|
|
106
|
+
: Animated.View;
|
|
107
|
+
|
|
90
108
|
return (
|
|
91
|
-
<
|
|
109
|
+
<AdjustedScreenComponent
|
|
92
110
|
enabled
|
|
111
|
+
ref={screenRef}
|
|
93
112
|
style={StyleSheet.absoluteFill}
|
|
94
113
|
freezeOnBlur={freezeOnBlur}
|
|
95
114
|
animatedProps={animatedProps}
|
|
96
115
|
>
|
|
97
|
-
{
|
|
98
|
-
|
|
116
|
+
<LayoutAnchorProvider anchorRef={screenRef}>
|
|
117
|
+
{children}
|
|
118
|
+
</LayoutAnchorProvider>
|
|
119
|
+
</AdjustedScreenComponent>
|
|
99
120
|
);
|
|
100
121
|
};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import {
|
|
2
|
+
NavigationContext,
|
|
3
|
+
NavigationRouteContext,
|
|
4
|
+
} from "@react-navigation/native";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import { Fragment } from "react";
|
|
7
|
+
import { Overlay } from "../../shared/components/overlay";
|
|
8
|
+
import { ManagedLifecycle } from "../../shared/controller/managed-lifecycle";
|
|
9
|
+
import { ScreenComposer } from "../../shared/providers/screen/screen-composer";
|
|
10
|
+
import { withStackCore } from "../../shared/providers/stack/core.provider";
|
|
11
|
+
import { withManagedStack } from "../../shared/providers/stack/managed.provider";
|
|
12
|
+
import type {
|
|
13
|
+
BlankStackDescriptor,
|
|
14
|
+
BlankStackNavigationHelpers,
|
|
15
|
+
} from "../types";
|
|
16
|
+
import { AdjustedScreen } from "./adjusted-screen";
|
|
17
|
+
import { AdjustedScreenContainer } from "./adjusted-screen-container";
|
|
18
|
+
|
|
19
|
+
function isFabric() {
|
|
20
|
+
return "nativeFabricUIManager" in global;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
type SceneViewProps = {
|
|
24
|
+
descriptor: BlankStackDescriptor;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const SceneView = React.memo(function SceneView({
|
|
28
|
+
descriptor,
|
|
29
|
+
}: SceneViewProps) {
|
|
30
|
+
const { route, navigation, render } = descriptor;
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<NavigationContext.Provider value={navigation}>
|
|
34
|
+
<NavigationRouteContext.Provider value={route}>
|
|
35
|
+
{descriptor.options.overlayMode === "screen" && <Overlay.Screen />}
|
|
36
|
+
{render()}
|
|
37
|
+
</NavigationRouteContext.Provider>
|
|
38
|
+
</NavigationContext.Provider>
|
|
39
|
+
);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
export const StackView = withStackCore(
|
|
43
|
+
{ TRANSITIONS_ALWAYS_ON: true, DISABLE_NATIVE_SCREENS: false },
|
|
44
|
+
withManagedStack<BlankStackDescriptor, BlankStackNavigationHelpers>(
|
|
45
|
+
({ descriptors, focusedIndex, scenes, shouldShowFloatOverlay }) => {
|
|
46
|
+
return (
|
|
47
|
+
<Fragment>
|
|
48
|
+
{shouldShowFloatOverlay ? <Overlay.Float /> : null}
|
|
49
|
+
|
|
50
|
+
<AdjustedScreenContainer>
|
|
51
|
+
{scenes.map((scene, sceneIndex) => {
|
|
52
|
+
const descriptor = scene.descriptor;
|
|
53
|
+
const route = scene.route;
|
|
54
|
+
const isFocused = focusedIndex === sceneIndex;
|
|
55
|
+
const isBelowFocused = focusedIndex - 1 === sceneIndex;
|
|
56
|
+
|
|
57
|
+
const previousDescriptor =
|
|
58
|
+
scenes[sceneIndex - 1]?.descriptor ?? undefined;
|
|
59
|
+
const nextDescriptor =
|
|
60
|
+
scenes[sceneIndex + 1]?.descriptor ?? undefined;
|
|
61
|
+
|
|
62
|
+
const isPreloaded = descriptors[route.key] === undefined;
|
|
63
|
+
|
|
64
|
+
// On Fabric, when screen is frozen, animated and reanimated values are not updated
|
|
65
|
+
// due to component being unmounted. To avoid this, we don't freeze the previous screen there
|
|
66
|
+
const shouldFreeze = isFabric()
|
|
67
|
+
? !isPreloaded && !isFocused && !isBelowFocused
|
|
68
|
+
: !isPreloaded && !isFocused;
|
|
69
|
+
return (
|
|
70
|
+
<AdjustedScreen
|
|
71
|
+
key={route.key}
|
|
72
|
+
isPreloaded={isPreloaded}
|
|
73
|
+
index={sceneIndex}
|
|
74
|
+
routeKey={route.key}
|
|
75
|
+
shouldFreeze={shouldFreeze}
|
|
76
|
+
freezeOnBlur={descriptor.options.freezeOnBlur}
|
|
77
|
+
>
|
|
78
|
+
<ScreenComposer
|
|
79
|
+
previous={previousDescriptor}
|
|
80
|
+
current={descriptor}
|
|
81
|
+
next={nextDescriptor}
|
|
82
|
+
LifecycleController={ManagedLifecycle}
|
|
83
|
+
>
|
|
84
|
+
<SceneView key={route.key} descriptor={descriptor} />
|
|
85
|
+
</ScreenComposer>
|
|
86
|
+
</AdjustedScreen>
|
|
87
|
+
);
|
|
88
|
+
})}
|
|
89
|
+
</AdjustedScreenContainer>
|
|
90
|
+
</Fragment>
|
|
91
|
+
);
|
|
92
|
+
},
|
|
93
|
+
),
|
|
94
|
+
);
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { SafeAreaProviderCompat } from "@react-navigation/elements";
|
|
2
1
|
import {
|
|
3
2
|
NavigationContext,
|
|
4
3
|
NavigationRouteContext,
|
|
5
4
|
} from "@react-navigation/native";
|
|
6
5
|
import * as React from "react";
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
import {
|
|
6
|
+
import { Fragment } from "react";
|
|
7
|
+
import { Overlay } from "../../shared/components/overlay";
|
|
8
|
+
import { ManagedLifecycle } from "../../shared/controller/managed-lifecycle";
|
|
9
|
+
import { ScreenComposer } from "../../shared/providers/screen/screen-composer";
|
|
10
|
+
import { withStackCore } from "../../shared/providers/stack/core.provider";
|
|
11
|
+
import { withManagedStack } from "../../shared/providers/stack/managed.provider";
|
|
12
|
+
import type {
|
|
13
|
+
BlankStackDescriptor,
|
|
14
|
+
BlankStackNavigationHelpers,
|
|
15
|
+
} from "../types";
|
|
16
|
+
import { AdjustedScreen } from "./adjusted-screen";
|
|
17
|
+
import { AdjustedScreenContainer } from "./adjusted-screen-container";
|
|
18
18
|
|
|
19
19
|
function isFabric() {
|
|
20
20
|
return "nativeFabricUIManager" in global;
|
|
@@ -39,70 +39,56 @@ const SceneView = React.memo(function SceneView({
|
|
|
39
39
|
);
|
|
40
40
|
});
|
|
41
41
|
|
|
42
|
-
export const StackView =
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
export const StackView = withStackCore(
|
|
43
|
+
{ TRANSITIONS_ALWAYS_ON: true, DISABLE_NATIVE_SCREENS: true },
|
|
44
|
+
withManagedStack<BlankStackDescriptor, BlankStackNavigationHelpers>(
|
|
45
|
+
({ descriptors, focusedIndex, scenes, shouldShowFloatOverlay }) => {
|
|
46
|
+
return (
|
|
47
|
+
<Fragment>
|
|
48
|
+
{shouldShowFloatOverlay ? <Overlay.Float /> : null}
|
|
49
49
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
<ScreenContainer style={styles.container}>
|
|
57
|
-
{scenes.map((scene, sceneIndex) => {
|
|
58
|
-
const descriptor = scene.descriptor;
|
|
59
|
-
const route = scene.route;
|
|
60
|
-
const isFocused = focusedIndex === sceneIndex;
|
|
61
|
-
const isBelowFocused = focusedIndex - 1 === sceneIndex;
|
|
50
|
+
<AdjustedScreenContainer>
|
|
51
|
+
{scenes.map((scene, sceneIndex) => {
|
|
52
|
+
const descriptor = scene.descriptor;
|
|
53
|
+
const route = scene.route;
|
|
54
|
+
const isFocused = focusedIndex === sceneIndex;
|
|
55
|
+
const isBelowFocused = focusedIndex - 1 === sceneIndex;
|
|
62
56
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
57
|
+
const previousDescriptor =
|
|
58
|
+
scenes[sceneIndex - 1]?.descriptor ?? undefined;
|
|
59
|
+
const nextDescriptor =
|
|
60
|
+
scenes[sceneIndex + 1]?.descriptor ?? undefined;
|
|
67
61
|
|
|
68
|
-
|
|
62
|
+
const isPreloaded = descriptors[route.key] === undefined;
|
|
69
63
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
</RoutesProvider>
|
|
101
|
-
</FlagsProvider>
|
|
102
|
-
);
|
|
103
|
-
},
|
|
64
|
+
// On Fabric, when screen is frozen, animated and reanimated values are not updated
|
|
65
|
+
// due to component being unmounted. To avoid this, we don't freeze the previous screen there
|
|
66
|
+
const shouldFreeze = isFabric()
|
|
67
|
+
? !isPreloaded && !isFocused && !isBelowFocused
|
|
68
|
+
: !isPreloaded && !isFocused;
|
|
69
|
+
return (
|
|
70
|
+
<AdjustedScreen
|
|
71
|
+
key={route.key}
|
|
72
|
+
isPreloaded={isPreloaded}
|
|
73
|
+
index={sceneIndex}
|
|
74
|
+
routeKey={route.key}
|
|
75
|
+
shouldFreeze={shouldFreeze}
|
|
76
|
+
freezeOnBlur={descriptor.options.freezeOnBlur}
|
|
77
|
+
>
|
|
78
|
+
<ScreenComposer
|
|
79
|
+
previous={previousDescriptor}
|
|
80
|
+
current={descriptor}
|
|
81
|
+
next={nextDescriptor}
|
|
82
|
+
LifecycleController={ManagedLifecycle}
|
|
83
|
+
>
|
|
84
|
+
<SceneView key={route.key} descriptor={descriptor} />
|
|
85
|
+
</ScreenComposer>
|
|
86
|
+
</AdjustedScreen>
|
|
87
|
+
);
|
|
88
|
+
})}
|
|
89
|
+
</AdjustedScreenContainer>
|
|
90
|
+
</Fragment>
|
|
91
|
+
);
|
|
92
|
+
},
|
|
93
|
+
),
|
|
104
94
|
);
|
|
105
|
-
|
|
106
|
-
const styles = StyleSheet.create({
|
|
107
|
-
container: { flex: 1 },
|
|
108
|
-
});
|
package/src/blank-stack/types.ts
CHANGED
|
@@ -11,12 +11,8 @@ import type {
|
|
|
11
11
|
StackRouterOptions,
|
|
12
12
|
Theme,
|
|
13
13
|
} from "@react-navigation/native";
|
|
14
|
-
import type { DerivedValue } from "react-native-reanimated";
|
|
15
14
|
import type { ScreenTransitionConfig } from "../shared";
|
|
16
|
-
import type {
|
|
17
|
-
OverlayInterpolationProps,
|
|
18
|
-
ScreenInterpolationProps,
|
|
19
|
-
} from "../shared/types/animation.types";
|
|
15
|
+
import type { OverlayProps } from "../shared/types/overlay.types";
|
|
20
16
|
|
|
21
17
|
export type BlankStackNavigationEventMap = {};
|
|
22
18
|
|
|
@@ -61,47 +57,19 @@ export type BlankStackScene = {
|
|
|
61
57
|
descriptor: BlankStackDescriptor;
|
|
62
58
|
};
|
|
63
59
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
export type BlankStackOverlayProps = {
|
|
68
|
-
/**
|
|
69
|
-
* Route of the currently focused screen in the stack.
|
|
70
|
-
*/
|
|
71
|
-
focusedRoute: Route<string>;
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* Index of the focused route in the stack.
|
|
75
|
-
*/
|
|
76
|
-
focusedIndex: number;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* All routes currently in the stack.
|
|
80
|
-
*/
|
|
81
|
-
routes: Route<string>[];
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Custom metadata from the focused screen's options.
|
|
85
|
-
*/
|
|
86
|
-
meta?: Record<string, unknown>;
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Navigation prop for the overlay.
|
|
90
|
-
*/
|
|
91
|
-
navigation: BlankStackNavigationProp<ParamListBase>;
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Animation values for the overlay.
|
|
95
|
-
*/
|
|
96
|
-
overlayAnimation: DerivedValue<OverlayInterpolationProps>;
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Animation values for the screen.
|
|
100
|
-
*/
|
|
101
|
-
screenAnimation: DerivedValue<ScreenInterpolationProps>;
|
|
60
|
+
type BlankStackNavigationConfig = {
|
|
61
|
+
DISABLE_NATIVE_SCREENS?: boolean;
|
|
102
62
|
};
|
|
103
63
|
|
|
104
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Props passed to overlay components in blank-stack.
|
|
66
|
+
* Uses the shared OverlayProps type with blank-stack's navigation type.
|
|
67
|
+
*/
|
|
68
|
+
export type BlankStackOverlayProps = OverlayProps<
|
|
69
|
+
BlankStackNavigationProp<ParamListBase>
|
|
70
|
+
>;
|
|
71
|
+
|
|
72
|
+
type BlankStackScreenTransitionConfig = ScreenTransitionConfig & {
|
|
105
73
|
/**
|
|
106
74
|
* Whether to detach the previous screen from the view hierarchy to save memory.
|
|
107
75
|
* Set it to `false` if you need the previous screen to be seen through the active screen.
|
|
@@ -111,25 +79,6 @@ export type BlankStackScreenTransitionConfig = ScreenTransitionConfig & {
|
|
|
111
79
|
};
|
|
112
80
|
|
|
113
81
|
export type BlankStackNavigationOptions = BlankStackScreenTransitionConfig & {
|
|
114
|
-
/**
|
|
115
|
-
* Function that given `OverlayProps` returns a React Element to display as a overlay.
|
|
116
|
-
*/
|
|
117
|
-
overlay?: (props: BlankStackOverlayProps) => React.ReactNode;
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Layout: How the Overlay is positioned
|
|
121
|
-
* - 'float': Single persistent overlay above all screens (like iOS)
|
|
122
|
-
* - 'screen': Per-screen overlay that transitions with content
|
|
123
|
-
* @default 'screen'
|
|
124
|
-
*/
|
|
125
|
-
overlayMode?: "float" | "screen";
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Whether to show the overlay. The overlay is shown by default.
|
|
129
|
-
* Setting this to `false` hides the overlay.
|
|
130
|
-
*/
|
|
131
|
-
overlayShown?: boolean;
|
|
132
|
-
|
|
133
82
|
/**
|
|
134
83
|
* Whether inactive screens should be suspended from re-rendering. Defaults to `false`.
|
|
135
84
|
* Defaults to `true` when `enableFreeze()` is run at the top of the application.
|