mirror of
https://github.com/webstudio-is/webstudio.git
synced 2026-11-09 22:14:29 +09:00
bffc4597fe83bd4009d6e5fe7994ac769bd2da18
**Description**
Prevents published pages from rerendering the outgoing generated page
during pending internal navigation.
React Router can rerender the current route while the next route loader
is pending. The generated `Page` was rendered directly inside that
route, so the entire outgoing page could rerender before the next page
appeared.
This adds a memoized `PageBoundary` keyed by `url`, so the generated
page only rerenders/remounts when the actual page URL changes. The SDK
context value is memoized by `resources`, preserving same-URL resource
updates without exposing the full page tree to unrelated
pending-navigation rerenders.
**Changes**
- Added `PageBoundary` to React Router and Remix/default HTML route
templates.
- Kept `key={url}` behavior for HTML Embed script reloads on dynamic
pages.
- Added regression tests for:
- no outgoing page rerender while destination navigation is pending
- same-URL resource changes still update generated page content
- Added Vitest setup for `sdk-components-react-router`.
**Verification**
```txt
pnpm --filter @webstudio-is/sdk-components-react-router test src/link.test.tsx
pnpm --filter @webstudio-is/sdk-components-react-router typecheck
pnpm --filter @webstudio-is/sdk-cli typecheck
```
Learning Resources
- Blog
- Documentation
- Brand and Product Design
- Contributing Guide for Devs
- Github Discussions
- Wishlist
- Builder Issues Tracker
- Roadmap
Social Media
Thanks
Thanks to Lost Pixel for providing the visual testing platform that helps us review UI changes and catch visual regressions.
License
- Webstudio core (all functionality in this repository) is free/open-source under AGPL-3.0-or-later.
- sdk-components-animation package (optional) is proprietary. You must accept the Webstudio, Inc. EULA located in sdk-components-animation/LICENSE before using it.
Languages
TypeScript
98.9%
PLpgSQL
0.5%
CSS
0.3%
Shell
0.2%
JavaScript
0.1%
