Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(router): fix drawer navigator navigation #25985

Merged
merged 4 commits into from
Dec 18, 2023
Merged

Conversation

marklawlor
Copy link
Contributor

Why

Fix: #25981

How

To be honest, I'm not 100% sure why its broken in the current state. It fires a navigation events on the shared Stack with what seems like the correct params.

But we also don't need to track the last common Stack/Tab lastCommonNavigator. Pre-#24457, we used to fire navigation events on the root navigator, so #24457 tried to not deviate from this behaviour by only changing the behaviour Stacks&Tabs doing replace actions. #24600 cleaned up the logic of #24457 and unified the logic for all navigation types, but still only tracked the last common Stack/Tabs. I don't know why this breaks Drawer, it might be an internal implementation detail, but we can simply fire the event on the last common navigator - no matter what type it is.

Test Plan

Add a smoke test for <Drawer />. I don't believe it was being previously tested.

Checklist

@expo-bot expo-bot added the bot: suggestions ExpoBot has some suggestions label Dec 18, 2023
Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
@expo-bot expo-bot added bot: passed checks ExpoBot has nothing to complain about and removed bot: suggestions ExpoBot has some suggestions labels Dec 18, 2023
@marklawlor marklawlor merged commit 729c931 into main Dec 18, 2023
9 checks passed
@marklawlor marklawlor deleted the marklawlor/router/25981 branch December 18, 2023 23:57
@brentvatne brentvatne added the published Changes from the PR have been published to npm label Dec 19, 2023
onizam95 pushed a commit to onizam95/expo-av-drm that referenced this pull request Jan 15, 2024
# Why

Fix: expo#25981

# How

To be honest, I'm not 100% sure why its broken in the current state. It
fires a navigation events on the shared Stack with what seems like the
correct params.

But we also don't need to track the last common Stack/Tab
lastCommonNavigator. Pre-expo#24457, we used to fire navigation events on
the root navigator, so expo#24457 tried to not deviate from this behaviour
by only changing the behaviour Stacks&Tabs doing replace actions. expo#24600
cleaned up the logic of expo#24457 and unified the logic for all navigation
types, but still only tracked the last common Stack/Tabs. I don't know
why this breaks Drawer, it might be an internal implementation detail,
but we can simply fire the event on the last common navigator - no
matter what type it is.

# Test Plan

Add a smoke test for `<Drawer />`. I don't believe it was being
previously tested.

# Checklist

<!--
Please check the appropriate items below if they apply to your diff.
This is required for changes to Expo modules.
-->

- [ ] Documentation is up to date to reflect these changes (eg:
https://docs.expo.dev and README.md).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
- [ ] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).

---------

Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bot: fingerprint changed bot: passed checks ExpoBot has nothing to complain about published Changes from the PR have been published to npm
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[SDK 50] [Router v3] Unable to route inside screens using Drawer screens
4 participants