UNPKG

@bprogress/next

Version:

NProgress bar like for Next.js compatible with new app directory

141 lines 6.06 kB
// src/providers/pages-progress-provider.tsx function _define_property(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _object_spread(target) { for(var i = 1; i < arguments.length; i++){ var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === "function") { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function(key) { _define_property(target, key, source[key]); }); } return target; } function _object_without_properties(source, excluded) { if (source == null) return {}; var target = _object_without_properties_loose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for(i = 0; i < sourceSymbolKeys.length; i++){ key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _object_without_properties_loose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for(i = 0; i < sourceKeys.length; i++){ key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } import React2 from "react"; // src/components/pages-progress.tsx import { useEffect } from "react"; import { isSameURL, isSameURLWithoutSearch } from "@bprogress/core"; import { useProgress, withMemo } from "@bprogress/react"; import Router from "next/router.js"; var PagesProgressComponent = function(param) { var _param_shallowRouting = param.shallowRouting, shallowRouting = _param_shallowRouting === void 0 ? false : _param_shallowRouting, _param_disableSameURL = param.disableSameURL, disableSameURL = _param_disableSameURL === void 0 ? true : _param_disableSameURL, _param_startPosition = param.startPosition, startPosition = _param_startPosition === void 0 ? 0 : _param_startPosition, _param_delay = param.delay, delay = _param_delay === void 0 ? 0 : _param_delay, _param_stopDelay = param.stopDelay, stopDelay = _param_stopDelay === void 0 ? 0 : _param_stopDelay; var _useProgress = useProgress(), start = _useProgress.start, stop = _useProgress.stop; useEffect(function() { var handleRouteStart = function(url) { var targetUrl = new URL(url, location.href); var currentUrl = new URL(location.href); if (shallowRouting && isSameURLWithoutSearch(targetUrl, currentUrl) && disableSameURL) return; if (isSameURL(targetUrl, currentUrl) && disableSameURL) return; start(startPosition, delay); }; var handleRouteDone = function() { return stop(stopDelay); }; Router.events.on("routeChangeStart", handleRouteStart); Router.events.on("routeChangeComplete", handleRouteDone); Router.events.on("routeChangeError", handleRouteDone); return function() { Router.events.off("routeChangeStart", handleRouteStart); Router.events.off("routeChangeComplete", handleRouteDone); Router.events.off("routeChangeError", handleRouteDone); }; }, []); return null; }; var PagesProgress = withMemo(PagesProgressComponent); PagesProgress.displayName = "PagesProgress"; // src/providers/next-progress-provider.tsx import React from "react"; import { ProgressProvider } from "@bprogress/react"; var NextProgressProvider = function(_param) { var children = _param.children, ProgressComponent = _param.ProgressComponent, color = _param.color, height = _param.height, options = _param.options, spinnerPosition = _param.spinnerPosition, style = _param.style, disableStyle = _param.disableStyle, nonce = _param.nonce, stopDelay = _param.stopDelay, delay = _param.delay, startPosition = _param.startPosition, disableSameURL = _param.disableSameURL, shallowRouting = _param.shallowRouting, props = _object_without_properties(_param, [ "children", "ProgressComponent", "color", "height", "options", "spinnerPosition", "style", "disableStyle", "nonce", "stopDelay", "delay", "startPosition", "disableSameURL", "shallowRouting" ]); return /* @__PURE__ */ React.createElement(ProgressProvider, { color: color, height: height, options: options, spinnerPosition: spinnerPosition, style: style, disableStyle: disableStyle, nonce: nonce, stopDelay: stopDelay, delay: delay, startPosition: startPosition, disableSameURL: disableSameURL, shallowRouting: shallowRouting }, /* @__PURE__ */ React.createElement(ProgressComponent, _object_spread({ stopDelay: stopDelay, delay: delay, startPosition: startPosition, disableSameURL: disableSameURL, shallowRouting: shallowRouting }, props)), children); }; // src/providers/pages-progress-provider.tsx var PagesProgressProvider = function(_param) { var children = _param.children, props = _object_without_properties(_param, [ "children" ]); return /* @__PURE__ */ React2.createElement(NextProgressProvider, _object_spread({ ProgressComponent: PagesProgress }, props), children); }; export { PagesProgressProvider as ProgressProvider }; //# sourceMappingURL=pages.js.map