UNPKG

@bprogress/remix

Version:
197 lines 8.36 kB
// src/providers/remix-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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function(sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } function _object_spread_props(target, source) { source = source != null ? source : {}; if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function(key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(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 React from "react"; import { ProgressProvider } from "@bprogress/react"; // src/components/remix-progress.tsx import { useLocation } from "@remix-run/react"; import { useAnchorProgress, withMemo } from "@bprogress/react"; var RemixProgressComponent = function(props) { var routerLocation = useLocation(); useAnchorProgress(_object_spread_props(_object_spread({}, props), { forcedStopDelay: 500 }), [ routerLocation ]); return null; }; var RemixProgress = withMemo(RemixProgressComponent); RemixProgress.displayName = "RemixProgress"; // src/providers/remix-progress-provider.tsx var RemixProgressProvider = function(_param) { var children = _param.children, color = _param.color, height = _param.height, options = _param.options, spinnerPosition = _param.spinnerPosition, style = _param.style, disableStyle = _param.disableStyle, nonce = _param.nonce, props = _object_without_properties(_param, [ "children", "color", "height", "options", "spinnerPosition", "style", "disableStyle", "nonce" ]); return /* @__PURE__ */ React.createElement(ProgressProvider, { color: color, height: height, options: options, spinnerPosition: spinnerPosition, style: style, disableStyle: disableStyle, nonce: nonce }, /* @__PURE__ */ React.createElement(RemixProgress, _object_spread({}, props)), children); }; // src/index.tsx import { useProgress as useProgress2, Progress, Bar, Peg, Spinner, SpinnerIcon, Indeterminate } from "@bprogress/react"; // src/hooks/use-navigate.tsx import { useCallback } from "react"; import { useNavigate as useRemixNavigate } from "@remix-run/react"; import { isSameURL } from "@bprogress/core"; import { useProgress } from "@bprogress/react"; function useNavigate(options) { var _ref = options || {}, customNavigate = _ref.customNavigate, defaultProgressOptions = _object_without_properties(_ref, [ "customNavigate" ]); var _useProgress = useProgress(), start = _useProgress.start, stop = _useProgress.stop, providerDisableSameURL = _useProgress.disableSameURL, providerStartPosition = _useProgress.startPosition, providerDelay = _useProgress.delay, providerStopDelay = _useProgress.stopDelay; var useSelectedNavigate = useCallback(function() { if (customNavigate) return customNavigate(); return useRemixNavigate(); }, [ customNavigate ]); var navigate = useSelectedNavigate(); var enhancedNavigate = useCallback(function(to, navOptions, progressOptions) { var mergedOptions = _object_spread({}, defaultProgressOptions, progressOptions); var localDisableSameURL = mergedOptions.disableSameURL !== void 0 ? mergedOptions.disableSameURL : providerDisableSameURL; var localStartPosition = mergedOptions.startPosition !== void 0 ? mergedOptions.startPosition : providerStartPosition; var localDelay = mergedOptions.delay !== void 0 ? mergedOptions.delay : providerDelay; var localStopDelay = mergedOptions.stopDelay !== void 0 ? mergedOptions.stopDelay : providerStopDelay; if (typeof to === "number") { if ((mergedOptions === null || mergedOptions === void 0 ? void 0 : mergedOptions.showProgress) !== false) { start(localStartPosition, localDelay); } var result = navigate(to); if ((mergedOptions === null || mergedOptions === void 0 ? void 0 : mergedOptions.showProgress) !== false) { setTimeout(function() { stop(localStopDelay); }, localDelay || 0); } return result; } else { var targetUrl; try { if (typeof to === "string") { targetUrl = new URL(to, window.location.href); } else { var _to_pathname = to.pathname, pathname = _to_pathname === void 0 ? window.location.pathname : _to_pathname, _to_search = to.search, search = _to_search === void 0 ? "" : _to_search, _to_hash = to.hash, hash = _to_hash === void 0 ? "" : _to_hash; targetUrl = new URL(pathname + search + hash, window.location.href); } } catch (error) { console.error(error); return navigate(to, navOptions); } var currentUrl = new URL(window.location.href); var sameURL = isSameURL(targetUrl, currentUrl); if (sameURL && localDisableSameURL) { return navigate(to, navOptions); } if ((mergedOptions === null || mergedOptions === void 0 ? void 0 : mergedOptions.showProgress) !== false) { start(localStartPosition, localDelay); } var result1 = navigate(to, navOptions); if (sameURL && (mergedOptions === null || mergedOptions === void 0 ? void 0 : mergedOptions.showProgress) !== false) { setTimeout(function() { stop(localStopDelay); }, localDelay || 0); } return result1; } }, [ defaultProgressOptions, providerDisableSameURL, providerStartPosition, providerDelay, providerStopDelay, navigate, start, stop ]); return enhancedNavigate; } export { Bar, Indeterminate, Peg, Progress, RemixProgressProvider as ProgressProvider, Spinner, SpinnerIcon, useNavigate, useProgress2 as useProgress }; //# sourceMappingURL=index.js.map