@tanem/react-nprogress 3.0.82 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -96,6 +96,7 @@ render(<Enhanced isAnimating />, document.getElementById('root'))
96
96
 
97
97
  - HOC: [Source](https://github.com/tanem/react-nprogress/tree/master/examples/hoc) | [Sandbox](https://codesandbox.io/s/github/tanem/react-nprogress/tree/master/examples/hoc)
98
98
  - Material UI: [Source](https://github.com/tanem/react-nprogress/tree/master/examples/material-ui) | [Sandbox](https://codesandbox.io/s/github/tanem/react-nprogress/tree/master/examples/material-ui)
99
+ - Multiple Instances: [Source](https://github.com/tanem/react-nprogress/tree/master/examples/multiple-instances) | [Sandbox](https://codesandbox.io/s/github/tanem/react-nprogress/tree/master/examples/multiple-instances)
99
100
  - Next Router: [Source](https://github.com/tanem/react-nprogress/tree/master/examples/next-router) | [Sandbox](https://codesandbox.io/s/github/tanem/react-nprogress/tree/master/examples/next-router)
100
101
  - Original Design: [Source](https://github.com/tanem/react-nprogress/tree/master/examples/original-design) | [Sandbox](https://codesandbox.io/s/github/tanem/react-nprogress/tree/master/examples/original-design)
101
102
  - Plain JS: [Source](https://github.com/tanem/react-nprogress/tree/master/examples/plain-js) | [Sandbox](https://codesandbox.io/s/github/tanem/react-nprogress/tree/master/examples/plain-js)
@@ -0,0 +1,7 @@
1
+ declare type Next = () => void;
2
+ declare type Callback = (next: Next) => void;
3
+ export declare const createQueue: () => {
4
+ clear: () => void;
5
+ enqueue: (cb: Callback) => void;
6
+ };
7
+ export {};
@@ -0,0 +1,4 @@
1
+ export declare const createTimeout: () => {
2
+ cancel: () => void;
3
+ schedule: (callback: () => void, delay: number) => void;
4
+ };
@@ -39,71 +39,88 @@ var clamp = function clamp(num, lower, upper) {
39
39
  return num;
40
40
  };
41
41
 
42
- var increment = function increment(progress) {
43
- var amount = 0;
42
+ var createQueue = function createQueue() {
43
+ var isRunning = false;
44
+ var pending = [];
44
45
 
45
- if (progress >= 0 && progress < 0.2) {
46
- amount = 0.1;
47
- } else if (progress >= 0.2 && progress < 0.5) {
48
- amount = 0.04;
49
- } else if (progress >= 0.5 && progress < 0.8) {
50
- amount = 0.02;
51
- } else if (progress >= 0.8 && progress < 0.99) {
52
- amount = 0.005;
53
- }
46
+ var next = function next() {
47
+ isRunning = true;
48
+ var cb = pending.shift();
54
49
 
55
- return clamp(progress + amount, 0, 0.994);
56
- };
50
+ if (cb) {
51
+ return cb(next);
52
+ }
53
+
54
+ isRunning = false;
55
+ };
57
56
 
58
- var isRunning = false;
59
- var pending = [];
57
+ var clear = function clear() {
58
+ isRunning = false;
59
+ pending = [];
60
+ };
60
61
 
61
- var next = function next() {
62
- isRunning = true;
63
- var cb = pending.shift();
62
+ var enqueue = function enqueue(cb) {
63
+ pending.push(cb);
64
64
 
65
- if (cb) {
66
- return cb(next);
67
- }
65
+ if (!isRunning && pending.length === 1) {
66
+ next();
67
+ }
68
+ };
68
69
 
69
- isRunning = false;
70
+ return {
71
+ clear: clear,
72
+ enqueue: enqueue
73
+ };
70
74
  };
71
75
 
72
- var clear = function clear() {
73
- isRunning = false;
74
- pending = [];
75
- };
76
- var queue = function queue(cb) {
77
- pending.push(cb);
76
+ var createTimeout = function createTimeout() {
77
+ var handle;
78
78
 
79
- if (!isRunning && pending.length === 1) {
80
- next();
81
- }
82
- };
79
+ var cancel = function cancel() {
80
+ if (handle) {
81
+ window.cancelAnimationFrame(handle);
82
+ }
83
+ };
83
84
 
84
- var handle;
85
- var cancel = function cancel() {
86
- if (handle) {
87
- window.cancelAnimationFrame(handle);
88
- }
89
- };
90
- var timeout = function timeout(callback, delay) {
91
- var deltaTime;
92
- var start;
85
+ var schedule = function schedule(callback, delay) {
86
+ var deltaTime;
87
+ var start;
93
88
 
94
- var frame = function frame(time) {
95
- start = start || time;
96
- deltaTime = time - start;
89
+ var frame = function frame(time) {
90
+ start = start || time;
91
+ deltaTime = time - start;
97
92
 
98
- if (deltaTime > delay) {
99
- callback();
100
- return;
101
- }
93
+ if (deltaTime > delay) {
94
+ callback();
95
+ return;
96
+ }
97
+
98
+ handle = window.requestAnimationFrame(frame);
99
+ };
102
100
 
103
101
  handle = window.requestAnimationFrame(frame);
104
102
  };
105
103
 
106
- handle = window.requestAnimationFrame(frame);
104
+ return {
105
+ cancel: cancel,
106
+ schedule: schedule
107
+ };
108
+ };
109
+
110
+ var increment = function increment(progress) {
111
+ var amount = 0;
112
+
113
+ if (progress >= 0 && progress < 0.2) {
114
+ amount = 0.1;
115
+ } else if (progress >= 0.2 && progress < 0.5) {
116
+ amount = 0.04;
117
+ } else if (progress >= 0.5 && progress < 0.8) {
118
+ amount = 0.02;
119
+ } else if (progress >= 0.8 && progress < 0.99) {
120
+ amount = 0.005;
121
+ }
122
+
123
+ return clamp(progress + amount, 0, 0.994);
107
124
  };
108
125
 
109
126
  /* istanbul ignore next */
@@ -117,12 +134,6 @@ var initialState = {
117
134
  progress: 0,
118
135
  sideEffect: noop
119
136
  };
120
-
121
- var cleanup = function cleanup() {
122
- cancel();
123
- clear();
124
- };
125
-
126
137
  var useNProgress = function useNProgress(_temp) {
127
138
  var _ref = _temp === void 0 ? {} : _temp,
128
139
  _ref$animationDuratio = _ref.animationDuration,
@@ -138,20 +149,38 @@ var useNProgress = function useNProgress(_temp) {
138
149
  get = _useGetSetState[0],
139
150
  setState = _useGetSetState[1];
140
151
 
152
+ var queue = React.useRef(null);
153
+ var timeout = React.useRef(null);
154
+ reactUse.useEffectOnce(function () {
155
+ queue.current = createQueue();
156
+ timeout.current = createTimeout();
157
+ });
158
+ var cleanup = React.useCallback(function () {
159
+ var _timeout$current, _queue$current;
160
+
161
+ (_timeout$current = timeout.current) == null ? void 0 : _timeout$current.cancel();
162
+ (_queue$current = queue.current) == null ? void 0 : _queue$current.clear();
163
+ }, []);
141
164
  var set = React.useCallback(function (n) {
165
+ var _queue$current4;
166
+
142
167
  n = clamp(n, minimum, 1);
143
168
 
144
169
  if (n === 1) {
170
+ var _queue$current2, _queue$current3;
171
+
145
172
  cleanup();
146
- queue(function (next) {
173
+ (_queue$current2 = queue.current) == null ? void 0 : _queue$current2.enqueue(function (next) {
147
174
  setState({
148
175
  progress: n,
149
176
  sideEffect: function sideEffect() {
150
- return timeout(next, animationDuration);
177
+ var _timeout$current2;
178
+
179
+ return (_timeout$current2 = timeout.current) == null ? void 0 : _timeout$current2.schedule(next, animationDuration);
151
180
  }
152
181
  });
153
182
  });
154
- queue(function () {
183
+ (_queue$current3 = queue.current) == null ? void 0 : _queue$current3.enqueue(function () {
155
184
  setState({
156
185
  isFinished: true,
157
186
  sideEffect: cleanup
@@ -160,24 +189,30 @@ var useNProgress = function useNProgress(_temp) {
160
189
  return;
161
190
  }
162
191
 
163
- queue(function (next) {
192
+ (_queue$current4 = queue.current) == null ? void 0 : _queue$current4.enqueue(function (next) {
164
193
  setState({
165
194
  isFinished: false,
166
195
  progress: n,
167
196
  sideEffect: function sideEffect() {
168
- return timeout(next, animationDuration);
197
+ var _timeout$current3;
198
+
199
+ return (_timeout$current3 = timeout.current) == null ? void 0 : _timeout$current3.schedule(next, animationDuration);
169
200
  }
170
201
  });
171
202
  });
172
- }, [animationDuration, minimum, setState]);
203
+ }, [animationDuration, cleanup, minimum, queue, setState, timeout]);
173
204
  var trickle = React.useCallback(function () {
174
205
  set(increment(get().progress));
175
206
  }, [get, set]);
176
207
  var start = React.useCallback(function () {
177
208
  var work = function work() {
209
+ var _queue$current5;
210
+
178
211
  trickle();
179
- queue(function (next) {
180
- timeout(function () {
212
+ (_queue$current5 = queue.current) == null ? void 0 : _queue$current5.enqueue(function (next) {
213
+ var _timeout$current4;
214
+
215
+ (_timeout$current4 = timeout.current) == null ? void 0 : _timeout$current4.schedule(function () {
181
216
  work();
182
217
  next();
183
218
  }, incrementDuration);
@@ -185,7 +220,7 @@ var useNProgress = function useNProgress(_temp) {
185
220
  };
186
221
 
187
222
  work();
188
- }, [incrementDuration, trickle]);
223
+ }, [incrementDuration, queue, timeout, trickle]);
189
224
  var savedTrickle = React.useRef(noop);
190
225
  var sideEffect = get().sideEffect;
191
226
  React.useEffect(function () {
@@ -1 +1 @@
1
- {"version":3,"file":"react-nprogress.cjs.development.js","sources":["../compiled/clamp.js","../compiled/increment.js","../compiled/queue.js","../compiled/timeout.js","../compiled/useNProgress.js","../compiled/NProgress.js","../compiled/withNProgress.js"],"sourcesContent":["export const clamp = (num, lower, upper) => {\n num = num <= upper ? num : upper;\n num = num >= lower ? num : lower;\n return num;\n};\n","import { clamp } from './clamp';\nexport const increment = (progress) => {\n let amount = 0;\n if (progress >= 0 && progress < 0.2) {\n amount = 0.1;\n }\n else if (progress >= 0.2 && progress < 0.5) {\n amount = 0.04;\n }\n else if (progress >= 0.5 && progress < 0.8) {\n amount = 0.02;\n }\n else if (progress >= 0.8 && progress < 0.99) {\n amount = 0.005;\n }\n return clamp(progress + amount, 0, 0.994);\n};\n","let isRunning = false;\nlet pending = [];\nconst next = () => {\n isRunning = true;\n const cb = pending.shift();\n if (cb) {\n return cb(next);\n }\n isRunning = false;\n};\nexport const clear = () => {\n isRunning = false;\n pending = [];\n};\nexport const queue = (cb) => {\n pending.push(cb);\n if (!isRunning && pending.length === 1) {\n next();\n }\n};\n","let handle;\nexport const cancel = () => {\n if (handle) {\n window.cancelAnimationFrame(handle);\n }\n};\nexport const timeout = (callback, delay) => {\n let deltaTime;\n let start;\n const frame = (time) => {\n start = start || time;\n deltaTime = time - start;\n if (deltaTime > delay) {\n callback();\n return;\n }\n handle = window.requestAnimationFrame(frame);\n };\n handle = window.requestAnimationFrame(frame);\n};\n","import { useCallback, useEffect, useRef } from 'react';\nimport { useEffectOnce, useGetSetState, useUpdateEffect } from 'react-use';\nimport { clamp } from './clamp';\nimport { increment } from './increment';\nimport { clear as clearQueue, queue } from './queue';\nimport { cancel as cancelCurrentTimeout, timeout } from './timeout';\n/* istanbul ignore next */\nconst noop = () => undefined;\nconst initialState = {\n isFinished: true,\n progress: 0,\n sideEffect: noop,\n};\nconst cleanup = () => {\n cancelCurrentTimeout();\n clearQueue();\n};\nexport const useNProgress = ({ animationDuration = 200, incrementDuration = 800, isAnimating = false, minimum = 0.08, } = {}) => {\n const [get, setState] = useGetSetState(initialState);\n const set = useCallback((n) => {\n n = clamp(n, minimum, 1);\n if (n === 1) {\n cleanup();\n queue((next) => {\n setState({\n progress: n,\n sideEffect: () => timeout(next, animationDuration),\n });\n });\n queue(() => {\n setState({ isFinished: true, sideEffect: cleanup });\n });\n return;\n }\n queue((next) => {\n setState({\n isFinished: false,\n progress: n,\n sideEffect: () => timeout(next, animationDuration),\n });\n });\n }, [animationDuration, minimum, setState]);\n const trickle = useCallback(() => {\n set(increment(get().progress));\n }, [get, set]);\n const start = useCallback(() => {\n const work = () => {\n trickle();\n queue((next) => {\n timeout(() => {\n work();\n next();\n }, incrementDuration);\n });\n };\n work();\n }, [incrementDuration, trickle]);\n const savedTrickle = useRef(noop);\n const sideEffect = get().sideEffect;\n useEffect(() => {\n savedTrickle.current = trickle;\n });\n useEffectOnce(() => {\n if (isAnimating) {\n start();\n }\n return cleanup;\n });\n useUpdateEffect(() => {\n get().sideEffect();\n }, [get, sideEffect]);\n useUpdateEffect(() => {\n if (!isAnimating) {\n set(1);\n }\n else {\n setState({\n ...initialState,\n sideEffect: start,\n });\n }\n }, [isAnimating, set, setState, start]);\n return {\n animationDuration,\n isFinished: get().isFinished,\n progress: get().progress,\n };\n};\n","import { useNProgress } from './useNProgress';\nexport const NProgress = ({ children, ...restProps }) => {\n const renderProps = useNProgress(restProps);\n return children(renderProps);\n};\n","import hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { useNProgress } from './useNProgress';\nexport function withNProgress(BaseComponent) {\n const WithNProgress = (props) => {\n const hookProps = useNProgress(props);\n return React.createElement(BaseComponent, { ...props, ...hookProps });\n };\n hoistNonReactStatics(WithNProgress, BaseComponent);\n return WithNProgress;\n}\n"],"names":["clamp","num","lower","upper","increment","progress","amount","isRunning","pending","next","cb","shift","clear","queue","push","length","handle","cancel","window","cancelAnimationFrame","timeout","callback","delay","deltaTime","start","frame","time","requestAnimationFrame","noop","undefined","initialState","isFinished","sideEffect","cleanup","cancelCurrentTimeout","clearQueue","useNProgress","animationDuration","incrementDuration","isAnimating","minimum","useGetSetState","get","setState","set","useCallback","n","trickle","work","savedTrickle","useRef","useEffect","current","useEffectOnce","useUpdateEffect","NProgress","children","restProps","renderProps","withNProgress","BaseComponent","WithNProgress","props","hookProps","React","createElement","hoistNonReactStatics"],"mappings":"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"}
1
+ {"version":3,"file":"react-nprogress.cjs.development.js","sources":["../compiled/clamp.js","../compiled/createQueue.js","../compiled/createTimeout.js","../compiled/increment.js","../compiled/useNProgress.js","../compiled/NProgress.js","../compiled/withNProgress.js"],"sourcesContent":["export const clamp = (num, lower, upper) => {\n num = num <= upper ? num : upper;\n num = num >= lower ? num : lower;\n return num;\n};\n","export const createQueue = () => {\n let isRunning = false;\n let pending = [];\n const next = () => {\n isRunning = true;\n const cb = pending.shift();\n if (cb) {\n return cb(next);\n }\n isRunning = false;\n };\n const clear = () => {\n isRunning = false;\n pending = [];\n };\n const enqueue = (cb) => {\n pending.push(cb);\n if (!isRunning && pending.length === 1) {\n next();\n }\n };\n return {\n clear,\n enqueue,\n };\n};\n","export const createTimeout = () => {\n let handle;\n const cancel = () => {\n if (handle) {\n window.cancelAnimationFrame(handle);\n }\n };\n const schedule = (callback, delay) => {\n let deltaTime;\n let start;\n const frame = (time) => {\n start = start || time;\n deltaTime = time - start;\n if (deltaTime > delay) {\n callback();\n return;\n }\n handle = window.requestAnimationFrame(frame);\n };\n handle = window.requestAnimationFrame(frame);\n };\n return {\n cancel,\n schedule,\n };\n};\n","import { clamp } from './clamp';\nexport const increment = (progress) => {\n let amount = 0;\n if (progress >= 0 && progress < 0.2) {\n amount = 0.1;\n }\n else if (progress >= 0.2 && progress < 0.5) {\n amount = 0.04;\n }\n else if (progress >= 0.5 && progress < 0.8) {\n amount = 0.02;\n }\n else if (progress >= 0.8 && progress < 0.99) {\n amount = 0.005;\n }\n return clamp(progress + amount, 0, 0.994);\n};\n","import { useCallback, useEffect, useRef } from 'react';\nimport { useEffectOnce, useGetSetState, useUpdateEffect } from 'react-use';\nimport { clamp } from './clamp';\nimport { createQueue } from './createQueue';\nimport { createTimeout } from './createTimeout';\nimport { increment } from './increment';\n/* istanbul ignore next */\nconst noop = () => undefined;\nconst initialState = {\n isFinished: true,\n progress: 0,\n sideEffect: noop,\n};\nexport const useNProgress = ({ animationDuration = 200, incrementDuration = 800, isAnimating = false, minimum = 0.08, } = {}) => {\n const [get, setState] = useGetSetState(initialState);\n const queue = useRef(null);\n const timeout = useRef(null);\n useEffectOnce(() => {\n queue.current = createQueue();\n timeout.current = createTimeout();\n });\n const cleanup = useCallback(() => {\n timeout.current?.cancel();\n queue.current?.clear();\n }, []);\n const set = useCallback((n) => {\n n = clamp(n, minimum, 1);\n if (n === 1) {\n cleanup();\n queue.current?.enqueue((next) => {\n setState({\n progress: n,\n sideEffect: () => timeout.current?.schedule(next, animationDuration),\n });\n });\n queue.current?.enqueue(() => {\n setState({ isFinished: true, sideEffect: cleanup });\n });\n return;\n }\n queue.current?.enqueue((next) => {\n setState({\n isFinished: false,\n progress: n,\n sideEffect: () => timeout.current?.schedule(next, animationDuration),\n });\n });\n }, [animationDuration, cleanup, minimum, queue, setState, timeout]);\n const trickle = useCallback(() => {\n set(increment(get().progress));\n }, [get, set]);\n const start = useCallback(() => {\n const work = () => {\n trickle();\n queue.current?.enqueue((next) => {\n timeout.current?.schedule(() => {\n work();\n next();\n }, incrementDuration);\n });\n };\n work();\n }, [incrementDuration, queue, timeout, trickle]);\n const savedTrickle = useRef(noop);\n const sideEffect = get().sideEffect;\n useEffect(() => {\n savedTrickle.current = trickle;\n });\n useEffectOnce(() => {\n if (isAnimating) {\n start();\n }\n return cleanup;\n });\n useUpdateEffect(() => {\n get().sideEffect();\n }, [get, sideEffect]);\n useUpdateEffect(() => {\n if (!isAnimating) {\n set(1);\n }\n else {\n setState({\n ...initialState,\n sideEffect: start,\n });\n }\n }, [isAnimating, set, setState, start]);\n return {\n animationDuration,\n isFinished: get().isFinished,\n progress: get().progress,\n };\n};\n","import { useNProgress } from './useNProgress';\nexport const NProgress = ({ children, ...restProps }) => {\n const renderProps = useNProgress(restProps);\n return children(renderProps);\n};\n","import hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { useNProgress } from './useNProgress';\nexport function withNProgress(BaseComponent) {\n const WithNProgress = (props) => {\n const hookProps = useNProgress(props);\n return React.createElement(BaseComponent, { ...props, ...hookProps });\n };\n hoistNonReactStatics(WithNProgress, BaseComponent);\n return WithNProgress;\n}\n"],"names":["clamp","num","lower","upper","createQueue","isRunning","pending","next","cb","shift","clear","enqueue","push","length","createTimeout","handle","cancel","window","cancelAnimationFrame","schedule","callback","delay","deltaTime","start","frame","time","requestAnimationFrame","increment","progress","amount","noop","undefined","initialState","isFinished","sideEffect","useNProgress","animationDuration","incrementDuration","isAnimating","minimum","useGetSetState","get","setState","queue","useRef","timeout","useEffectOnce","current","cleanup","useCallback","set","n","trickle","work","savedTrickle","useEffect","useUpdateEffect","NProgress","children","restProps","renderProps","withNProgress","BaseComponent","WithNProgress","props","hookProps","React","createElement","hoistNonReactStatics"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _objectWithoutPropertiesLoose=require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),_extends=require("@babel/runtime/helpers/extends"),React=require("react"),reactUse=require("react-use"),hoistNonReactStatics=require("hoist-non-react-statics");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var handle,_objectWithoutPropertiesLoose__default=_interopDefaultLegacy(_objectWithoutPropertiesLoose),_extends__default=_interopDefaultLegacy(_extends),React__namespace=_interopNamespace(React),hoistNonReactStatics__default=_interopDefaultLegacy(hoistNonReactStatics),clamp=function(e,t,n){return e=(e=e<=n?e:n)>=t?e:t},increment=function(e){var t=0;return e>=0&&e<.2?t=.1:e>=.2&&e<.5?t=.04:e>=.5&&e<.8?t=.02:e>=.8&&e<.99&&(t=.005),clamp(e+t,0,.994)},isRunning=!1,pending=[],next=function e(){isRunning=!0;var t=pending.shift();if(t)return t(e);isRunning=!1},clear=function(){isRunning=!1,pending=[]},queue=function(e){pending.push(e),isRunning||1!==pending.length||next()},cancel=function(){handle&&window.cancelAnimationFrame(handle)},timeout=function(e,t){var n;handle=window.requestAnimationFrame((function i(r){r-(n=n||r)>t?e():handle=window.requestAnimationFrame(i)}))},noop=function(){},initialState={isFinished:!0,progress:0,sideEffect:noop},cleanup=function(){cancel(),clear()},useNProgress=function(e){var t=void 0===e?{}:e,n=t.animationDuration,i=void 0===n?200:n,r=t.incrementDuration,u=void 0===r?800:r,o=t.isAnimating,s=void 0!==o&&o,c=t.minimum,a=void 0===c?.08:c,f=reactUse.useGetSetState(initialState),d=f[0],l=f[1],p=React.useCallback((function(e){if(1===(e=clamp(e,a,1)))return cleanup(),queue((function(t){l({progress:e,sideEffect:function(){return timeout(t,i)}})})),void queue((function(){l({isFinished:!0,sideEffect:cleanup})}));queue((function(t){l({isFinished:!1,progress:e,sideEffect:function(){return timeout(t,i)}})}))}),[i,a,l]),_=React.useCallback((function(){p(increment(d().progress))}),[d,p]),g=React.useCallback((function(){!function e(){_(),queue((function(t){timeout((function(){e(),t()}),u)}))}()}),[u,_]),h=React.useRef(noop),m=d().sideEffect;return React.useEffect((function(){h.current=_})),reactUse.useEffectOnce((function(){return s&&g(),cleanup})),reactUse.useUpdateEffect((function(){d().sideEffect()}),[d,m]),reactUse.useUpdateEffect((function(){s?l(_extends__default.default({},initialState,{sideEffect:g})):p(1)}),[s,p,l,g]),{animationDuration:i,isFinished:d().isFinished,progress:d().progress}},_excluded=["children"],NProgress=function(e){var t=e.children,n=_objectWithoutPropertiesLoose__default.default(e,_excluded);return t(useNProgress(n))};function withNProgress(e){var t=function(t){var n=useNProgress(t);return React__namespace.createElement(e,_extends__default.default({},t,n))};return hoistNonReactStatics__default.default(t,e),t}exports.NProgress=NProgress,exports.useNProgress=useNProgress,exports.withNProgress=withNProgress;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _objectWithoutPropertiesLoose=require("@babel/runtime/helpers/objectWithoutPropertiesLoose"),_extends=require("@babel/runtime/helpers/extends"),React=require("react"),reactUse=require("react-use"),hoistNonReactStatics=require("hoist-non-react-statics");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function _interopNamespace(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var _objectWithoutPropertiesLoose__default=_interopDefaultLegacy(_objectWithoutPropertiesLoose),_extends__default=_interopDefaultLegacy(_extends),React__namespace=_interopNamespace(React),hoistNonReactStatics__default=_interopDefaultLegacy(hoistNonReactStatics),clamp=function(e,t,n){return e=(e=e<=n?e:n)>=t?e:t},createQueue=function(){var e=!1,t=[],n=function n(){e=!0;var r=t.shift();if(r)return r(n);e=!1};return{clear:function(){e=!1,t=[]},enqueue:function(r){t.push(r),e||1!==t.length||n()}}},createTimeout=function(){var e;return{cancel:function(){e&&window.cancelAnimationFrame(e)},schedule:function(t,n){var r;e=window.requestAnimationFrame((function u(i){i-(r=r||i)>n?t():e=window.requestAnimationFrame(u)}))}}},increment=function(e){var t=0;return e>=0&&e<.2?t=.1:e>=.2&&e<.5?t=.04:e>=.5&&e<.8?t=.02:e>=.8&&e<.99&&(t=.005),clamp(e+t,0,.994)},noop=function(){},initialState={isFinished:!0,progress:0,sideEffect:noop},useNProgress=function(e){var t=void 0===e?{}:e,n=t.animationDuration,r=void 0===n?200:n,u=t.incrementDuration,i=void 0===u?800:u,c=t.isAnimating,o=void 0!==c&&c,a=t.minimum,s=void 0===a?.08:a,f=reactUse.useGetSetState(initialState),l=f[0],d=f[1],p=React.useRef(null),_=React.useRef(null);reactUse.useEffectOnce((function(){p.current=createQueue(),_.current=createTimeout()}));var h=React.useCallback((function(){var e,t;null==(e=_.current)||e.cancel(),null==(t=p.current)||t.clear()}),[]),v=React.useCallback((function(e){var t,n,u;if(1===(e=clamp(e,s,1)))return h(),null==(n=p.current)||n.enqueue((function(t){d({progress:e,sideEffect:function(){var e;return null==(e=_.current)?void 0:e.schedule(t,r)}})})),void(null==(u=p.current)||u.enqueue((function(){d({isFinished:!0,sideEffect:h})})));null==(t=p.current)||t.enqueue((function(t){d({isFinished:!1,progress:e,sideEffect:function(){var e;return null==(e=_.current)?void 0:e.schedule(t,r)}})}))}),[r,h,s,p,d,_]),m=React.useCallback((function(){v(increment(l().progress))}),[l,v]),g=React.useCallback((function(){!function e(){var t;m(),null==(t=p.current)||t.enqueue((function(t){var n;null==(n=_.current)||n.schedule((function(){e(),t()}),i)}))}()}),[i,p,_,m]),b=React.useRef(noop),P=l().sideEffect;return React.useEffect((function(){b.current=m})),reactUse.useEffectOnce((function(){return o&&g(),h})),reactUse.useUpdateEffect((function(){l().sideEffect()}),[l,P]),reactUse.useUpdateEffect((function(){o?d(_extends__default.default({},initialState,{sideEffect:g})):v(1)}),[o,v,d,g]),{animationDuration:r,isFinished:l().isFinished,progress:l().progress}},_excluded=["children"],NProgress=function(e){var t=e.children,n=_objectWithoutPropertiesLoose__default.default(e,_excluded);return t(useNProgress(n))};function withNProgress(e){var t=function(t){var n=useNProgress(t);return React__namespace.createElement(e,_extends__default.default({},t,n))};return hoistNonReactStatics__default.default(t,e),t}exports.NProgress=NProgress,exports.useNProgress=useNProgress,exports.withNProgress=withNProgress;
2
2
  //# sourceMappingURL=react-nprogress.cjs.production.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-nprogress.cjs.production.js","sources":["../compiled/timeout.js","../compiled/clamp.js","../compiled/increment.js","../compiled/queue.js","../compiled/useNProgress.js","../compiled/NProgress.js","../compiled/withNProgress.js"],"sourcesContent":["let handle;\nexport const cancel = () => {\n if (handle) {\n window.cancelAnimationFrame(handle);\n }\n};\nexport const timeout = (callback, delay) => {\n let deltaTime;\n let start;\n const frame = (time) => {\n start = start || time;\n deltaTime = time - start;\n if (deltaTime > delay) {\n callback();\n return;\n }\n handle = window.requestAnimationFrame(frame);\n };\n handle = window.requestAnimationFrame(frame);\n};\n","export const clamp = (num, lower, upper) => {\n num = num <= upper ? num : upper;\n num = num >= lower ? num : lower;\n return num;\n};\n","import { clamp } from './clamp';\nexport const increment = (progress) => {\n let amount = 0;\n if (progress >= 0 && progress < 0.2) {\n amount = 0.1;\n }\n else if (progress >= 0.2 && progress < 0.5) {\n amount = 0.04;\n }\n else if (progress >= 0.5 && progress < 0.8) {\n amount = 0.02;\n }\n else if (progress >= 0.8 && progress < 0.99) {\n amount = 0.005;\n }\n return clamp(progress + amount, 0, 0.994);\n};\n","let isRunning = false;\nlet pending = [];\nconst next = () => {\n isRunning = true;\n const cb = pending.shift();\n if (cb) {\n return cb(next);\n }\n isRunning = false;\n};\nexport const clear = () => {\n isRunning = false;\n pending = [];\n};\nexport const queue = (cb) => {\n pending.push(cb);\n if (!isRunning && pending.length === 1) {\n next();\n }\n};\n","import { useCallback, useEffect, useRef } from 'react';\nimport { useEffectOnce, useGetSetState, useUpdateEffect } from 'react-use';\nimport { clamp } from './clamp';\nimport { increment } from './increment';\nimport { clear as clearQueue, queue } from './queue';\nimport { cancel as cancelCurrentTimeout, timeout } from './timeout';\n/* istanbul ignore next */\nconst noop = () => undefined;\nconst initialState = {\n isFinished: true,\n progress: 0,\n sideEffect: noop,\n};\nconst cleanup = () => {\n cancelCurrentTimeout();\n clearQueue();\n};\nexport const useNProgress = ({ animationDuration = 200, incrementDuration = 800, isAnimating = false, minimum = 0.08, } = {}) => {\n const [get, setState] = useGetSetState(initialState);\n const set = useCallback((n) => {\n n = clamp(n, minimum, 1);\n if (n === 1) {\n cleanup();\n queue((next) => {\n setState({\n progress: n,\n sideEffect: () => timeout(next, animationDuration),\n });\n });\n queue(() => {\n setState({ isFinished: true, sideEffect: cleanup });\n });\n return;\n }\n queue((next) => {\n setState({\n isFinished: false,\n progress: n,\n sideEffect: () => timeout(next, animationDuration),\n });\n });\n }, [animationDuration, minimum, setState]);\n const trickle = useCallback(() => {\n set(increment(get().progress));\n }, [get, set]);\n const start = useCallback(() => {\n const work = () => {\n trickle();\n queue((next) => {\n timeout(() => {\n work();\n next();\n }, incrementDuration);\n });\n };\n work();\n }, [incrementDuration, trickle]);\n const savedTrickle = useRef(noop);\n const sideEffect = get().sideEffect;\n useEffect(() => {\n savedTrickle.current = trickle;\n });\n useEffectOnce(() => {\n if (isAnimating) {\n start();\n }\n return cleanup;\n });\n useUpdateEffect(() => {\n get().sideEffect();\n }, [get, sideEffect]);\n useUpdateEffect(() => {\n if (!isAnimating) {\n set(1);\n }\n else {\n setState({\n ...initialState,\n sideEffect: start,\n });\n }\n }, [isAnimating, set, setState, start]);\n return {\n animationDuration,\n isFinished: get().isFinished,\n progress: get().progress,\n };\n};\n","import { useNProgress } from './useNProgress';\nexport const NProgress = ({ children, ...restProps }) => {\n const renderProps = useNProgress(restProps);\n return children(renderProps);\n};\n","import hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { useNProgress } from './useNProgress';\nexport function withNProgress(BaseComponent) {\n const WithNProgress = (props) => {\n const hookProps = useNProgress(props);\n return React.createElement(BaseComponent, { ...props, ...hookProps });\n };\n hoistNonReactStatics(WithNProgress, BaseComponent);\n return WithNProgress;\n}\n"],"names":["handle","clamp","num","lower","upper","increment","progress","amount","isRunning","pending","next","cb","shift","clear","queue","push","length","cancel","window","cancelAnimationFrame","timeout","callback","delay","start","requestAnimationFrame","frame","time","noop","initialState","isFinished","sideEffect","cleanup","cancelCurrentTimeout","clearQueue","useNProgress","animationDuration","incrementDuration","isAnimating","minimum","useGetSetState","get","setState","set","useCallback","n","trickle","work","savedTrickle","useRef","useEffect","current","useEffectOnce","useUpdateEffect","NProgress","children","restProps","withNProgress","BaseComponent","WithNProgress","props","hookProps","React","createElement","hoistNonReactStatics"],"mappings":"otBAAIA,yQCASC,MAAQ,SAACC,EAAKC,EAAOC,UAE9BF,GADAA,EAAMA,GAAOE,EAAQF,EAAME,IACdD,EAAQD,EAAMC,GCDlBE,UAAY,SAACC,OAClBC,EAAS,SACTD,GAAY,GAAKA,EAAW,GAC5BC,EAAS,GAEJD,GAAY,IAAOA,EAAW,GACnCC,EAAS,IAEJD,GAAY,IAAOA,EAAW,GACnCC,EAAS,IAEJD,GAAY,IAAOA,EAAW,MACnCC,EAAS,MAENN,MAAMK,EAAWC,EAAQ,EAAG,OCfnCC,WAAY,EACZC,QAAU,GACRC,KAAO,SAAPA,IACFF,WAAY,MACNG,EAAKF,QAAQG,WACfD,SACOA,EAAGD,GAEdF,WAAY,GAEHK,MAAQ,WACjBL,WAAY,EACZC,QAAU,IAEDK,MAAQ,SAACH,GAClBF,QAAQM,KAAKJ,GACRH,WAAgC,IAAnBC,QAAQO,QACtBN,QHhBKO,OAAS,WACdjB,QACAkB,OAAOC,qBAAqBnB,SAGvBoB,QAAU,SAACC,EAAUC,OAE1BC,EAUJvB,OAASkB,OAAOM,uBATF,SAARC,EAASC,GAECA,GADZH,EAAQA,GAASG,GAEDJ,EACZD,IAGJrB,OAASkB,OAAOM,sBAAsBC,OITxCE,KAAO,aACPC,aAAe,CACjBC,YAAY,EACZvB,SAAU,EACVwB,WAAYH,MAEVI,QAAU,WACZC,SACAC,SAESC,aAAe,6BAA8F,SAA3FC,kBAAAA,aAAoB,UAAKC,kBAAAA,aAAoB,UAAKC,YAAAA,oBAAqBC,QAAAA,aAAU,QACpFC,wBAAeX,cAAhCY,OAAKC,OACNC,EAAMC,mBAAY,SAACC,MAEX,KADVA,EAAI3C,MAAM2C,EAAGN,EAAS,WAElBP,UACAjB,OAAM,SAACJ,GACH+B,EAAS,CACLnC,SAAUsC,EACVd,WAAY,kBAAMV,QAAQV,EAAMyB,cAGxCrB,OAAM,WACF2B,EAAS,CAAEZ,YAAY,EAAMC,WAAYC,aAIjDjB,OAAM,SAACJ,GACH+B,EAAS,CACLZ,YAAY,EACZvB,SAAUsC,EACVd,WAAY,kBAAMV,QAAQV,EAAMyB,WAGzC,CAACA,EAAmBG,EAASG,IAC1BI,EAAUF,mBAAY,WACxBD,EAAIrC,UAAUmC,IAAMlC,aACrB,CAACkC,EAAKE,IACHnB,EAAQoB,mBAAY,YACT,SAAPG,IACFD,IACA/B,OAAM,SAACJ,GACHU,SAAQ,WACJ0B,IACApC,MACD0B,MAGXU,KACD,CAACV,EAAmBS,IACjBE,EAAeC,aAAOrB,MACtBG,EAAaU,IAAMV,kBACzBmB,iBAAU,WACNF,EAAaG,QAAUL,KAE3BM,wBAAc,kBACNd,GACAd,IAEGQ,WAEXqB,0BAAgB,WACZZ,IAAMV,eACP,CAACU,EAAKV,IACTsB,0BAAgB,WACPf,EAIDI,+BACOb,cACHE,WAAYP,KALhBmB,EAAI,KAQT,CAACL,EAAaK,EAAKD,EAAUlB,IACzB,CACHY,kBAAAA,EACAN,WAAYW,IAAMX,WAClBvB,SAAUkC,IAAMlC,kCCpFX+C,UAAY,gBAAGC,IAAAA,SAAaC,qEAE9BD,EADapB,aAAaqB,KCC9B,SAASC,cAAcC,OACpBC,EAAgB,SAACC,OACbC,EAAY1B,aAAayB,UACxBE,iBAAMC,cAAcL,+BAAoBE,EAAUC,YAE7DG,sCAAqBL,EAAeD,GAC7BC"}
1
+ {"version":3,"file":"react-nprogress.cjs.production.js","sources":["../compiled/clamp.js","../compiled/createQueue.js","../compiled/createTimeout.js","../compiled/increment.js","../compiled/useNProgress.js","../compiled/NProgress.js","../compiled/withNProgress.js"],"sourcesContent":["export const clamp = (num, lower, upper) => {\n num = num <= upper ? num : upper;\n num = num >= lower ? num : lower;\n return num;\n};\n","export const createQueue = () => {\n let isRunning = false;\n let pending = [];\n const next = () => {\n isRunning = true;\n const cb = pending.shift();\n if (cb) {\n return cb(next);\n }\n isRunning = false;\n };\n const clear = () => {\n isRunning = false;\n pending = [];\n };\n const enqueue = (cb) => {\n pending.push(cb);\n if (!isRunning && pending.length === 1) {\n next();\n }\n };\n return {\n clear,\n enqueue,\n };\n};\n","export const createTimeout = () => {\n let handle;\n const cancel = () => {\n if (handle) {\n window.cancelAnimationFrame(handle);\n }\n };\n const schedule = (callback, delay) => {\n let deltaTime;\n let start;\n const frame = (time) => {\n start = start || time;\n deltaTime = time - start;\n if (deltaTime > delay) {\n callback();\n return;\n }\n handle = window.requestAnimationFrame(frame);\n };\n handle = window.requestAnimationFrame(frame);\n };\n return {\n cancel,\n schedule,\n };\n};\n","import { clamp } from './clamp';\nexport const increment = (progress) => {\n let amount = 0;\n if (progress >= 0 && progress < 0.2) {\n amount = 0.1;\n }\n else if (progress >= 0.2 && progress < 0.5) {\n amount = 0.04;\n }\n else if (progress >= 0.5 && progress < 0.8) {\n amount = 0.02;\n }\n else if (progress >= 0.8 && progress < 0.99) {\n amount = 0.005;\n }\n return clamp(progress + amount, 0, 0.994);\n};\n","import { useCallback, useEffect, useRef } from 'react';\nimport { useEffectOnce, useGetSetState, useUpdateEffect } from 'react-use';\nimport { clamp } from './clamp';\nimport { createQueue } from './createQueue';\nimport { createTimeout } from './createTimeout';\nimport { increment } from './increment';\n/* istanbul ignore next */\nconst noop = () => undefined;\nconst initialState = {\n isFinished: true,\n progress: 0,\n sideEffect: noop,\n};\nexport const useNProgress = ({ animationDuration = 200, incrementDuration = 800, isAnimating = false, minimum = 0.08, } = {}) => {\n const [get, setState] = useGetSetState(initialState);\n const queue = useRef(null);\n const timeout = useRef(null);\n useEffectOnce(() => {\n queue.current = createQueue();\n timeout.current = createTimeout();\n });\n const cleanup = useCallback(() => {\n timeout.current?.cancel();\n queue.current?.clear();\n }, []);\n const set = useCallback((n) => {\n n = clamp(n, minimum, 1);\n if (n === 1) {\n cleanup();\n queue.current?.enqueue((next) => {\n setState({\n progress: n,\n sideEffect: () => timeout.current?.schedule(next, animationDuration),\n });\n });\n queue.current?.enqueue(() => {\n setState({ isFinished: true, sideEffect: cleanup });\n });\n return;\n }\n queue.current?.enqueue((next) => {\n setState({\n isFinished: false,\n progress: n,\n sideEffect: () => timeout.current?.schedule(next, animationDuration),\n });\n });\n }, [animationDuration, cleanup, minimum, queue, setState, timeout]);\n const trickle = useCallback(() => {\n set(increment(get().progress));\n }, [get, set]);\n const start = useCallback(() => {\n const work = () => {\n trickle();\n queue.current?.enqueue((next) => {\n timeout.current?.schedule(() => {\n work();\n next();\n }, incrementDuration);\n });\n };\n work();\n }, [incrementDuration, queue, timeout, trickle]);\n const savedTrickle = useRef(noop);\n const sideEffect = get().sideEffect;\n useEffect(() => {\n savedTrickle.current = trickle;\n });\n useEffectOnce(() => {\n if (isAnimating) {\n start();\n }\n return cleanup;\n });\n useUpdateEffect(() => {\n get().sideEffect();\n }, [get, sideEffect]);\n useUpdateEffect(() => {\n if (!isAnimating) {\n set(1);\n }\n else {\n setState({\n ...initialState,\n sideEffect: start,\n });\n }\n }, [isAnimating, set, setState, start]);\n return {\n animationDuration,\n isFinished: get().isFinished,\n progress: get().progress,\n };\n};\n","import { useNProgress } from './useNProgress';\nexport const NProgress = ({ children, ...restProps }) => {\n const renderProps = useNProgress(restProps);\n return children(renderProps);\n};\n","import hoistNonReactStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { useNProgress } from './useNProgress';\nexport function withNProgress(BaseComponent) {\n const WithNProgress = (props) => {\n const hookProps = useNProgress(props);\n return React.createElement(BaseComponent, { ...props, ...hookProps });\n };\n hoistNonReactStatics(WithNProgress, BaseComponent);\n return WithNProgress;\n}\n"],"names":["clamp","num","lower","upper","createQueue","isRunning","pending","next","cb","shift","clear","enqueue","push","length","createTimeout","handle","cancel","window","cancelAnimationFrame","schedule","callback","delay","start","requestAnimationFrame","frame","time","increment","progress","amount","noop","initialState","isFinished","sideEffect","useNProgress","animationDuration","incrementDuration","isAnimating","minimum","useGetSetState","get","setState","queue","useRef","timeout","useEffectOnce","current","cleanup","useCallback","set","n","_timeout$current2","_timeout$current3","trickle","work","savedTrickle","useEffect","useUpdateEffect","NProgress","children","restProps","withNProgress","BaseComponent","WithNProgress","props","hookProps","React","createElement","hoistNonReactStatics"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/objectWithoutPropertiesLoose';
2
2
  import _extends from '@babel/runtime/helpers/extends';
3
3
  import * as React from 'react';
4
- import { useCallback, useRef, useEffect } from 'react';
4
+ import { useRef, useCallback, useEffect } from 'react';
5
5
  import { useGetSetState, useEffectOnce, useUpdateEffect } from 'react-use';
6
6
  import hoistNonReactStatics from 'hoist-non-react-statics';
7
7
 
@@ -11,71 +11,88 @@ var clamp = function clamp(num, lower, upper) {
11
11
  return num;
12
12
  };
13
13
 
14
- var increment = function increment(progress) {
15
- var amount = 0;
14
+ var createQueue = function createQueue() {
15
+ var isRunning = false;
16
+ var pending = [];
16
17
 
17
- if (progress >= 0 && progress < 0.2) {
18
- amount = 0.1;
19
- } else if (progress >= 0.2 && progress < 0.5) {
20
- amount = 0.04;
21
- } else if (progress >= 0.5 && progress < 0.8) {
22
- amount = 0.02;
23
- } else if (progress >= 0.8 && progress < 0.99) {
24
- amount = 0.005;
25
- }
18
+ var next = function next() {
19
+ isRunning = true;
20
+ var cb = pending.shift();
26
21
 
27
- return clamp(progress + amount, 0, 0.994);
28
- };
22
+ if (cb) {
23
+ return cb(next);
24
+ }
25
+
26
+ isRunning = false;
27
+ };
29
28
 
30
- var isRunning = false;
31
- var pending = [];
29
+ var clear = function clear() {
30
+ isRunning = false;
31
+ pending = [];
32
+ };
32
33
 
33
- var next = function next() {
34
- isRunning = true;
35
- var cb = pending.shift();
34
+ var enqueue = function enqueue(cb) {
35
+ pending.push(cb);
36
36
 
37
- if (cb) {
38
- return cb(next);
39
- }
37
+ if (!isRunning && pending.length === 1) {
38
+ next();
39
+ }
40
+ };
40
41
 
41
- isRunning = false;
42
+ return {
43
+ clear: clear,
44
+ enqueue: enqueue
45
+ };
42
46
  };
43
47
 
44
- var clear = function clear() {
45
- isRunning = false;
46
- pending = [];
47
- };
48
- var queue = function queue(cb) {
49
- pending.push(cb);
48
+ var createTimeout = function createTimeout() {
49
+ var handle;
50
50
 
51
- if (!isRunning && pending.length === 1) {
52
- next();
53
- }
54
- };
51
+ var cancel = function cancel() {
52
+ if (handle) {
53
+ window.cancelAnimationFrame(handle);
54
+ }
55
+ };
55
56
 
56
- var handle;
57
- var cancel = function cancel() {
58
- if (handle) {
59
- window.cancelAnimationFrame(handle);
60
- }
61
- };
62
- var timeout = function timeout(callback, delay) {
63
- var deltaTime;
64
- var start;
57
+ var schedule = function schedule(callback, delay) {
58
+ var deltaTime;
59
+ var start;
65
60
 
66
- var frame = function frame(time) {
67
- start = start || time;
68
- deltaTime = time - start;
61
+ var frame = function frame(time) {
62
+ start = start || time;
63
+ deltaTime = time - start;
69
64
 
70
- if (deltaTime > delay) {
71
- callback();
72
- return;
73
- }
65
+ if (deltaTime > delay) {
66
+ callback();
67
+ return;
68
+ }
69
+
70
+ handle = window.requestAnimationFrame(frame);
71
+ };
74
72
 
75
73
  handle = window.requestAnimationFrame(frame);
76
74
  };
77
75
 
78
- handle = window.requestAnimationFrame(frame);
76
+ return {
77
+ cancel: cancel,
78
+ schedule: schedule
79
+ };
80
+ };
81
+
82
+ var increment = function increment(progress) {
83
+ var amount = 0;
84
+
85
+ if (progress >= 0 && progress < 0.2) {
86
+ amount = 0.1;
87
+ } else if (progress >= 0.2 && progress < 0.5) {
88
+ amount = 0.04;
89
+ } else if (progress >= 0.5 && progress < 0.8) {
90
+ amount = 0.02;
91
+ } else if (progress >= 0.8 && progress < 0.99) {
92
+ amount = 0.005;
93
+ }
94
+
95
+ return clamp(progress + amount, 0, 0.994);
79
96
  };
80
97
 
81
98
  /* istanbul ignore next */
@@ -89,12 +106,6 @@ var initialState = {
89
106
  progress: 0,
90
107
  sideEffect: noop
91
108
  };
92
-
93
- var cleanup = function cleanup() {
94
- cancel();
95
- clear();
96
- };
97
-
98
109
  var useNProgress = function useNProgress(_temp) {
99
110
  var _ref = _temp === void 0 ? {} : _temp,
100
111
  _ref$animationDuratio = _ref.animationDuration,
@@ -110,20 +121,38 @@ var useNProgress = function useNProgress(_temp) {
110
121
  get = _useGetSetState[0],
111
122
  setState = _useGetSetState[1];
112
123
 
124
+ var queue = useRef(null);
125
+ var timeout = useRef(null);
126
+ useEffectOnce(function () {
127
+ queue.current = createQueue();
128
+ timeout.current = createTimeout();
129
+ });
130
+ var cleanup = useCallback(function () {
131
+ var _timeout$current, _queue$current;
132
+
133
+ (_timeout$current = timeout.current) == null ? void 0 : _timeout$current.cancel();
134
+ (_queue$current = queue.current) == null ? void 0 : _queue$current.clear();
135
+ }, []);
113
136
  var set = useCallback(function (n) {
137
+ var _queue$current4;
138
+
114
139
  n = clamp(n, minimum, 1);
115
140
 
116
141
  if (n === 1) {
142
+ var _queue$current2, _queue$current3;
143
+
117
144
  cleanup();
118
- queue(function (next) {
145
+ (_queue$current2 = queue.current) == null ? void 0 : _queue$current2.enqueue(function (next) {
119
146
  setState({
120
147
  progress: n,
121
148
  sideEffect: function sideEffect() {
122
- return timeout(next, animationDuration);
149
+ var _timeout$current2;
150
+
151
+ return (_timeout$current2 = timeout.current) == null ? void 0 : _timeout$current2.schedule(next, animationDuration);
123
152
  }
124
153
  });
125
154
  });
126
- queue(function () {
155
+ (_queue$current3 = queue.current) == null ? void 0 : _queue$current3.enqueue(function () {
127
156
  setState({
128
157
  isFinished: true,
129
158
  sideEffect: cleanup
@@ -132,24 +161,30 @@ var useNProgress = function useNProgress(_temp) {
132
161
  return;
133
162
  }
134
163
 
135
- queue(function (next) {
164
+ (_queue$current4 = queue.current) == null ? void 0 : _queue$current4.enqueue(function (next) {
136
165
  setState({
137
166
  isFinished: false,
138
167
  progress: n,
139
168
  sideEffect: function sideEffect() {
140
- return timeout(next, animationDuration);
169
+ var _timeout$current3;
170
+
171
+ return (_timeout$current3 = timeout.current) == null ? void 0 : _timeout$current3.schedule(next, animationDuration);
141
172
  }
142
173
  });
143
174
  });
144
- }, [animationDuration, minimum, setState]);
175
+ }, [animationDuration, cleanup, minimum, queue, setState, timeout]);
145
176
  var trickle = useCallback(function () {
146
177
  set(increment(get().progress));
147
178
  }, [get, set]);
148
179
  var start = useCallback(function () {
149
180
  var work = function work() {
181
+ var _queue$current5;
182
+
150
183
  trickle();
151
- queue(function (next) {
152
- timeout(function () {
184
+ (_queue$current5 = queue.current) == null ? void 0 : _queue$current5.enqueue(function (next) {
185
+ var _timeout$current4;
186
+
187
+ (_timeout$current4 = timeout.current) == null ? void 0 : _timeout$current4.schedule(function () {
153
188
  work();
154
189
  next();
155
190
  }, incrementDuration);
@@ -157,7 +192,7 @@ var useNProgress = function useNProgress(_temp) {
157
192
  };
158
193
 
159
194
  work();
160
- }, [incrementDuration, trickle]);
195
+ }, [incrementDuration, queue, timeout, trickle]);
161
196
  var savedTrickle = useRef(noop);
162
197
  var sideEffect = get().sideEffect;
163
198
  useEffect(function () {