-
Notifications
You must be signed in to change notification settings - Fork 28.5k
[dev-overlay] Render Dev Overlay with a separate React instance #79699
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
base: sebbie/05-28-_dev-overlay_inject_getownerstack_implementation
Are you sure you want to change the base?
Conversation
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
4850ce9
to
30a1807
Compare
Failing test suitesCommit: c26f093
Expand output● Build Activity Indicator › Enabled - (app) › webpack only › Shows the build indicator when a page is built during navigation
● Build Activity Indicator › Enabled - (app) › Shows build indicator when page is built from modifying
Read more about building and testing Next.js in contributing.md.
Expand output● Image localPatterns config › development mode › should fail to load img when quality is 100
Read more about building and testing Next.js in contributing.md.
Expand output● app dir - dynamic error trace › should show the error trace
Read more about building and testing Next.js in contributing.md.
Expand output● Error overlay - error message urls › should be possible to click url in runtime error
Read more about building and testing Next.js in contributing.md.
Expand output● serialize-circular-error › should serialize the object from client component in console correctly
Read more about building and testing Next.js in contributing.md.
Expand output● hydration-error-count › should display runtime error separately from hydration errors
Read more about building and testing Next.js in contributing.md.
Expand output● app-dir - owner-stack › should log stitched error for SSR errors
Read more about building and testing Next.js in contributing.md.
Expand output● Image localPatterns config › development mode › should block unmatched image does-not-exist
● Image localPatterns config › development mode › should block unmatched image nested-assets-query
● Image localPatterns config › development mode › should block unmatched image nested-blocked
● Image localPatterns config › development mode › should block unmatched image top-level
Read more about building and testing Next.js in contributing.md.
Expand output● use-cache-errors › should show a runtime error when calling the incorrectly used cache function
Read more about building and testing Next.js in contributing.md.
Expand output● dev-overlay - portal-not-affect-parent › should not affect parent display
Read more about building and testing Next.js in contributing.md.
Expand output● app-dir - owner-stack-invalid-element-type › should catch invalid element from a rsc component
● app-dir - owner-stack-invalid-element-type › should catch invalid element from on ssr client component
Read more about building and testing Next.js in contributing.md.
Expand output● dynamic-data with dynamic = "error" › displays redbox when
● dynamic-data inside cache scope › displays redbox when accessing dynamic data inside a cache scope
Read more about building and testing Next.js in contributing.md.
Expand output● Error test if the loader file export a named function › in Development › development only › should show the error when using
Read more about building and testing Next.js in contributing.md.
Expand output● app dir - global error - with style import › should render global error with correct styles
Read more about building and testing Next.js in contributing.md.
Expand output● Error overlay - RSC runtime errors › should show runtime errors if invalid server API from node_modules is executed
Read more about building and testing Next.js in contributing.md.
Expand output● error-ignored-frames › should be able to collapse ignored frames in client component
● error-ignored-frames › should be able to collapse ignored frames in interleaved call stack
Read more about building and testing Next.js in contributing.md.
Expand output● app dir - basepath › should successfully hard navigate from pages -> app
Read more about building and testing Next.js in contributing.md.
Expand output● browser-chunks › must not bundle any dev overlay into browser chunks
Read more about building and testing Next.js in contributing.md.
Expand output● Image Component Default Tests › development mode › should show invalid src error
● Image Component Default Tests › development mode › should show invalid src error when protocol-relative
● Image Component Default Tests › development mode › should show invalid src with leading space
● Image Component Default Tests › development mode › should show invalid src with trailing space
● Image Component Default Tests › development mode › should show error when string src and placeholder=blur and blurDataURL is missing
● Image Component Default Tests › development mode › should show error when invalid width prop
● Image Component Default Tests › development mode › should show error when invalid Infinity width prop
● Image Component Default Tests › development mode › should show error when invalid height prop
● Image Component Default Tests › development mode › should show error when missing width prop
● Image Component Default Tests › development mode › should show error when missing height prop
● Image Component Default Tests › development mode › should show error when width prop on fill image
● Image Component Default Tests › development mode › should show error when CSS position changed on fill image
● Image Component Default Tests › development mode › should show error when static import and placeholder=blur and blurDataUrl is missing
Read more about building and testing Next.js in contributing.md.
Expand output● nextjs APIs in after() › request APIs inside after() › cannot be called in a dynamic page
● nextjs APIs in after() › request APIs inside after() › cannot be called in a prerendered page › with
Read more about building and testing Next.js in contributing.md. |
Stats from current PRDefault Build (Increase detected
|
vercel/next.js canary | vercel/next.js sebbie/05-27-_dev-overlay_render_dev_overlay_in_a_different_leaf | Change | |
---|---|---|---|
buildDuration | 19.7s | 18.3s | N/A |
buildDurationCached | 17.1s | 14.8s | N/A |
nodeModulesSize | 428 MB | 442 MB | |
nextStartRea..uration (ms) | 467ms | 468ms | N/A |
Client Bundles (main, webpack) Overall increase ⚠️
vercel/next.js canary | vercel/next.js sebbie/05-27-_dev-overlay_render_dev_overlay_in_a_different_leaf | Change | |
---|---|---|---|
1733-HASH.js gzip | 44.6 kB | N/A | N/A |
194b18f3-HASH.js gzip | 53.8 kB | 53.8 kB | N/A |
2192.HASH.js gzip | 169 B | 168 B | N/A |
4719-HASH.js gzip | 5.47 kB | 5.45 kB | N/A |
framework-HASH.js gzip | 57.4 kB | 57.4 kB | ✓ |
main-app-HASH.js gzip | 254 B | 257 B | N/A |
main-HASH.js gzip | 33.5 kB | 33.8 kB | |
webpack-HASH.js gzip | 1.71 kB | 1.71 kB | N/A |
5934-HASH.js gzip | N/A | 118 kB | N/A |
e64931b3-HASH.js gzip | N/A | 53.8 kB | N/A |
Overall change | 91 kB | 91.2 kB |
Legacy Client Bundles (polyfills)
vercel/next.js canary | vercel/next.js sebbie/05-27-_dev-overlay_render_dev_overlay_in_a_different_leaf | Change | |
---|---|---|---|
polyfills-HASH.js gzip | 39.4 kB | 39.4 kB | ✓ |
Overall change | 39.4 kB | 39.4 kB | ✓ |
Client Pages
vercel/next.js canary | vercel/next.js sebbie/05-27-_dev-overlay_render_dev_overlay_in_a_different_leaf | Change | |
---|---|---|---|
_app-HASH.js gzip | 193 B | 193 B | ✓ |
_error-HASH.js gzip | 192 B | 192 B | ✓ |
amp-HASH.js gzip | 510 B | 509 B | N/A |
css-HASH.js gzip | 344 B | 342 B | N/A |
dynamic-HASH.js gzip | 1.84 kB | 1.84 kB | N/A |
edge-ssr-HASH.js gzip | 265 B | 265 B | ✓ |
head-HASH.js gzip | 363 B | 363 B | ✓ |
hooks-HASH.js gzip | 392 B | 391 B | N/A |
image-HASH.js gzip | 4.69 kB | 4.66 kB | N/A |
index-HASH.js gzip | 267 B | 267 B | ✓ |
link-HASH.js gzip | 2.53 kB | 2.53 kB | N/A |
routerDirect..HASH.js gzip | 328 B | 327 B | N/A |
script-HASH.js gzip | 396 B | 396 B | ✓ |
withRouter-HASH.js gzip | 325 B | 325 B | ✓ |
1afbb74e6ecf..834.css gzip | 106 B | 106 B | ✓ |
Overall change | 2.11 kB | 2.11 kB | ✓ |
Client Build Manifests
vercel/next.js canary | vercel/next.js sebbie/05-27-_dev-overlay_render_dev_overlay_in_a_different_leaf | Change | |
---|---|---|---|
_buildManifest.js gzip | 751 B | 751 B | ✓ |
Overall change | 751 B | 751 B | ✓ |
Rendered Page Sizes
vercel/next.js canary | vercel/next.js sebbie/05-27-_dev-overlay_render_dev_overlay_in_a_different_leaf | Change | |
---|---|---|---|
index.html gzip | 529 B | 529 B | ✓ |
link.html gzip | 540 B | 542 B | N/A |
withRouter.html gzip | 525 B | 524 B | N/A |
Overall change | 529 B | 529 B | ✓ |
Edge SSR bundle Size
vercel/next.js canary | vercel/next.js sebbie/05-27-_dev-overlay_render_dev_overlay_in_a_different_leaf | Change | |
---|---|---|---|
edge-ssr.js gzip | 141 kB | 141 kB | N/A |
page.js gzip | 220 kB | 220 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Middleware size Overall increase ⚠️
vercel/next.js canary | vercel/next.js sebbie/05-27-_dev-overlay_render_dev_overlay_in_a_different_leaf | Change | |
---|---|---|---|
middleware-b..fest.js gzip | 674 B | 689 B | N/A |
middleware-r..fest.js gzip | 155 B | 155 B | ✓ |
middleware.js gzip | 32.4 kB | 32.5 kB | |
edge-runtime..pack.js gzip | 853 B | 853 B | ✓ |
Overall change | 33.4 kB | 33.5 kB |
Next Runtimes Overall increase ⚠️
vercel/next.js canary | vercel/next.js sebbie/05-27-_dev-overlay_render_dev_overlay_in_a_different_leaf | Change | |
---|---|---|---|
app-page-exp...dev.js gzip | 322 kB | 424 kB | |
app-page-exp..prod.js gzip | 150 kB | 150 kB | ✓ |
app-page-tur...dev.js gzip | 322 kB | 424 kB | |
app-page-tur..prod.js gzip | 150 kB | 150 kB | ✓ |
app-page-tur...dev.js gzip | 313 kB | 393 kB | |
app-page-tur..prod.js gzip | 146 kB | 146 kB | ✓ |
app-page.run...dev.js gzip | 313 kB | 393 kB | |
app-page.run..prod.js gzip | 146 kB | 146 kB | ✓ |
app-route-ex...dev.js gzip | 60.5 kB | 60.5 kB | ✓ |
app-route-ex..prod.js gzip | 39.5 kB | 39.5 kB | ✓ |
app-route-tu...dev.js gzip | 60.6 kB | 60.6 kB | ✓ |
app-route-tu..prod.js gzip | 39.5 kB | 39.5 kB | ✓ |
app-route-tu...dev.js gzip | 60 kB | 60 kB | ✓ |
app-route-tu..prod.js gzip | 39.1 kB | 39.1 kB | ✓ |
app-route.ru...dev.js gzip | 59.9 kB | 59.9 kB | ✓ |
app-route.ru..prod.js gzip | 39.1 kB | 39.1 kB | ✓ |
dist_client_...dev.js gzip | 326 B | 326 B | ✓ |
dist_client_...dev.js gzip | 328 B | 328 B | ✓ |
dist_client_...dev.js gzip | 320 B | 320 B | ✓ |
dist_client_...dev.js gzip | 318 B | 318 B | ✓ |
pages-api-tu...dev.js gzip | 30 kB | 30 kB | ✓ |
pages-api-tu..prod.js gzip | 21.4 kB | 21.4 kB | ✓ |
pages-api.ru...dev.js gzip | 30 kB | 30 kB | ✓ |
pages-api.ru..prod.js gzip | 21.4 kB | 21.4 kB | ✓ |
pages-turbo....dev.js gzip | 43.7 kB | 43.7 kB | ✓ |
pages-turbo...prod.js gzip | 32 kB | 32 kB | ✓ |
pages.runtim...dev.js gzip | 43.9 kB | 43.9 kB | ✓ |
pages.runtim..prod.js gzip | 32.1 kB | 32.1 kB | ✓ |
server.runti..prod.js gzip | 67.2 kB | 67.2 kB | ✓ |
Overall change | 2.58 MB | 2.95 MB |
build cache
vercel/next.js canary | vercel/next.js sebbie/05-27-_dev-overlay_render_dev_overlay_in_a_different_leaf | Change | |
---|---|---|---|
0.pack gzip | 2.49 MB | 2.48 MB | N/A |
index.pack gzip | 79.2 kB | 79.1 kB | N/A |
Overall change | 0 B | 0 B | ✓ |
Diff details
Diff for page.js
Diff too large to display
Diff for middleware-b..-manifest.js
@@ -4,97 +4,98 @@ globalThis.__BUILD_MANIFEST = {
ampDevFiles: [],
lowPriorityFiles: [],
rootMainFiles: [
- "static/chunks/webpack-93c6ad3ef7fdec96.js",
- "static/chunks/194b18f3-ad0b5faa3f073e8b.js",
- "static/chunks/1733-8a60991ee6f9a671.js",
- "static/chunks/main-app-1fd661ee553e877a.js",
+ "static/chunks/webpack-da0948d8ba589361.js",
+ "static/chunks/821c8963-d20f2759aab0aa64.js",
+ "static/chunks/e64931b3-d1423d2ccd7343d7.js",
+ "static/chunks/5934-e0bd6b9417b407b8.js",
+ "static/chunks/main-app-2160a4cd8be64add.js",
],
rootMainFilesTree: {},
pages: {
"/": [
- "static/chunks/webpack-93c6ad3ef7fdec96.js",
- "static/chunks/framework-0fd374db6ba8fd9d.js",
- "static/chunks/main-68ec2182fb993cfd.js",
- "static/chunks/pages/index-3f348483acfac6f3.js",
+ "static/chunks/webpack-da0948d8ba589361.js",
+ "static/chunks/framework-25d1493f0675f828.js",
+ "static/chunks/main-15af5e5adb811a43.js",
+ "static/chunks/pages/index-3bbf9f37b5eb8140.js",
],
"/_app": [
- "static/chunks/webpack-93c6ad3ef7fdec96.js",
- "static/chunks/framework-0fd374db6ba8fd9d.js",
- "static/chunks/main-68ec2182fb993cfd.js",
- "static/chunks/pages/_app-82b6a92e9735c5c4.js",
+ "static/chunks/webpack-da0948d8ba589361.js",
+ "static/chunks/framework-25d1493f0675f828.js",
+ "static/chunks/main-15af5e5adb811a43.js",
+ "static/chunks/pages/_app-164e4559ef174ca6.js",
],
"/_error": [
- "static/chunks/webpack-93c6ad3ef7fdec96.js",
- "static/chunks/framework-0fd374db6ba8fd9d.js",
- "static/chunks/main-68ec2182fb993cfd.js",
- "static/chunks/pages/_error-7d60494101e7e04b.js",
+ "static/chunks/webpack-da0948d8ba589361.js",
+ "static/chunks/framework-25d1493f0675f828.js",
+ "static/chunks/main-15af5e5adb811a43.js",
+ "static/chunks/pages/_error-ca8ee97c2e83a291.js",
],
"/amp": [
- "static/chunks/webpack-93c6ad3ef7fdec96.js",
- "static/chunks/framework-0fd374db6ba8fd9d.js",
- "static/chunks/main-68ec2182fb993cfd.js",
- "static/chunks/pages/amp-7a003c8aade6a8ed.js",
+ "static/chunks/webpack-da0948d8ba589361.js",
+ "static/chunks/framework-25d1493f0675f828.js",
+ "static/chunks/main-15af5e5adb811a43.js",
+ "static/chunks/pages/amp-80fb022b30aa2588.js",
],
"/css": [
- "static/chunks/webpack-93c6ad3ef7fdec96.js",
- "static/chunks/framework-0fd374db6ba8fd9d.js",
- "static/chunks/main-68ec2182fb993cfd.js",
+ "static/chunks/webpack-da0948d8ba589361.js",
+ "static/chunks/framework-25d1493f0675f828.js",
+ "static/chunks/main-15af5e5adb811a43.js",
"static/css/ded6b86ab9cc0a1f.css",
- "static/chunks/pages/css-f4779eb65373d053.js",
+ "static/chunks/pages/css-738173634ce3623b.js",
],
"/dynamic": [
- "static/chunks/webpack-93c6ad3ef7fdec96.js",
- "static/chunks/framework-0fd374db6ba8fd9d.js",
- "static/chunks/main-68ec2182fb993cfd.js",
- "static/chunks/pages/dynamic-2730e2fdcfb7b406.js",
+ "static/chunks/webpack-da0948d8ba589361.js",
+ "static/chunks/framework-25d1493f0675f828.js",
+ "static/chunks/main-15af5e5adb811a43.js",
+ "static/chunks/pages/dynamic-73ff8bbc4f973f3f.js",
],
"/edge-ssr": [
- "static/chunks/webpack-93c6ad3ef7fdec96.js",
- "static/chunks/framework-0fd374db6ba8fd9d.js",
- "static/chunks/main-68ec2182fb993cfd.js",
- "static/chunks/pages/edge-ssr-5ebc1230b35fc04c.js",
+ "static/chunks/webpack-da0948d8ba589361.js",
+ "static/chunks/framework-25d1493f0675f828.js",
+ "static/chunks/main-15af5e5adb811a43.js",
+ "static/chunks/pages/edge-ssr-9fe9ba94f9eb965b.js",
],
"/head": [
- "static/chunks/webpack-93c6ad3ef7fdec96.js",
- "static/chunks/framework-0fd374db6ba8fd9d.js",
- "static/chunks/main-68ec2182fb993cfd.js",
- "static/chunks/pages/head-feed0ea90ec62819.js",
+ "static/chunks/webpack-da0948d8ba589361.js",
+ "static/chunks/framework-25d1493f0675f828.js",
+ "static/chunks/main-15af5e5adb811a43.js",
+ "static/chunks/pages/head-84607c58ce1e9fe7.js",
],
"/hooks": [
- "static/chunks/webpack-93c6ad3ef7fdec96.js",
- "static/chunks/framework-0fd374db6ba8fd9d.js",
- "static/chunks/main-68ec2182fb993cfd.js",
- "static/chunks/pages/hooks-48749230a507023c.js",
+ "static/chunks/webpack-da0948d8ba589361.js",
+ "static/chunks/framework-25d1493f0675f828.js",
+ "static/chunks/main-15af5e5adb811a43.js",
+ "static/chunks/pages/hooks-cb7f2b56d6425631.js",
],
"/image": [
- "static/chunks/webpack-93c6ad3ef7fdec96.js",
- "static/chunks/framework-0fd374db6ba8fd9d.js",
- "static/chunks/main-68ec2182fb993cfd.js",
- "static/chunks/pages/image-190421452c367c41.js",
+ "static/chunks/webpack-da0948d8ba589361.js",
+ "static/chunks/framework-25d1493f0675f828.js",
+ "static/chunks/main-15af5e5adb811a43.js",
+ "static/chunks/pages/image-c0ee4eb3171411d1.js",
],
"/link": [
- "static/chunks/webpack-93c6ad3ef7fdec96.js",
- "static/chunks/framework-0fd374db6ba8fd9d.js",
- "static/chunks/main-68ec2182fb993cfd.js",
- "static/chunks/pages/link-66bfaa6ba0bd2f16.js",
+ "static/chunks/webpack-da0948d8ba589361.js",
+ "static/chunks/framework-25d1493f0675f828.js",
+ "static/chunks/main-15af5e5adb811a43.js",
+ "static/chunks/pages/link-bfe36bef994747dc.js",
],
"/routerDirect": [
- "static/chunks/webpack-93c6ad3ef7fdec96.js",
- "static/chunks/framework-0fd374db6ba8fd9d.js",
- "static/chunks/main-68ec2182fb993cfd.js",
- "static/chunks/pages/routerDirect-54144348ca085143.js",
+ "static/chunks/webpack-da0948d8ba589361.js",
+ "static/chunks/framework-25d1493f0675f828.js",
+ "static/chunks/main-15af5e5adb811a43.js",
+ "static/chunks/pages/routerDirect-8dbbab648287414d.js",
],
"/script": [
- "static/chunks/webpack-93c6ad3ef7fdec96.js",
- "static/chunks/framework-0fd374db6ba8fd9d.js",
- "static/chunks/main-68ec2182fb993cfd.js",
- "static/chunks/pages/script-f4059c7f529483f6.js",
+ "static/chunks/webpack-da0948d8ba589361.js",
+ "static/chunks/framework-25d1493f0675f828.js",
+ "static/chunks/main-15af5e5adb811a43.js",
+ "static/chunks/pages/script-288d94ff7c426dae.js",
],
"/withRouter": [
- "static/chunks/webpack-93c6ad3ef7fdec96.js",
- "static/chunks/framework-0fd374db6ba8fd9d.js",
- "static/chunks/main-68ec2182fb993cfd.js",
- "static/chunks/pages/withRouter-faf7c6b1d5ea77c5.js",
+ "static/chunks/webpack-da0948d8ba589361.js",
+ "static/chunks/framework-25d1493f0675f828.js",
+ "static/chunks/main-15af5e5adb811a43.js",
+ "static/chunks/pages/withRouter-055502021ff2e2a8.js",
],
},
ampFirstPages: [],
Diff for middleware.js
Diff too large to display
Diff for edge-ssr.js
Diff too large to display
Diff for amp-HASH.js
@@ -1,17 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[5034],
{
- /***/ 3960: /***/ (
- module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- module.exports = __webpack_require__(5313);
-
- /***/
- },
-
- /***/ 5313: /***/ (module, exports, __webpack_require__) => {
+ /***/ 959: /***/ (module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
@@ -27,8 +17,8 @@
const _react = /*#__PURE__*/ _interop_require_default._(
__webpack_require__(148)
);
- const _ampcontextsharedruntime = __webpack_require__(919);
- const _ampmode = __webpack_require__(1615);
+ const _ampcontextsharedruntime = __webpack_require__(6289);
+ const _ampmode = __webpack_require__(3669);
function useAmp() {
// Don't assign the context value to a variable to save bytes
return (0, _ampmode.isInAmpMode)(
@@ -50,7 +40,7 @@
/***/
},
- /***/ 6756: /***/ (
+ /***/ 996: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -63,7 +53,7 @@
/* harmony export */
});
/* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0__ =
- __webpack_require__(3960);
+ __webpack_require__(3870);
/* harmony import */ var next_amp__WEBPACK_IMPORTED_MODULE_0___default =
/*#__PURE__*/ __webpack_require__.n(
next_amp__WEBPACK_IMPORTED_MODULE_0__
@@ -81,7 +71,17 @@
/***/
},
- /***/ 7252: /***/ (
+ /***/ 3870: /***/ (
+ module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ module.exports = __webpack_require__(959);
+
+ /***/
+ },
+
+ /***/ 8318: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -89,7 +89,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/amp",
function () {
- return __webpack_require__(6756);
+ return __webpack_require__(996);
},
]);
if (false) {
@@ -103,7 +103,7 @@
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(7252)
+ __webpack_exec__(8318)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for css-HASH.js
@@ -1,7 +1,14 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[9813],
{
- /***/ 1586: /***/ (
+ /***/ 342: /***/ (module) => {
+ // extracted by mini-css-extract-plugin
+ module.exports = { helloWorld: "css_helloWorld__aUdUq" };
+
+ /***/
+ },
+
+ /***/ 2628: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -9,7 +16,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/css",
function () {
- return __webpack_require__(4362);
+ return __webpack_require__(6221);
},
]);
if (false) {
@@ -18,14 +25,7 @@
/***/
},
- /***/ 4350: /***/ (module) => {
- // extracted by mini-css-extract-plugin
- module.exports = { helloWorld: "css_helloWorld__aUdUq" };
-
- /***/
- },
-
- /***/ 4362: /***/ (
+ /***/ 6221: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -39,7 +39,7 @@
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(5640);
/* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(4350);
+ __webpack_require__(342);
/* harmony import */ var _css_module_css__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
_css_module_css__WEBPACK_IMPORTED_MODULE_1__
@@ -64,7 +64,7 @@
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(1586)
+ __webpack_exec__(2628)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for dynamic-HASH.js
@@ -1,17 +1,185 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[2291],
{
- /***/ 283: /***/ (
- module,
+ /***/ 1793: /***/ (
+ __unused_webpack_module,
+ exports,
+ __webpack_require__
+ ) => {
+ "use strict";
+ /* __next_internal_client_entry_do_not_use__ cjs */
+ Object.defineProperty(exports, "__esModule", {
+ value: true,
+ });
+ Object.defineProperty(exports, "LoadableContext", {
+ enumerable: true,
+ get: function () {
+ return LoadableContext;
+ },
+ });
+ const _interop_require_default = __webpack_require__(1532);
+ const _react = /*#__PURE__*/ _interop_require_default._(
+ __webpack_require__(148)
+ );
+ const LoadableContext = _react.default.createContext(null);
+ if (false) {
+ } //# sourceMappingURL=loadable-context.shared-runtime.js.map
+
+ /***/
+ },
+
+ /***/ 2976: /***/ (
+ __unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
) => {
- module.exports = __webpack_require__(6990);
+ (window.__NEXT_P = window.__NEXT_P || []).push([
+ "/dynamic",
+ function () {
+ return __webpack_require__(9671);
+ },
+ ]);
+ if (false) {
+ }
+
+ /***/
+ },
+
+ /***/ 3348: /***/ (module, exports, __webpack_require__) => {
+ "use strict";
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true,
+ });
+ 0 && 0;
+ function _export(target, all) {
+ for (var name in all)
+ Object.defineProperty(target, name, {
+ enumerable: true,
+ get: all[name],
+ });
+ }
+ _export(exports, {
+ /**
+ * This function lets you dynamically import a component.
+ * It uses [React.lazy()](https://react.dev/reference/react/lazy) with [Suspense](https://react.dev/reference/react/Suspense) under the hood.
+ *
+ * Read more: [Next.js Docs: `next/dynamic`](https://nextjs.org/docs/app/building-your-application/optimizing/lazy-loading#nextdynamic)
+ */ default: function () {
+ return dynamic;
+ },
+ noSSR: function () {
+ return noSSR;
+ },
+ });
+ const _interop_require_default = __webpack_require__(1532);
+ const _jsxruntime = __webpack_require__(5640);
+ const _react = /*#__PURE__*/ _interop_require_default._(
+ __webpack_require__(148)
+ );
+ const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
+ __webpack_require__(5779)
+ );
+ const isServerSide = "object" === "undefined";
+ // Normalize loader to return the module as form { default: Component } for `React.lazy`.
+ // Also for backward compatible since next/dynamic allows to resolve a component directly with loader
+ // Client component reference proxy need to be converted to a module.
+ function convertModule(mod) {
+ return {
+ default: (mod == null ? void 0 : mod.default) || mod,
+ };
+ }
+ function noSSR(LoadableInitializer, loadableOptions) {
+ // Removing webpack and modules means react-loadable won't try preloading
+ delete loadableOptions.webpack;
+ delete loadableOptions.modules;
+ // This check is necessary to prevent react-loadable from initializing on the server
+ if (!isServerSide) {
+ return LoadableInitializer(loadableOptions);
+ }
+ const Loading = loadableOptions.loading;
+ // This will only be rendered on the server side
+ return () =>
+ /*#__PURE__*/ (0, _jsxruntime.jsx)(Loading, {
+ error: null,
+ isLoading: true,
+ pastDelay: false,
+ timedOut: false,
+ });
+ }
+ function dynamic(dynamicOptions, options) {
+ let loadableFn = _loadablesharedruntime.default;
+ let loadableOptions = {
+ // A loading component is not required, so we default it
+ loading: (param) => {
+ let { error, isLoading, pastDelay } = param;
+ if (!pastDelay) return null;
+ if (false) {
+ }
+ return null;
+ },
+ };
+ // Support for direct import(), eg: dynamic(import('../hello-world'))
+ // Note that this is only kept for the edge case where someone is passing in a promise as first argument
+ // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))
+ // To make sure we don't execute the import without rendering first
+ if (dynamicOptions instanceof Promise) {
+ loadableOptions.loader = () => dynamicOptions;
+ // Support for having import as a function, eg: dynamic(() => import('../hello-world'))
+ } else if (typeof dynamicOptions === "function") {
+ loadableOptions.loader = dynamicOptions;
+ // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})
+ } else if (typeof dynamicOptions === "object") {
+ loadableOptions = {
+ ...loadableOptions,
+ ...dynamicOptions,
+ };
+ }
+ // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () => <p>Loading something</p>})
+ loadableOptions = {
+ ...loadableOptions,
+ ...options,
+ };
+ const loaderFn = loadableOptions.loader;
+ const loader = () =>
+ loaderFn != null
+ ? loaderFn().then(convertModule)
+ : Promise.resolve(convertModule(() => null));
+ // coming from build/babel/plugins/react-loadable-plugin.js
+ if (loadableOptions.loadableGenerated) {
+ loadableOptions = {
+ ...loadableOptions,
+ ...loadableOptions.loadableGenerated,
+ };
+ delete loadableOptions.loadableGenerated;
+ }
+ // support for disabling server side rendering, eg: dynamic(() => import('../hello-world'), {ssr: false}).
+ if (typeof loadableOptions.ssr === "boolean" && !loadableOptions.ssr) {
+ delete loadableOptions.webpack;
+ delete loadableOptions.modules;
+ return noSSR(loadableFn, loadableOptions);
+ }
+ return loadableFn({
+ ...loadableOptions,
+ loader: loader,
+ });
+ }
+ if (
+ (typeof exports.default === "function" ||
+ (typeof exports.default === "object" && exports.default !== null)) &&
+ typeof exports.default.__esModule === "undefined"
+ ) {
+ Object.defineProperty(exports.default, "__esModule", {
+ value: true,
+ });
+ Object.assign(exports.default, exports);
+ module.exports = exports.default;
+ } //# sourceMappingURL=dynamic.js.map
/***/
},
- /***/ 505: /***/ (
+ /***/ 5779: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -53,7 +221,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
const _react = /*#__PURE__*/ _interop_require_default._(
__webpack_require__(148)
);
- const _loadablecontextsharedruntime = __webpack_require__(6179);
+ const _loadablecontextsharedruntime = __webpack_require__(1793);
function resolve(obj) {
return obj && obj.default ? obj.default : obj;
}
@@ -288,7 +456,17 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
/***/
},
- /***/ 5703: /***/ (
+ /***/ 9553: /***/ (
+ module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ module.exports = __webpack_require__(3348);
+
+ /***/
+ },
+
+ /***/ 9671: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -303,7 +481,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(5640);
/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(283);
+ __webpack_require__(9553);
/* harmony import */ var next_dynamic__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
next_dynamic__WEBPACK_IMPORTED_MODULE_1__
@@ -312,12 +490,12 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
const DynamicHello = next_dynamic__WEBPACK_IMPORTED_MODULE_1___default()(
() =>
__webpack_require__
- .e(/* import() */ 2192)
- .then(__webpack_require__.bind(__webpack_require__, 2192))
+ .e(/* import() */ 6160)
+ .then(__webpack_require__.bind(__webpack_require__, 6160))
.then((mod) => mod.Hello),
{
loadableGenerated: {
- webpack: () => [/*require.resolve*/ 2192],
+ webpack: () => [/*require.resolve*/ 6160],
},
}
);
@@ -343,191 +521,13 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE
/***/
},
-
- /***/ 6179: /***/ (
- __unused_webpack_module,
- exports,
- __webpack_require__
- ) => {
- "use strict";
- /* __next_internal_client_entry_do_not_use__ cjs */
- Object.defineProperty(exports, "__esModule", {
- value: true,
- });
- Object.defineProperty(exports, "LoadableContext", {
- enumerable: true,
- get: function () {
- return LoadableContext;
- },
- });
- const _interop_require_default = __webpack_require__(1532);
- const _react = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(148)
- );
- const LoadableContext = _react.default.createContext(null);
- if (false) {
- } //# sourceMappingURL=loadable-context.shared-runtime.js.map
-
- /***/
- },
-
- /***/ 6990: /***/ (module, exports, __webpack_require__) => {
- "use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true,
- });
- 0 && 0;
- function _export(target, all) {
- for (var name in all)
- Object.defineProperty(target, name, {
- enumerable: true,
- get: all[name],
- });
- }
- _export(exports, {
- /**
- * This function lets you dynamically import a component.
- * It uses [React.lazy()](https://react.dev/reference/react/lazy) with [Suspense](https://react.dev/reference/react/Suspense) under the hood.
- *
- * Read more: [Next.js Docs: `next/dynamic`](https://nextjs.org/docs/app/building-your-application/optimizing/lazy-loading#nextdynamic)
- */ default: function () {
- return dynamic;
- },
- noSSR: function () {
- return noSSR;
- },
- });
- const _interop_require_default = __webpack_require__(1532);
- const _jsxruntime = __webpack_require__(5640);
- const _react = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(148)
- );
- const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(505)
- );
- const isServerSide = "object" === "undefined";
- // Normalize loader to return the module as form { default: Component } for `React.lazy`.
- // Also for backward compatible since next/dynamic allows to resolve a component directly with loader
- // Client component reference proxy need to be converted to a module.
- function convertModule(mod) {
- return {
- default: (mod == null ? void 0 : mod.default) || mod,
- };
- }
- function noSSR(LoadableInitializer, loadableOptions) {
- // Removing webpack and modules means react-loadable won't try preloading
- delete loadableOptions.webpack;
- delete loadableOptions.modules;
- // This check is necessary to prevent react-loadable from initializing on the server
- if (!isServerSide) {
- return LoadableInitializer(loadableOptions);
- }
- const Loading = loadableOptions.loading;
- // This will only be rendered on the server side
- return () =>
- /*#__PURE__*/ (0, _jsxruntime.jsx)(Loading, {
- error: null,
- isLoading: true,
- pastDelay: false,
- timedOut: false,
- });
- }
- function dynamic(dynamicOptions, options) {
- let loadableFn = _loadablesharedruntime.default;
- let loadableOptions = {
- // A loading component is not required, so we default it
- loading: (param) => {
- let { error, isLoading, pastDelay } = param;
- if (!pastDelay) return null;
- if (false) {
- }
- return null;
- },
- };
- // Support for direct import(), eg: dynamic(import('../hello-world'))
- // Note that this is only kept for the edge case where someone is passing in a promise as first argument
- // The react-loadable babel plugin will turn dynamic(import('../hello-world')) into dynamic(() => import('../hello-world'))
- // To make sure we don't execute the import without rendering first
- if (dynamicOptions instanceof Promise) {
- loadableOptions.loader = () => dynamicOptions;
- // Support for having import as a function, eg: dynamic(() => import('../hello-world'))
- } else if (typeof dynamicOptions === "function") {
- loadableOptions.loader = dynamicOptions;
- // Support for having first argument being options, eg: dynamic({loader: import('../hello-world')})
- } else if (typeof dynamicOptions === "object") {
- loadableOptions = {
- ...loadableOptions,
- ...dynamicOptions,
- };
- }
- // Support for passing options, eg: dynamic(import('../hello-world'), {loading: () => <p>Loading something</p>})
- loadableOptions = {
- ...loadableOptions,
- ...options,
- };
- const loaderFn = loadableOptions.loader;
- const loader = () =>
- loaderFn != null
- ? loaderFn().then(convertModule)
- : Promise.resolve(convertModule(() => null));
- // coming from build/babel/plugins/react-loadable-plugin.js
- if (loadableOptions.loadableGenerated) {
- loadableOptions = {
- ...loadableOptions,
- ...loadableOptions.loadableGenerated,
- };
- delete loadableOptions.loadableGenerated;
- }
- // support for disabling server side rendering, eg: dynamic(() => import('../hello-world'), {ssr: false}).
- if (typeof loadableOptions.ssr === "boolean" && !loadableOptions.ssr) {
- delete loadableOptions.webpack;
- delete loadableOptions.modules;
- return noSSR(loadableFn, loadableOptions);
- }
- return loadableFn({
- ...loadableOptions,
- loader: loader,
- });
- }
- if (
- (typeof exports.default === "function" ||
- (typeof exports.default === "object" && exports.default !== null)) &&
- typeof exports.default.__esModule === "undefined"
- ) {
- Object.defineProperty(exports.default, "__esModule", {
- value: true,
- });
- Object.assign(exports.default, exports);
- module.exports = exports.default;
- } //# sourceMappingURL=dynamic.js.map
-
- /***/
- },
-
- /***/ 9254: /***/ (
- __unused_webpack_module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- (window.__NEXT_P = window.__NEXT_P || []).push([
- "/dynamic",
- function () {
- return __webpack_require__(5703);
- },
- ]);
- if (false) {
- }
-
- /***/
- },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(9254)
+ __webpack_exec__(2976)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for edge-ssr-HASH.js
@@ -1,7 +1,24 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[676],
{
- /***/ 2906: /***/ (
+ /***/ 3690: /***/ (
+ __unused_webpack_module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ (window.__NEXT_P = window.__NEXT_P || []).push([
+ "/edge-ssr",
+ function () {
+ return __webpack_require__(4378);
+ },
+ ]);
+ if (false) {
+ }
+
+ /***/
+ },
+
+ /***/ 4378: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -20,30 +37,13 @@
/***/
},
-
- /***/ 7248: /***/ (
- __unused_webpack_module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- (window.__NEXT_P = window.__NEXT_P || []).push([
- "/edge-ssr",
- function () {
- return __webpack_require__(2906);
- },
- ]);
- if (false) {
- }
-
- /***/
- },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(7248)
+ __webpack_exec__(3690)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for hooks-HASH.js
@@ -1,24 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[9804],
{
- /***/ 1664: /***/ (
- __unused_webpack_module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- (window.__NEXT_P = window.__NEXT_P || []).push([
- "/hooks",
- function () {
- return __webpack_require__(6130);
- },
- ]);
- if (false) {
- }
-
- /***/
- },
-
- /***/ 6130: /***/ (
+ /***/ 2786: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -76,13 +59,30 @@
/***/
},
+
+ /***/ 5426: /***/ (
+ __unused_webpack_module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ (window.__NEXT_P = window.__NEXT_P || []).push([
+ "/hooks",
+ function () {
+ return __webpack_require__(2786);
+ },
+ ]);
+ if (false) {
+ }
+
+ /***/
+ },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(1664)
+ __webpack_exec__(5426)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for image-HASH.js
@@ -1,7 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[2983],
{
- /***/ 2198: /***/ (
+ /***/ 264: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -9,7 +9,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/image",
function () {
- return __webpack_require__(3444);
+ return __webpack_require__(1075);
},
]);
if (false) {
@@ -18,7 +18,307 @@
/***/
},
- /***/ 2514: /***/ (
+ /***/ 1075: /***/ (
+ __unused_webpack_module,
+ __webpack_exports__,
+ __webpack_require__
+ ) => {
+ "use strict";
+ // ESM COMPAT FLAG
+ __webpack_require__.r(__webpack_exports__);
+
+ // EXPORTS
+ __webpack_require__.d(__webpack_exports__, {
+ __N_SSP: () => /* binding */ __N_SSP,
+ default: () => /* binding */ pages_image,
+ });
+
+ // EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]/node_modules/react/jsx-runtime.js
+ var jsx_runtime = __webpack_require__(5640);
+ // EXTERNAL MODULE: ./node_modules/.pnpm/next@[email protected][email protected][email protected]/node_modules/next/image.js
+ var next_image = __webpack_require__(3353);
+ var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // ./pages/nextjs.png
+ /* harmony default export */ const nextjs = {
+ src: "/_next/static/media/nextjs.cae0b805.png",
+ height: 1347,
+ width: 1626,
+ blurDataURL:
+ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAMAAAACh/xsAAAAD1BMVEX////x8fH6+vrb29vo6Oh8o70bAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAH0lEQVR4nGNgwARMjIyMjCAGCzMzMwsTRISJCcRABwAEcAAkLCQfgAAAAABJRU5ErkJggg==",
+ blurWidth: 8,
+ blurHeight: 7,
+ }; // ./pages/image.js
+ function ImagePage(props) {
+ return /*#__PURE__*/ (0, jsx_runtime.jsxs)(jsx_runtime.Fragment, {
+ children: [
+ /*#__PURE__*/ (0, jsx_runtime.jsx)("h1", {
+ children: "next/image example",
+ }),
+ /*#__PURE__*/ (0, jsx_runtime.jsx)(image_default(), {
+ src: nextjs,
+ placeholder: "blur",
+ }),
+ ],
+ });
+ }
+ var __N_SSP = true;
+ /* harmony default export */ const pages_image = ImagePage;
+
+ /***/
+ },
+
+ /***/ 1296: /***/ (
+ __unused_webpack_module,
+ exports,
+ __webpack_require__
+ ) => {
+ "use strict";
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true,
+ });
+ 0 && 0;
+ function _export(target, all) {
+ for (var name in all)
+ Object.defineProperty(target, name, {
+ enumerable: true,
+ get: all[name],
+ });
+ }
+ _export(exports, {
+ default: function () {
+ return _default;
+ },
+ getImageProps: function () {
+ return getImageProps;
+ },
+ });
+ const _interop_require_default = __webpack_require__(1532);
+ const _getimgprops = __webpack_require__(7628);
+ const _imagecomponent = __webpack_require__(8912);
+ const _imageloader = /*#__PURE__*/ _interop_require_default._(
+ __webpack_require__(4104)
+ );
+ function getImageProps(imgProps) {
+ const { props } = (0, _getimgprops.getImgProps)(imgProps, {
+ defaultLoader: _imageloader.default,
+ // This is replaced by webpack define plugin
+ imgConf: {
+ deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
+ imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
+ path: "/_next/image",
+ loader: "default",
+ dangerouslyAllowSVG: false,
+ unoptimized: false,
+ },
+ });
+ // Normally we don't care about undefined props because we pass to JSX,
+ // but this exported function could be used by the end user for anything
+ // so we delete undefined props to clean it up a little.
+ for (const [key, value] of Object.entries(props)) {
+ if (value === undefined) {
+ delete props[key];
+ }
+ }
+ return {
+ props,
+ };
+ }
+ const _default = _imagecomponent.Image; //# sourceMappingURL=image-external.js.map
+
+ /***/
+ },
+
+ /***/ 2297: /***/ (__unused_webpack_module, exports) => {
+ "use strict";
+ /**
+ * A shared function, used on both client and server, to generate a SVG blur placeholder.
+ */
+ Object.defineProperty(exports, "__esModule", {
+ value: true,
+ });
+ Object.defineProperty(exports, "getImageBlurSvg", {
+ enumerable: true,
+ get: function () {
+ return getImageBlurSvg;
+ },
+ });
+ function getImageBlurSvg(param) {
+ let {
+ widthInt,
+ heightInt,
+ blurWidth,
+ blurHeight,
+ blurDataURL,
+ objectFit,
+ } = param;
+ const std = 20;
+ const svgWidth = blurWidth ? blurWidth * 40 : widthInt;
+ const svgHeight = blurHeight ? blurHeight * 40 : heightInt;
+ const viewBox =
+ svgWidth && svgHeight
+ ? "viewBox='0 0 " + svgWidth + " " + svgHeight + "'"
+ : "";
+ const preserveAspectRatio = viewBox
+ ? "none"
+ : objectFit === "contain"
+ ? "xMidYMid"
+ : objectFit === "cover"
+ ? "xMidYMid slice"
+ : "none";
+ return (
+ "%3Csvg xmlns='http://www.w3.org/2000/svg' " +
+ viewBox +
+ "%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='" +
+ std +
+ "'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='" +
+ std +
+ "'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='" +
+ preserveAspectRatio +
+ "' style='filter: url(%23b);' href='" +
+ blurDataURL +
+ "'/%3E%3C/svg%3E"
+ );
+ } //# sourceMappingURL=image-blur-svg.js.map
+
+ /***/
+ },
+
+ /***/ 3353: /***/ (
+ module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ module.exports = __webpack_require__(1296);
+
+ /***/
+ },
+
+ /***/ 4104: /***/ (__unused_webpack_module, exports) => {
+ "use strict";
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true,
+ });
+ Object.defineProperty(exports, "default", {
+ enumerable: true,
+ get: function () {
+ return _default;
+ },
+ });
+ const DEFAULT_Q = 75;
+ function defaultLoader(param) {
+ let { config, src, width, quality } = param;
+ var _config_qualities;
+ if (false) {
+ }
+ const q =
+ quality ||
+ ((_config_qualities = config.qualities) == null
+ ? void 0
+ : _config_qualities.reduce((prev, cur) =>
+ Math.abs(cur - DEFAULT_Q) < Math.abs(prev - DEFAULT_Q)
+ ? cur
+ : prev
+ )) ||
+ DEFAULT_Q;
+ return (
+ config.path +
+ "?url=" +
+ encodeURIComponent(src) +
+ "&w=" +
+ width +
+ "&q=" +
+ q +
+ (src.startsWith("/_next/static/media/") && false ? 0 : "")
+ );
+ }
+ // We use this to determine if the import is the default loader
+ // or a custom loader defined by the user in next.config.js
+ defaultLoader.__next_img_default = true;
+ const _default = defaultLoader; //# sourceMappingURL=image-loader.js.map
+
+ /***/
+ },
+
+ /***/ 6975: /***/ (module, exports, __webpack_require__) => {
+ "use strict";
+
+ Object.defineProperty(exports, "__esModule", {
+ value: true,
+ });
+ Object.defineProperty(exports, "useMergedRef", {
+ enumerable: true,
+ get: function () {
+ return useMergedRef;
+ },
+ });
+ const _react = __webpack_require__(148);
+ function useMergedRef(refA, refB) {
+ const cleanupA = (0, _react.useRef)(null);
+ const cleanupB = (0, _react.useRef)(null);
+ // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.
+ // (this happens often if the user doesn't pass a ref to Link/Form/Image)
+ // But this can cause us to leak a cleanup-ref into user code (e.g. via `<Link legacyBehavior>`),
+ // and the user might pass that ref into ref-merging library that doesn't support cleanup refs
+ // (because it hasn't been updated for React 19)
+ // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.
+ // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.
+ return (0, _react.useCallback)(
+ (current) => {
+ if (current === null) {
+ const cleanupFnA = cleanupA.current;
+ if (cleanupFnA) {
+ cleanupA.current = null;
+ cleanupFnA();
+ }
+ const cleanupFnB = cleanupB.current;
+ if (cleanupFnB) {
+ cleanupB.current = null;
+ cleanupFnB();
+ }
+ } else {
+ if (refA) {
+ cleanupA.current = applyRef(refA, current);
+ }
+ if (refB) {
+ cleanupB.current = applyRef(refB, current);
+ }
+ }
+ },
+ [refA, refB]
+ );
+ }
+ function applyRef(refA, current) {
+ if (typeof refA === "function") {
+ const cleanup = refA(current);
+ if (typeof cleanup === "function") {
+ return cleanup;
+ } else {
+ return () => refA(null);
+ }
+ } else {
+ refA.current = current;
+ return () => {
+ refA.current = null;
+ };
+ }
+ }
+ if (
+ (typeof exports.default === "function" ||
+ (typeof exports.default === "object" && exports.default !== null)) &&
+ typeof exports.default.__esModule === "undefined"
+ ) {
+ Object.defineProperty(exports.default, "__esModule", {
+ value: true,
+ });
+ Object.assign(exports.default, exports);
+ module.exports = exports.default;
+ } //# sourceMappingURL=use-merged-ref.js.map
+
+ /***/
+ },
+
+ /***/ 7628: /***/ (
__unused_webpack_module,
exports,
__webpack_require__
@@ -34,9 +334,9 @@
return getImgProps;
},
});
- const _warnonce = __webpack_require__(5127);
- const _imageblursvg = __webpack_require__(4287);
- const _imageconfig = __webpack_require__(2795);
+ const _warnonce = __webpack_require__(8373);
+ const _imageblursvg = __webpack_require__(2297);
+ const _imageconfig = __webpack_require__(3165);
const VALID_LOADING_VALUES =
/* unused pure expression or super */ null && [
"lazy",
@@ -463,188 +763,7 @@
/***/
},
- /***/ 3444: /***/ (
- __unused_webpack_module,
- __webpack_exports__,
- __webpack_require__
- ) => {
- "use strict";
- // ESM COMPAT FLAG
- __webpack_require__.r(__webpack_exports__);
-
- // EXPORTS
- __webpack_require__.d(__webpack_exports__, {
- __N_SSP: () => /* binding */ __N_SSP,
- default: () => /* binding */ pages_image,
- });
-
- // EXTERNAL MODULE: ./node_modules/.pnpm/[email protected]/node_modules/react/jsx-runtime.js
- var jsx_runtime = __webpack_require__(5640);
- // EXTERNAL MODULE: ./node_modules/.pnpm/next@[email protected][email protected][email protected]/node_modules/next/image.js
- var next_image = __webpack_require__(6359);
- var image_default = /*#__PURE__*/ __webpack_require__.n(next_image); // ./pages/nextjs.png
- /* harmony default export */ const nextjs = {
- src: "/_next/static/media/nextjs.cae0b805.png",
- height: 1347,
- width: 1626,
- blurDataURL:
- "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAHCAMAAAACh/xsAAAAD1BMVEX////x8fH6+vrb29vo6Oh8o70bAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAH0lEQVR4nGNgwARMjIyMjCAGCzMzMwsTRISJCcRABwAEcAAkLCQfgAAAAABJRU5ErkJggg==",
- blurWidth: 8,
- blurHeight: 7,
- }; // ./pages/image.js
- function ImagePage(props) {
- return /*#__PURE__*/ (0, jsx_runtime.jsxs)(jsx_runtime.Fragment, {
- children: [
- /*#__PURE__*/ (0, jsx_runtime.jsx)("h1", {
- children: "next/image example",
- }),
- /*#__PURE__*/ (0, jsx_runtime.jsx)(image_default(), {
- src: nextjs,
- placeholder: "blur",
- }),
- ],
- });
- }
- var __N_SSP = true;
- /* harmony default export */ const pages_image = ImagePage;
-
- /***/
- },
-
- /***/ 4287: /***/ (__unused_webpack_module, exports) => {
- "use strict";
- /**
- * A shared function, used on both client and server, to generate a SVG blur placeholder.
- */
- Object.defineProperty(exports, "__esModule", {
- value: true,
- });
- Object.defineProperty(exports, "getImageBlurSvg", {
- enumerable: true,
- get: function () {
- return getImageBlurSvg;
- },
- });
- function getImageBlurSvg(param) {
- let {
- widthInt,
- heightInt,
- blurWidth,
- blurHeight,
- blurDataURL,
- objectFit,
- } = param;
- const std = 20;
- const svgWidth = blurWidth ? blurWidth * 40 : widthInt;
- const svgHeight = blurHeight ? blurHeight * 40 : heightInt;
- const viewBox =
- svgWidth && svgHeight
- ? "viewBox='0 0 " + svgWidth + " " + svgHeight + "'"
- : "";
- const preserveAspectRatio = viewBox
- ? "none"
- : objectFit === "contain"
- ? "xMidYMid"
- : objectFit === "cover"
- ? "xMidYMid slice"
- : "none";
- return (
- "%3Csvg xmlns='http://www.w3.org/2000/svg' " +
- viewBox +
- "%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='" +
- std +
- "'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='" +
- std +
- "'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='" +
- preserveAspectRatio +
- "' style='filter: url(%23b);' href='" +
- blurDataURL +
- "'/%3E%3C/svg%3E"
- );
- } //# sourceMappingURL=image-blur-svg.js.map
-
- /***/
- },
-
- /***/ 4985: /***/ (module, exports, __webpack_require__) => {
- "use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true,
- });
- Object.defineProperty(exports, "useMergedRef", {
- enumerable: true,
- get: function () {
- return useMergedRef;
- },
- });
- const _react = __webpack_require__(148);
- function useMergedRef(refA, refB) {
- const cleanupA = (0, _react.useRef)(null);
- const cleanupB = (0, _react.useRef)(null);
- // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.
- // (this happens often if the user doesn't pass a ref to Link/Form/Image)
- // But this can cause us to leak a cleanup-ref into user code (e.g. via `<Link legacyBehavior>`),
- // and the user might pass that ref into ref-merging library that doesn't support cleanup refs
- // (because it hasn't been updated for React 19)
- // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.
- // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.
- return (0, _react.useCallback)(
- (current) => {
- if (current === null) {
- const cleanupFnA = cleanupA.current;
- if (cleanupFnA) {
- cleanupA.current = null;
- cleanupFnA();
- }
- const cleanupFnB = cleanupB.current;
- if (cleanupFnB) {
- cleanupB.current = null;
- cleanupFnB();
- }
- } else {
- if (refA) {
- cleanupA.current = applyRef(refA, current);
- }
- if (refB) {
- cleanupB.current = applyRef(refB, current);
- }
- }
- },
- [refA, refB]
- );
- }
- function applyRef(refA, current) {
- if (typeof refA === "function") {
- const cleanup = refA(current);
- if (typeof cleanup === "function") {
- return cleanup;
- } else {
- return () => refA(null);
- }
- } else {
- refA.current = current;
- return () => {
- refA.current = null;
- };
- }
- }
- if (
- (typeof exports.default === "function" ||
- (typeof exports.default === "object" && exports.default !== null)) &&
- typeof exports.default.__esModule === "undefined"
- ) {
- Object.defineProperty(exports.default, "__esModule", {
- value: true,
- });
- Object.assign(exports.default, exports);
- module.exports = exports.default;
- } //# sourceMappingURL=use-merged-ref.js.map
-
- /***/
- },
-
- /***/ 5898: /***/ (module, exports, __webpack_require__) => {
+ /***/ 8912: /***/ (module, exports, __webpack_require__) => {
"use strict";
/* __next_internal_client_entry_do_not_use__ cjs */
Object.defineProperty(exports, "__esModule", {
@@ -666,17 +785,17 @@
__webpack_require__(7897)
);
const _head = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(5207)
+ __webpack_require__(1545)
);
- const _getimgprops = __webpack_require__(2514);
- const _imageconfig = __webpack_require__(2795);
- const _imageconfigcontextsharedruntime = __webpack_require__(2349);
- const _warnonce = __webpack_require__(5127);
- const _routercontextsharedruntime = __webpack_require__(3556);
+ const _getimgprops = __webpack_require__(7628);
+ const _imageconfig = __webpack_require__(3165);
+ const _imageconfigcontextsharedruntime = __webpack_require__(915);
+ const _warnonce = __webpack_require__(8373);
+ const _routercontextsharedruntime = __webpack_require__(2694);
const _imageloader = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(5970)
+ __webpack_require__(4104)
);
- const _usemergedref = __webpack_require__(4985);
+ const _usemergedref = __webpack_require__(6975);
// This is replaced by webpack define plugin
const configEnv = {
deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
@@ -1002,132 +1121,13 @@
/***/
},
-
- /***/ 5970: /***/ (__unused_webpack_module, exports) => {
- "use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true,
- });
- Object.defineProperty(exports, "default", {
- enumerable: true,
- get: function () {
- return _default;
- },
- });
- const DEFAULT_Q = 75;
- function defaultLoader(param) {
- let { config, src, width, quality } = param;
- var _config_qualities;
- if (false) {
- }
- const q =
- quality ||
- ((_config_qualities = config.qualities) == null
- ? void 0
- : _config_qualities.reduce((prev, cur) =>
- Math.abs(cur - DEFAULT_Q) < Math.abs(prev - DEFAULT_Q)
- ? cur
- : prev
- )) ||
- DEFAULT_Q;
- return (
- config.path +
- "?url=" +
- encodeURIComponent(src) +
- "&w=" +
- width +
- "&q=" +
- q +
- (src.startsWith("/_next/static/media/") && false ? 0 : "")
- );
- }
- // We use this to determine if the import is the default loader
- // or a custom loader defined by the user in next.config.js
- defaultLoader.__next_img_default = true;
- const _default = defaultLoader; //# sourceMappingURL=image-loader.js.map
-
- /***/
- },
-
- /***/ 6359: /***/ (
- module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- module.exports = __webpack_require__(8986);
-
- /***/
- },
-
- /***/ 8986: /***/ (
- __unused_webpack_module,
- exports,
- __webpack_require__
- ) => {
- "use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true,
- });
- 0 && 0;
- function _export(target, all) {
- for (var name in all)
- Object.defineProperty(target, name, {
- enumerable: true,
- get: all[name],
- });
- }
- _export(exports, {
- default: function () {
- return _default;
- },
- getImageProps: function () {
- return getImageProps;
- },
- });
- const _interop_require_default = __webpack_require__(1532);
- const _getimgprops = __webpack_require__(2514);
- const _imagecomponent = __webpack_require__(5898);
- const _imageloader = /*#__PURE__*/ _interop_require_default._(
- __webpack_require__(5970)
- );
- function getImageProps(imgProps) {
- const { props } = (0, _getimgprops.getImgProps)(imgProps, {
- defaultLoader: _imageloader.default,
- // This is replaced by webpack define plugin
- imgConf: {
- deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
- imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
- path: "/_next/image",
- loader: "default",
- dangerouslyAllowSVG: false,
- unoptimized: false,
- },
- });
- // Normally we don't care about undefined props because we pass to JSX,
- // but this exported function could be used by the end user for anything
- // so we delete undefined props to clean it up a little.
- for (const [key, value] of Object.entries(props)) {
- if (value === undefined) {
- delete props[key];
- }
- }
- return {
- props,
- };
- }
- const _default = _imagecomponent.Image; //# sourceMappingURL=image-external.js.map
-
- /***/
- },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(2198)
+ __webpack_exec__(264)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for link-HASH.js
@@ -1,107 +1,222 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[4672],
{
- /***/ 1854: /***/ (
- __unused_webpack_module,
- __webpack_exports__,
- __webpack_require__
- ) => {
+ /***/ 1069: /***/ (__unused_webpack_module, exports) => {
"use strict";
- __webpack_require__.r(__webpack_exports__);
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
- /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
- /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
- /* harmony export */
- });
- /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
- __webpack_require__(5640);
- /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(8770);
- /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
- /*#__PURE__*/ __webpack_require__.n(
- next_link__WEBPACK_IMPORTED_MODULE_1__
- );
- function aLink(props) {
- return /*#__PURE__*/ (0,
- react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
- children: [
- /*#__PURE__*/ (0,
- react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", {
- children: "A Link page!",
- }),
- /*#__PURE__*/ (0,
- react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
- next_link__WEBPACK_IMPORTED_MODULE_1___default(),
- {
- href: "/",
- children: "Go to /",
- }
- ),
- ],
- });
- }
- var __N_SSP = true;
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = aLink;
+ Object.defineProperty(exports, "__esModule", {
+ value: true,
+ });
+ Object.defineProperty(exports, "errorOnce", {
+ enumerable: true,
+ get: function () {
+ return errorOnce;
+ },
+ });
+ let errorOnce = (_) => {};
+ if (false) {
+ } //# sourceMappingURL=error-once.js.map
/***/
},
- /***/ 3199: /***/ (__unused_webpack_module, exports) => {
+ /***/ 1086: /***/ (module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true,
});
- Object.defineProperty(exports, "errorOnce", {
+ Object.defineProperty(exports, "useIntersection", {
enumerable: true,
get: function () {
- return errorOnce;
+ return useIntersection;
},
});
- let errorOnce = (_) => {};
- if (false) {
- } //# sourceMappingURL=error-once.js.map
+ const _react = __webpack_require__(148);
+ const _requestidlecallback = __webpack_require__(7357);
+ const hasIntersectionObserver =
+ typeof IntersectionObserver === "function";
+ const observers = new Map();
+ const idList = [];
+ function createObserver(options) {
+ const id = {
+ root: options.root || null,
+ margin: options.rootMargin || "",
+ };
+ const existing = idList.find(
+ (obj) => obj.root === id.root && obj.margin === id.margin
+ );
+ let instance;
+ if (existing) {
+ instance = observers.get(existing);
+ if (instance) {
+ return instance;
+ }
+ }
+ const elements = new Map();
+ const observer = new IntersectionObserver((entries) => {
+ entries.forEach((entry) => {
+ const callback = elements.get(entry.target);
+ const isVisible =
+ entry.isIntersecting || entry.intersectionRatio > 0;
+ if (callback && isVisible) {
+ callback(isVisible);
+ }
+ });
+ }, options);
+ instance = {
+ id,
+ observer,
+ elements,
+ };
+ idList.push(id);
+ observers.set(id, instance);
+ return instance;
+ }
+ function observe(element, callback, options) {
+ const { id, observer, elements } = createObserver(options);
+ elements.set(element, callback);
+ observer.observe(element);
+ return function unobserve() {
+ elements.delete(element);
+ observer.unobserve(element);
+ // Destroy observer when there's nothing left to watch:
+ if (elements.size === 0) {
+ observer.disconnect();
+ observers.delete(id);
+ const index = idList.findIndex(
+ (obj) => obj.root === id.root && obj.margin === id.margin
+ );
+ if (index > -1) {
+ idList.splice(index, 1);
+ }
+ }
+ };
+ }
+ function useIntersection(param) {
+ let { rootRef, rootMargin, disabled } = param;
+ const isDisabled = disabled || !hasIntersectionObserver;
+ const [visible, setVisible] = (0, _react.useState)(false);
+ const elementRef = (0, _react.useRef)(null);
+ const setElement = (0, _react.useCallback)((element) => {
+ elementRef.current = element;
+ }, []);
+ (0, _react.useEffect)(() => {
+ if (hasIntersectionObserver) {
+ if (isDisabled || visible) return;
+ const element = elementRef.current;
+ if (element && element.tagName) {
+ const unobserve = observe(
+ element,
+ (isVisible) => isVisible && setVisible(isVisible),
+ {
+ root: rootRef == null ? void 0 : rootRef.current,
+ rootMargin,
+ }
+ );
+ return unobserve;
+ }
+ } else {
+ if (!visible) {
+ const idleCallback = (0,
+ _requestidlecallback.requestIdleCallback)(() => setVisible(true));
+ return () =>
+ (0, _requestidlecallback.cancelIdleCallback)(idleCallback);
+ }
+ }
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [isDisabled, rootMargin, rootRef, visible, elementRef.current]);
+ const resetVisible = (0, _react.useCallback)(() => {
+ setVisible(false);
+ }, []);
+ return [setElement, visible, resetVisible];
+ }
+ if (
+ (typeof exports.default === "function" ||
+ (typeof exports.default === "object" && exports.default !== null)) &&
+ typeof exports.default.__esModule === "undefined"
+ ) {
+ Object.defineProperty(exports.default, "__esModule", {
+ value: true,
+ });
+ Object.assign(exports.default, exports);
+ module.exports = exports.default;
+ } //# sourceMappingURL=use-intersection.js.map
/***/
},
- /***/ 3568: /***/ (
- __unused_webpack_module,
+ /***/ 1148: /***/ (
+ module,
__unused_webpack_exports,
__webpack_require__
) => {
- (window.__NEXT_P = window.__NEXT_P || []).push([
- "/link",
- function () {
- return __webpack_require__(1854);
- },
- ]);
- if (false) {
- }
+ module.exports = __webpack_require__(8093);
/***/
},
- /***/ 3857: /***/ (module, exports, __webpack_require__) => {
+ /***/ 6975: /***/ (module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true,
});
- Object.defineProperty(exports, "getDomainLocale", {
+ Object.defineProperty(exports, "useMergedRef", {
enumerable: true,
get: function () {
- return getDomainLocale;
+ return useMergedRef;
},
});
- const _normalizetrailingslash = __webpack_require__(4869);
- const basePath =
- /* unused pure expression or super */ null && (false || "");
- function getDomainLocale(path, locale, locales, domainLocales) {
- if (false) {
+ const _react = __webpack_require__(148);
+ function useMergedRef(refA, refB) {
+ const cleanupA = (0, _react.useRef)(null);
+ const cleanupB = (0, _react.useRef)(null);
+ // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.
+ // (this happens often if the user doesn't pass a ref to Link/Form/Image)
+ // But this can cause us to leak a cleanup-ref into user code (e.g. via `<Link legacyBehavior>`),
+ // and the user might pass that ref into ref-merging library that doesn't support cleanup refs
+ // (because it hasn't been updated for React 19)
+ // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.
+ // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.
+ return (0, _react.useCallback)(
+ (current) => {
+ if (current === null) {
+ const cleanupFnA = cleanupA.current;
+ if (cleanupFnA) {
+ cleanupA.current = null;
+ cleanupFnA();
+ }
+ const cleanupFnB = cleanupB.current;
+ if (cleanupFnB) {
+ cleanupB.current = null;
+ cleanupFnB();
+ }
+ } else {
+ if (refA) {
+ cleanupA.current = applyRef(refA, current);
+ }
+ if (refB) {
+ cleanupB.current = applyRef(refB, current);
+ }
+ }
+ },
+ [refA, refB]
+ );
+ }
+ function applyRef(refA, current) {
+ if (typeof refA === "function") {
+ const cleanup = refA(current);
+ if (typeof cleanup === "function") {
+ return cleanup;
+ } else {
+ return () => refA(null);
+ }
} else {
- return false;
+ refA.current = current;
+ return () => {
+ refA.current = null;
+ };
}
}
if (
@@ -114,12 +229,12 @@
});
Object.assign(exports.default, exports);
module.exports = exports.default;
- } //# sourceMappingURL=get-domain-locale.js.map
+ } //# sourceMappingURL=use-merged-ref.js.map
/***/
},
- /***/ 3947: /***/ (module, exports, __webpack_require__) => {
+ /***/ 8093: /***/ (module, exports, __webpack_require__) => {
"use strict";
/* __next_internal_client_entry_do_not_use__ cjs */
Object.defineProperty(exports, "__esModule", {
@@ -146,17 +261,17 @@
const _react = /*#__PURE__*/ _interop_require_wildcard._(
__webpack_require__(148)
);
- const _resolvehref = __webpack_require__(3161);
- const _islocalurl = __webpack_require__(2309);
- const _formaturl = __webpack_require__(3768);
- const _utils = __webpack_require__(5554);
- const _addlocale = __webpack_require__(7591);
- const _routercontextsharedruntime = __webpack_require__(3556);
- const _useintersection = __webpack_require__(5624);
- const _getdomainlocale = __webpack_require__(3857);
- const _addbasepath = __webpack_require__(4356);
- const _usemergedref = __webpack_require__(4985);
- const _erroronce = __webpack_require__(3199);
+ const _resolvehref = __webpack_require__(2843);
+ const _islocalurl = __webpack_require__(1235);
+ const _formaturl = __webpack_require__(246);
+ const _utils = __webpack_require__(1668);
+ const _addlocale = __webpack_require__(9385);
+ const _routercontextsharedruntime = __webpack_require__(2694);
+ const _useintersection = __webpack_require__(1086);
+ const _getdomainlocale = __webpack_require__(9083);
+ const _addbasepath = __webpack_require__(2386);
+ const _usemergedref = __webpack_require__(6975);
+ const _erroronce = __webpack_require__(1069);
const prefetched = new Set();
function prefetch(router, href, as, options) {
if (false) {
@@ -545,67 +660,25 @@
/***/
},
- /***/ 4985: /***/ (module, exports, __webpack_require__) => {
+ /***/ 9083: /***/ (module, exports, __webpack_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true,
});
- Object.defineProperty(exports, "useMergedRef", {
+ Object.defineProperty(exports, "getDomainLocale", {
enumerable: true,
get: function () {
- return useMergedRef;
+ return getDomainLocale;
},
});
- const _react = __webpack_require__(148);
- function useMergedRef(refA, refB) {
- const cleanupA = (0, _react.useRef)(null);
- const cleanupB = (0, _react.useRef)(null);
- // NOTE: In theory, we could skip the wrapping if only one of the refs is non-null.
- // (this happens often if the user doesn't pass a ref to Link/Form/Image)
- // But this can cause us to leak a cleanup-ref into user code (e.g. via `<Link legacyBehavior>`),
- // and the user might pass that ref into ref-merging library that doesn't support cleanup refs
- // (because it hasn't been updated for React 19)
- // which can then cause things to blow up, because a cleanup-returning ref gets called with `null`.
- // So in practice, it's safer to be defensive and always wrap the ref, even on React 19.
- return (0, _react.useCallback)(
- (current) => {
- if (current === null) {
- const cleanupFnA = cleanupA.current;
- if (cleanupFnA) {
- cleanupA.current = null;
- cleanupFnA();
- }
- const cleanupFnB = cleanupB.current;
- if (cleanupFnB) {
- cleanupB.current = null;
- cleanupFnB();
- }
- } else {
- if (refA) {
- cleanupA.current = applyRef(refA, current);
- }
- if (refB) {
- cleanupB.current = applyRef(refB, current);
- }
- }
- },
- [refA, refB]
- );
- }
- function applyRef(refA, current) {
- if (typeof refA === "function") {
- const cleanup = refA(current);
- if (typeof cleanup === "function") {
- return cleanup;
- } else {
- return () => refA(null);
- }
+ const _normalizetrailingslash = __webpack_require__(5387);
+ const basePath =
+ /* unused pure expression or super */ null && (false || "");
+ function getDomainLocale(path, locale, locales, domainLocales) {
+ if (false) {
} else {
- refA.current = current;
- return () => {
- refA.current = null;
- };
+ return false;
}
}
if (
@@ -618,143 +691,70 @@
});
Object.assign(exports.default, exports);
module.exports = exports.default;
- } //# sourceMappingURL=use-merged-ref.js.map
+ } //# sourceMappingURL=get-domain-locale.js.map
/***/
},
- /***/ 5624: /***/ (module, exports, __webpack_require__) => {
+ /***/ 9217: /***/ (
+ __unused_webpack_module,
+ __webpack_exports__,
+ __webpack_require__
+ ) => {
"use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true,
- });
- Object.defineProperty(exports, "useIntersection", {
- enumerable: true,
- get: function () {
- return useIntersection;
- },
+ __webpack_require__.r(__webpack_exports__);
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
+ /* harmony export */ __N_SSP: () => /* binding */ __N_SSP,
+ /* harmony export */ default: () => __WEBPACK_DEFAULT_EXPORT__,
+ /* harmony export */
});
- const _react = __webpack_require__(148);
- const _requestidlecallback = __webpack_require__(3543);
- const hasIntersectionObserver =
- typeof IntersectionObserver === "function";
- const observers = new Map();
- const idList = [];
- function createObserver(options) {
- const id = {
- root: options.root || null,
- margin: options.rootMargin || "",
- };
- const existing = idList.find(
- (obj) => obj.root === id.root && obj.margin === id.margin
+ /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
+ __webpack_require__(5640);
+ /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ =
+ __webpack_require__(1148);
+ /* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default =
+ /*#__PURE__*/ __webpack_require__.n(
+ next_link__WEBPACK_IMPORTED_MODULE_1__
);
- let instance;
- if (existing) {
- instance = observers.get(existing);
- if (instance) {
- return instance;
- }
- }
- const elements = new Map();
- const observer = new IntersectionObserver((entries) => {
- entries.forEach((entry) => {
- const callback = elements.get(entry.target);
- const isVisible =
- entry.isIntersecting || entry.intersectionRatio > 0;
- if (callback && isVisible) {
- callback(isVisible);
- }
- });
- }, options);
- instance = {
- id,
- observer,
- elements,
- };
- idList.push(id);
- observers.set(id, instance);
- return instance;
- }
- function observe(element, callback, options) {
- const { id, observer, elements } = createObserver(options);
- elements.set(element, callback);
- observer.observe(element);
- return function unobserve() {
- elements.delete(element);
- observer.unobserve(element);
- // Destroy observer when there's nothing left to watch:
- if (elements.size === 0) {
- observer.disconnect();
- observers.delete(id);
- const index = idList.findIndex(
- (obj) => obj.root === id.root && obj.margin === id.margin
- );
- if (index > -1) {
- idList.splice(index, 1);
- }
- }
- };
- }
- function useIntersection(param) {
- let { rootRef, rootMargin, disabled } = param;
- const isDisabled = disabled || !hasIntersectionObserver;
- const [visible, setVisible] = (0, _react.useState)(false);
- const elementRef = (0, _react.useRef)(null);
- const setElement = (0, _react.useCallback)((element) => {
- elementRef.current = element;
- }, []);
- (0, _react.useEffect)(() => {
- if (hasIntersectionObserver) {
- if (isDisabled || visible) return;
- const element = elementRef.current;
- if (element && element.tagName) {
- const unobserve = observe(
- element,
- (isVisible) => isVisible && setVisible(isVisible),
- {
- root: rootRef == null ? void 0 : rootRef.current,
- rootMargin,
- }
- );
- return unobserve;
- }
- } else {
- if (!visible) {
- const idleCallback = (0,
- _requestidlecallback.requestIdleCallback)(() => setVisible(true));
- return () =>
- (0, _requestidlecallback.cancelIdleCallback)(idleCallback);
- }
- }
- // eslint-disable-next-line react-hooks/exhaustive-deps
- }, [isDisabled, rootMargin, rootRef, visible, elementRef.current]);
- const resetVisible = (0, _react.useCallback)(() => {
- setVisible(false);
- }, []);
- return [setElement, visible, resetVisible];
- }
- if (
- (typeof exports.default === "function" ||
- (typeof exports.default === "object" && exports.default !== null)) &&
- typeof exports.default.__esModule === "undefined"
- ) {
- Object.defineProperty(exports.default, "__esModule", {
- value: true,
+
+ function aLink(props) {
+ return /*#__PURE__*/ (0,
+ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", {
+ children: [
+ /*#__PURE__*/ (0,
+ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h3", {
+ children: "A Link page!",
+ }),
+ /*#__PURE__*/ (0,
+ react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(
+ next_link__WEBPACK_IMPORTED_MODULE_1___default(),
+ {
+ href: "/",
+ children: "Go to /",
+ }
+ ),
+ ],
});
- Object.assign(exports.default, exports);
- module.exports = exports.default;
- } //# sourceMappingURL=use-intersection.js.map
+ }
+ var __N_SSP = true;
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = aLink;
/***/
},
- /***/ 8770: /***/ (
- module,
+ /***/ 9666: /***/ (
+ __unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
) => {
- module.exports = __webpack_require__(3947);
+ (window.__NEXT_P = window.__NEXT_P || []).push([
+ "/link",
+ function () {
+ return __webpack_require__(9217);
+ },
+ ]);
+ if (false) {
+ }
/***/
},
@@ -764,7 +764,7 @@
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(3568)
+ __webpack_exec__(9666)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for routerDirect-HASH.js
@@ -1,7 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[188],
{
- /***/ 3618: /***/ (
+ /***/ 738: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -16,7 +16,7 @@
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(5640);
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(4631);
+ __webpack_require__(9413);
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -36,17 +36,7 @@
/***/
},
- /***/ 4631: /***/ (
- module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- module.exports = __webpack_require__(7086);
-
- /***/
- },
-
- /***/ 7824: /***/ (
+ /***/ 1810: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -54,7 +44,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/routerDirect",
function () {
- return __webpack_require__(3618);
+ return __webpack_require__(738);
},
]);
if (false) {
@@ -62,13 +52,23 @@
/***/
},
+
+ /***/ 9413: /***/ (
+ module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ module.exports = __webpack_require__(6988);
+
+ /***/
+ },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(7824)
+ __webpack_exec__(1810)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for script-HASH.js
@@ -1,7 +1,17 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[1209],
{
- /***/ 1984: /***/ (
+ /***/ 2227: /***/ (
+ module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ module.exports = __webpack_require__(5346);
+
+ /***/
+ },
+
+ /***/ 3642: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -9,7 +19,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/script",
function () {
- return __webpack_require__(5769);
+ return __webpack_require__(6585);
},
]);
if (false) {
@@ -18,7 +28,7 @@
/***/
},
- /***/ 5769: /***/ (
+ /***/ 6585: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -33,7 +43,7 @@
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(5640);
/* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(8293);
+ __webpack_require__(2227);
/* harmony import */ var next_script__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
next_script__WEBPACK_IMPORTED_MODULE_1__
@@ -65,23 +75,13 @@
/***/
},
-
- /***/ 8293: /***/ (
- module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- module.exports = __webpack_require__(900);
-
- /***/
- },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(1984)
+ __webpack_exec__(3642)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for withRouter-HASH.js
@@ -1,17 +1,7 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[3263],
{
- /***/ 4631: /***/ (
- module,
- __unused_webpack_exports,
- __webpack_require__
- ) => {
- module.exports = __webpack_require__(7086);
-
- /***/
- },
-
- /***/ 9216: /***/ (
+ /***/ 3962: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
@@ -19,7 +9,7 @@
(window.__NEXT_P = window.__NEXT_P || []).push([
"/withRouter",
function () {
- return __webpack_require__(9803);
+ return __webpack_require__(7419);
},
]);
if (false) {
@@ -28,7 +18,7 @@
/***/
},
- /***/ 9803: /***/ (
+ /***/ 7419: /***/ (
__unused_webpack_module,
__webpack_exports__,
__webpack_require__
@@ -43,7 +33,7 @@
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ =
__webpack_require__(5640);
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1__ =
- __webpack_require__(4631);
+ __webpack_require__(9413);
/* harmony import */ var next_router__WEBPACK_IMPORTED_MODULE_1___default =
/*#__PURE__*/ __webpack_require__.n(
next_router__WEBPACK_IMPORTED_MODULE_1__
@@ -61,13 +51,23 @@
/***/
},
+
+ /***/ 9413: /***/ (
+ module,
+ __unused_webpack_exports,
+ __webpack_require__
+ ) => {
+ module.exports = __webpack_require__(6988);
+
+ /***/
+ },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
/******/ var __webpack_exec__ = (moduleId) =>
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(0, [636, 6593, 8792], () =>
- __webpack_exec__(9216)
+ __webpack_exec__(3962)
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for 1733-HASH.js
deleted
Diff for 4719-HASH.js
Diff too large to display
Diff for 5934-HASH.js
failed to diff
Diff for e64931b3-HASH.js
Diff too large to display
Diff for main-HASH.js
Diff too large to display
Diff for main-app-HASH.js
@@ -1,64 +1,64 @@
(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([
[4977],
{
- /***/ 3505: /***/ () => {
- /* (ignored) */
- /***/
- },
-
- /***/ 4276: /***/ (
+ /***/ 3506: /***/ (
__unused_webpack_module,
__unused_webpack_exports,
__webpack_require__
) => {
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 8790, 23)
+ __webpack_require__.t.bind(__webpack_require__, 1598, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 7382, 23)
+ __webpack_require__.t.bind(__webpack_require__, 3662, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 9442, 23)
+ __webpack_require__.t.bind(__webpack_require__, 5850, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 94, 23)
+ __webpack_require__.t.bind(__webpack_require__, 7942, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 693, 23)
+ __webpack_require__.t.bind(__webpack_require__, 8173, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 2439, 23)
+ __webpack_require__.t.bind(__webpack_require__, 8431, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 5083, 23)
+ __webpack_require__.t.bind(__webpack_require__, 9203, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 8103, 23)
+ __webpack_require__.t.bind(__webpack_require__, 8015, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 5625, 23)
+ __webpack_require__.t.bind(__webpack_require__, 4897, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 4247, 23)
+ __webpack_require__.t.bind(__webpack_require__, 6671, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 5602, 23)
+ __webpack_require__.t.bind(__webpack_require__, 9482, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 227, 23)
+ __webpack_require__.t.bind(__webpack_require__, 8635, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 6734, 23)
+ __webpack_require__.t.bind(__webpack_require__, 8886, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.t.bind(__webpack_require__, 4120, 23)
+ __webpack_require__.t.bind(__webpack_require__, 5312, 23)
);
Promise.resolve(/* import() eager */).then(
- __webpack_require__.bind(__webpack_require__, 6104)
+ __webpack_require__.bind(__webpack_require__, 2336)
);
/***/
},
+
+ /***/ 3579: /***/ () => {
+ /* (ignored) */
+ /***/
+ },
},
/******/ (__webpack_require__) => {
// webpackRuntimeModules
@@ -66,8 +66,8 @@
__webpack_require__((__webpack_require__.s = moduleId));
/******/ __webpack_require__.O(
0,
- [1305, 1733],
- () => (__webpack_exec__(9679), __webpack_exec__(4276))
+ [6985, 9910, 5934],
+ () => (__webpack_exec__(7815), __webpack_exec__(3506))
);
/******/ var __webpack_exports__ = __webpack_require__.O();
/******/ _N_E = __webpack_exports__;
Diff for app-page-exp..ntime.dev.js
failed to diff
Diff for app-page-tur..ntime.dev.js
failed to diff
Diff for app-page-tur..ntime.dev.js
failed to diff
Diff for app-page.runtime.dev.js
failed to diff
30a1807
to
edd34fa
Compare
1e015cd
to
08b818a
Compare
<> | ||
<AppDevOverlay /> | ||
<AppDevOverlayErrorBoundary globalError={globalError}> | ||
{children} | ||
</AppDevOverlayErrorBoundary> | ||
</> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the starting point. The dispatcher is moved outside of this React Root in preparation of rendering <AppDevOverlay />
in a separate root. I moved the dispatcher outside of this React Root here since AppDevOverlayErrorBoundary
already doesn't have access to the dispatch of AppDevOverlay
08b818a
to
823d7cc
Compare
cae897c
to
721cd77
Compare
823d7cc
to
6ac0272
Compare
721cd77
to
94b4aa6
Compare
6ac0272
to
06f14ed
Compare
94b4aa6
to
87ed26d
Compare
06f14ed
to
35d4aa1
Compare
87ed26d
to
1b1ee33
Compare
35d4aa1
to
8c4155d
Compare
Ensures Dev Overlay re-render will never trigger user code re-render.
1b1ee33
to
3bdb571
Compare
8c4155d
to
c26f093
Compare
Might need to jump directly to separate bundle. Not clear if
with { turbopack-transition: 'some-layer ' }
works the same as Webpack's module layers.TODO:
Ideally we would've moved it to a separate leaf (1st commit), then separate Root and then separate React. Separate leaf triggers the know "switched to client-side rendering" bug. Separate Root triggers it as well.
So we skip these steps and jump towards separate React instance. As a follow-up, we'll create a separate bundle instead of module layer. That way we can skip expensive dev parsing by bundlers and even ship a prod variant to
next dev
.We're dispatching now with a singleton. Until the actual
dispatch
from the Reducer is available, we queue callbacks. The queue currently grows indefinitely since we assume that there's a finite time until the Dev Overlay is mounted.There's no scenario I see where the Dev Overlay unmounts but events continue to come in. But maybe we should warn about that scenario if we create it later. Right now it'll just go into the queue and then gets replayed when we remount.