create project
This commit is contained in:
115
kitabcitab/node_modules/next/dist/shared/lib/router/adapters.js
generated
vendored
Normal file
115
kitabcitab/node_modules/next/dist/shared/lib/router/adapters.js
generated
vendored
Normal file
@@ -0,0 +1,115 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.adaptForAppRouterInstance = adaptForAppRouterInstance;
|
||||
exports.adaptForSearchParams = adaptForSearchParams;
|
||||
exports.PathnameContextProviderAdapter = PathnameContextProviderAdapter;
|
||||
var _interop_require_wildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default;
|
||||
var _object_without_properties_loose = require("@swc/helpers/lib/_object_without_properties_loose.js").default;
|
||||
var _react = _interop_require_wildcard(require("react"));
|
||||
var _hooksClientContext = require("../hooks-client-context");
|
||||
var _utils = require("./utils");
|
||||
function adaptForAppRouterInstance(router) {
|
||||
return {
|
||||
back () {
|
||||
router.back();
|
||||
},
|
||||
forward () {
|
||||
router.forward();
|
||||
},
|
||||
refresh () {
|
||||
router.reload();
|
||||
},
|
||||
push (href) {
|
||||
void router.push(href);
|
||||
},
|
||||
replace (href) {
|
||||
void router.replace(href);
|
||||
},
|
||||
prefetch (href) {
|
||||
void router.prefetch(href);
|
||||
}
|
||||
};
|
||||
}
|
||||
/**
|
||||
* transforms the ParsedUrlQuery into a URLSearchParams.
|
||||
*
|
||||
* @param query the query to transform
|
||||
* @returns URLSearchParams
|
||||
*/ function transformQuery(query) {
|
||||
const params = new URLSearchParams();
|
||||
for (const [name, value] of Object.entries(query)){
|
||||
if (Array.isArray(value)) {
|
||||
for (const val of value){
|
||||
params.append(name, val);
|
||||
}
|
||||
} else if (typeof value !== 'undefined') {
|
||||
params.append(name, value);
|
||||
}
|
||||
}
|
||||
return params;
|
||||
}
|
||||
function adaptForSearchParams(router) {
|
||||
if (!router.isReady || !router.query) {
|
||||
return new URLSearchParams();
|
||||
}
|
||||
return transformQuery(router.query);
|
||||
}
|
||||
function PathnameContextProviderAdapter(_param) {
|
||||
var { children , router } = _param, props = _object_without_properties_loose(_param, [
|
||||
"children",
|
||||
"router"
|
||||
]);
|
||||
const ref = (0, _react).useRef(props.isAutoExport);
|
||||
const value = (0, _react).useMemo(()=>{
|
||||
// isAutoExport is only ever `true` on the first render from the server,
|
||||
// so reset it to `false` after we read it for the first time as `true`. If
|
||||
// we don't use the value, then we don't need it.
|
||||
const isAutoExport = ref.current;
|
||||
if (isAutoExport) {
|
||||
ref.current = false;
|
||||
}
|
||||
// When the route is a dynamic route, we need to do more processing to
|
||||
// determine if we need to stop showing the pathname.
|
||||
if ((0, _utils).isDynamicRoute(router.pathname)) {
|
||||
// When the router is rendering the fallback page, it can't possibly know
|
||||
// the path, so return `null` here. Read more about fallback pages over
|
||||
// at:
|
||||
// https://nextjs.org/docs/api-reference/data-fetching/get-static-paths#fallback-pages
|
||||
if (router.isFallback) {
|
||||
return null;
|
||||
}
|
||||
// When `isAutoExport` is true, meaning this is a page page has been
|
||||
// automatically statically optimized, and the router is not ready, then
|
||||
// we can't know the pathname yet. Read more about automatic static
|
||||
// optimization at:
|
||||
// https://nextjs.org/docs/advanced-features/automatic-static-optimization
|
||||
if (isAutoExport && !router.isReady) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
// The `router.asPath` contains the pathname seen by the browser (including
|
||||
// any query strings), so it should have that stripped. Read more about the
|
||||
// `asPath` option over at:
|
||||
// https://nextjs.org/docs/api-reference/next/router#router-object
|
||||
let url;
|
||||
try {
|
||||
url = new URL(router.asPath, 'http://f');
|
||||
} catch (_) {
|
||||
// fallback to / for invalid asPath values e.g. //
|
||||
return '/';
|
||||
}
|
||||
return url.pathname;
|
||||
}, [
|
||||
router.asPath,
|
||||
router.isFallback,
|
||||
router.isReady,
|
||||
router.pathname
|
||||
]);
|
||||
return /*#__PURE__*/ _react.default.createElement(_hooksClientContext.PathnameContext.Provider, {
|
||||
value: value
|
||||
}, children);
|
||||
}
|
||||
|
||||
//# sourceMappingURL=adapters.js.map
|
||||
Reference in New Issue
Block a user