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

chore(router): refactor hydration setting #31267

Merged
merged 9 commits into from
Aug 30, 2024

Conversation

EvanBacon
Copy link
Contributor

Why

  • We were completely invalidating the cache to change the rendering output mode. This was mostly just an artifact of when expo-router was in a different repo.

How

  • I've refactored the hydration marker to not invalidate the cache at all or even go through Babel, we just inject it as a script global in the HTML during static rendering.
  • This is pulled out of the RSC branch.
  • I did notice however that we aren't enabling hydration in development at all. It appears to be broken on the suspense boundaries. We might not be able to fix this until we have RSC support enabled.

Test Plan

  • E2E test for this will pass.
  • Dev works as expected.
  • Cache doesn't invalidate between output modes.

Checklist

@expo-bot expo-bot added the bot: suggestions ExpoBot has some suggestions label Aug 30, 2024
@expo-bot
Copy link
Collaborator

expo-bot commented Aug 30, 2024

The Pull Request introduced fingerprint changes against the base commit: 122bbd1

Fingerprint diff
[
  {
    "op": "changed",
    "source": {
      "type": "dir",
      "filePath": "../../node_modules/expo",
      "reasons": [
        "bareRncliAutolinking"
      ],
      "hash": "e874c37814b2ab83c29b6491dee49bab2fcaa357"
    }
  },
  {
    "op": "changed",
    "source": {
      "type": "dir",
      "filePath": "../../packages/expo",
      "reasons": [
        "expoAutolinkingIos",
        "expoAutolinkingAndroid",
        "expoConfigPlugins",
        "expoConfigPlugins"
      ],
      "hash": "d41f12937a1c30f8c9b0f37e1f33cc4956450e84"
    }
  },
  {
    "op": "changed",
    "source": {
      "type": "dir",
      "filePath": "../../packages/expo-modules-core",
      "reasons": [
        "expoAutolinkingIos",
        "expoAutolinkingAndroid"
      ],
      "hash": "10b7ad626b7d668ef104804146cfbee64f9cdc9b"
    }
  }
]

Generated by PR labeler 🤖

@expo-bot expo-bot added bot: passed checks ExpoBot has nothing to complain about and removed bot: suggestions ExpoBot has some suggestions labels Aug 30, 2024
@EvanBacon EvanBacon merged commit cd05640 into main Aug 30, 2024
15 checks passed
@EvanBacon EvanBacon deleted the @evanbacon/router/hydrate-setting branch August 30, 2024 20:31
behenate pushed a commit that referenced this pull request Sep 30, 2024
# Why

- We were completely invalidating the cache to change the rendering
output mode. This was mostly just an artifact of when expo-router was in
a different repo.

<!--
Please describe the motivation for this PR, and link to relevant GitHub
issues, forums posts, or feature requests.
-->

# How

- I've refactored the hydration marker to not invalidate the cache at
all or even go through Babel, we just inject it as a script global in
the HTML during static rendering.
- This is pulled out of the RSC branch.
- I did notice however that we aren't enabling hydration in development
at all. It appears to be broken on the suspense boundaries. We might not
be able to fix this until we have RSC support enabled.

<!--
How did you build this feature or fix this bug and why?
-->

# Test Plan

- E2E test for this will pass.
- Dev works as expected.
- Cache doesn't invalidate between output modes.


<!--
Please describe how you tested this change and how a reviewer could
reproduce your test, especially if this PR does not include automated
tests! If possible, please also provide terminal output and/or
screenshots demonstrating your test/reproduction.
-->

# 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).
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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants