@tanem/react-nprogress 4.0.0-beta.1 → 4.0.1
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 +1 -0
- package/dist/{queue.d.ts → createQueue.d.ts} +1 -1
- package/dist/{timeout.d.ts → createTimeout.d.ts} +1 -1
- package/dist/react-nprogress.cjs.development.js +127 -64
- package/dist/react-nprogress.cjs.development.js.map +1 -1
- package/dist/react-nprogress.cjs.production.js +1 -1
- package/dist/react-nprogress.cjs.production.js.map +1 -1
- package/dist/react-nprogress.esm.js +124 -61
- package/dist/react-nprogress.esm.js.map +1 -1
- package/dist/react-nprogress.umd.development.js +127 -145
- package/dist/react-nprogress.umd.development.js.map +1 -1
- package/dist/react-nprogress.umd.production.js +1 -1
- package/dist/react-nprogress.umd.production.js.map +1 -1
- package/dist/useEffectOnce.d.ts +2 -0
- package/dist/useGetSetState.d.ts +1 -0
- package/dist/useNProgress.d.ts +2 -4
- package/dist/useUpdateEffect.d.ts +2 -0
- package/package.json +9 -10
|
@@ -1,8 +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,
|
|
5
|
-
import { useGetSetState, useEffectOnce, useUpdateEffect } from 'react-use';
|
|
4
|
+
import { useEffect, useCallback, useRef, useState } from 'react';
|
|
6
5
|
import hoistNonReactStatics from 'hoist-non-react-statics';
|
|
7
6
|
|
|
8
7
|
var clamp = function clamp(num, lower, upper) {
|
|
@@ -11,22 +10,6 @@ var clamp = function clamp(num, lower, upper) {
|
|
|
11
10
|
return num;
|
|
12
11
|
};
|
|
13
12
|
|
|
14
|
-
var increment = function increment(progress) {
|
|
15
|
-
var amount = 0;
|
|
16
|
-
|
|
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
|
-
}
|
|
26
|
-
|
|
27
|
-
return clamp(progress + amount, 0, 0.994);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
13
|
var createQueue = function createQueue() {
|
|
31
14
|
var isRunning = false;
|
|
32
15
|
var pending = [];
|
|
@@ -47,7 +30,7 @@ var createQueue = function createQueue() {
|
|
|
47
30
|
pending = [];
|
|
48
31
|
};
|
|
49
32
|
|
|
50
|
-
var
|
|
33
|
+
var enqueue = function enqueue(cb) {
|
|
51
34
|
pending.push(cb);
|
|
52
35
|
|
|
53
36
|
if (!isRunning && pending.length === 1) {
|
|
@@ -57,7 +40,7 @@ var createQueue = function createQueue() {
|
|
|
57
40
|
|
|
58
41
|
return {
|
|
59
42
|
clear: clear,
|
|
60
|
-
|
|
43
|
+
enqueue: enqueue
|
|
61
44
|
};
|
|
62
45
|
};
|
|
63
46
|
|
|
@@ -65,14 +48,12 @@ var createTimeout = function createTimeout() {
|
|
|
65
48
|
var handle;
|
|
66
49
|
|
|
67
50
|
var cancel = function cancel() {
|
|
68
|
-
console.log('cancel');
|
|
69
|
-
|
|
70
51
|
if (handle) {
|
|
71
52
|
window.cancelAnimationFrame(handle);
|
|
72
53
|
}
|
|
73
54
|
};
|
|
74
55
|
|
|
75
|
-
var
|
|
56
|
+
var schedule = function schedule(callback, delay) {
|
|
76
57
|
var deltaTime;
|
|
77
58
|
var start;
|
|
78
59
|
|
|
@@ -93,25 +74,102 @@ var createTimeout = function createTimeout() {
|
|
|
93
74
|
|
|
94
75
|
return {
|
|
95
76
|
cancel: cancel,
|
|
96
|
-
|
|
77
|
+
schedule: schedule
|
|
97
78
|
};
|
|
98
79
|
};
|
|
99
80
|
|
|
81
|
+
var increment = function increment(progress) {
|
|
82
|
+
var amount = 0;
|
|
83
|
+
|
|
84
|
+
if (progress >= 0 && progress < 0.2) {
|
|
85
|
+
amount = 0.1;
|
|
86
|
+
} else if (progress >= 0.2 && progress < 0.5) {
|
|
87
|
+
amount = 0.04;
|
|
88
|
+
} else if (progress >= 0.5 && progress < 0.8) {
|
|
89
|
+
amount = 0.02;
|
|
90
|
+
} else if (progress >= 0.8 && progress < 0.99) {
|
|
91
|
+
amount = 0.005;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return clamp(progress + amount, 0, 0.994);
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
// Hat-tip:
|
|
98
|
+
var useEffectOnce = function useEffectOnce(effect) {
|
|
99
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
100
|
+
useEffect(effect, []);
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
var incrementParameter = function incrementParameter(num) {
|
|
104
|
+
return ++num % 1000000;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
var useUpdate = function useUpdate() {
|
|
108
|
+
var _useState = useState(0),
|
|
109
|
+
setState = _useState[1];
|
|
110
|
+
|
|
111
|
+
return useCallback(function () {
|
|
112
|
+
return setState(incrementParameter);
|
|
113
|
+
}, []);
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
var useGetSetState = function useGetSetState(
|
|
117
|
+
/* istanbul ignore next */
|
|
118
|
+
initialState) {
|
|
119
|
+
if (initialState === void 0) {
|
|
120
|
+
initialState = {};
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
var update = useUpdate();
|
|
124
|
+
var state = useRef(_extends({}, initialState));
|
|
125
|
+
var get = useCallback(function () {
|
|
126
|
+
return state.current;
|
|
127
|
+
}, []);
|
|
128
|
+
var set = useCallback(function (patch) {
|
|
129
|
+
if (!patch) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
Object.assign(state.current, patch);
|
|
134
|
+
update(); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
135
|
+
}, []);
|
|
136
|
+
return [get, set];
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
// Hat-tip:
|
|
140
|
+
|
|
141
|
+
var useFirstMountState = function useFirstMountState() {
|
|
142
|
+
var isFirst = useRef(true);
|
|
143
|
+
|
|
144
|
+
if (isFirst.current) {
|
|
145
|
+
isFirst.current = false;
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return isFirst.current;
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
var useUpdateEffect = function useUpdateEffect(effect, deps) {
|
|
153
|
+
var isFirstMount = useFirstMountState();
|
|
154
|
+
useEffect(function () {
|
|
155
|
+
if (!isFirstMount) {
|
|
156
|
+
return effect();
|
|
157
|
+
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
158
|
+
|
|
159
|
+
}, deps);
|
|
160
|
+
};
|
|
161
|
+
|
|
100
162
|
/* istanbul ignore next */
|
|
101
163
|
|
|
102
164
|
var noop = function noop() {
|
|
103
165
|
return undefined;
|
|
104
|
-
};
|
|
105
|
-
// isFinished: true,
|
|
106
|
-
// progress: 0,
|
|
107
|
-
// sideEffect: noop,
|
|
108
|
-
// }
|
|
109
|
-
// const cleanup = () => {
|
|
110
|
-
// cancelCurrentTimeout()
|
|
111
|
-
// clearQueue()
|
|
112
|
-
// }
|
|
113
|
-
|
|
166
|
+
};
|
|
114
167
|
|
|
168
|
+
var initialState = {
|
|
169
|
+
isFinished: true,
|
|
170
|
+
progress: 0,
|
|
171
|
+
sideEffect: noop
|
|
172
|
+
};
|
|
115
173
|
var useNProgress = function useNProgress(_temp) {
|
|
116
174
|
var _ref = _temp === void 0 ? {} : _temp,
|
|
117
175
|
_ref$animationDuratio = _ref.animationDuration,
|
|
@@ -123,43 +181,42 @@ var useNProgress = function useNProgress(_temp) {
|
|
|
123
181
|
_ref$minimum = _ref.minimum,
|
|
124
182
|
minimum = _ref$minimum === void 0 ? 0.08 : _ref$minimum;
|
|
125
183
|
|
|
126
|
-
var initialState = {
|
|
127
|
-
isFinished: true,
|
|
128
|
-
progress: 0,
|
|
129
|
-
sideEffect: noop
|
|
130
|
-
};
|
|
131
|
-
|
|
132
184
|
var _useGetSetState = useGetSetState(initialState),
|
|
133
185
|
get = _useGetSetState[0],
|
|
134
186
|
setState = _useGetSetState[1];
|
|
135
187
|
|
|
136
|
-
var
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
var cleanup = function cleanup() {
|
|
145
|
-
cancelCurrentTimeout();
|
|
146
|
-
clearQueue();
|
|
147
|
-
};
|
|
188
|
+
var queue = useRef(null);
|
|
189
|
+
var timeout = useRef(null);
|
|
190
|
+
useEffectOnce(function () {
|
|
191
|
+
queue.current = createQueue();
|
|
192
|
+
timeout.current = createTimeout();
|
|
193
|
+
});
|
|
194
|
+
var cleanup = useCallback(function () {
|
|
195
|
+
var _timeout$current, _queue$current;
|
|
148
196
|
|
|
197
|
+
(_timeout$current = timeout.current) == null ? void 0 : _timeout$current.cancel();
|
|
198
|
+
(_queue$current = queue.current) == null ? void 0 : _queue$current.clear();
|
|
199
|
+
}, []);
|
|
149
200
|
var set = useCallback(function (n) {
|
|
201
|
+
var _queue$current4;
|
|
202
|
+
|
|
150
203
|
n = clamp(n, minimum, 1);
|
|
151
204
|
|
|
152
205
|
if (n === 1) {
|
|
206
|
+
var _queue$current2, _queue$current3;
|
|
207
|
+
|
|
153
208
|
cleanup();
|
|
154
|
-
queue(function (next) {
|
|
209
|
+
(_queue$current2 = queue.current) == null ? void 0 : _queue$current2.enqueue(function (next) {
|
|
155
210
|
setState({
|
|
156
211
|
progress: n,
|
|
157
212
|
sideEffect: function sideEffect() {
|
|
158
|
-
|
|
213
|
+
var _timeout$current2;
|
|
214
|
+
|
|
215
|
+
return (_timeout$current2 = timeout.current) == null ? void 0 : _timeout$current2.schedule(next, animationDuration);
|
|
159
216
|
}
|
|
160
217
|
});
|
|
161
218
|
});
|
|
162
|
-
queue(function () {
|
|
219
|
+
(_queue$current3 = queue.current) == null ? void 0 : _queue$current3.enqueue(function () {
|
|
163
220
|
setState({
|
|
164
221
|
isFinished: true,
|
|
165
222
|
sideEffect: cleanup
|
|
@@ -168,24 +225,30 @@ var useNProgress = function useNProgress(_temp) {
|
|
|
168
225
|
return;
|
|
169
226
|
}
|
|
170
227
|
|
|
171
|
-
queue(function (next) {
|
|
228
|
+
(_queue$current4 = queue.current) == null ? void 0 : _queue$current4.enqueue(function (next) {
|
|
172
229
|
setState({
|
|
173
230
|
isFinished: false,
|
|
174
231
|
progress: n,
|
|
175
232
|
sideEffect: function sideEffect() {
|
|
176
|
-
|
|
233
|
+
var _timeout$current3;
|
|
234
|
+
|
|
235
|
+
return (_timeout$current3 = timeout.current) == null ? void 0 : _timeout$current3.schedule(next, animationDuration);
|
|
177
236
|
}
|
|
178
237
|
});
|
|
179
238
|
});
|
|
180
|
-
}, [animationDuration, minimum, setState]);
|
|
239
|
+
}, [animationDuration, cleanup, minimum, queue, setState, timeout]);
|
|
181
240
|
var trickle = useCallback(function () {
|
|
182
241
|
set(increment(get().progress));
|
|
183
242
|
}, [get, set]);
|
|
184
243
|
var start = useCallback(function () {
|
|
185
244
|
var work = function work() {
|
|
245
|
+
var _queue$current5;
|
|
246
|
+
|
|
186
247
|
trickle();
|
|
187
|
-
queue(function (next) {
|
|
188
|
-
|
|
248
|
+
(_queue$current5 = queue.current) == null ? void 0 : _queue$current5.enqueue(function (next) {
|
|
249
|
+
var _timeout$current4;
|
|
250
|
+
|
|
251
|
+
(_timeout$current4 = timeout.current) == null ? void 0 : _timeout$current4.schedule(function () {
|
|
189
252
|
work();
|
|
190
253
|
next();
|
|
191
254
|
}, incrementDuration);
|
|
@@ -193,7 +256,7 @@ var useNProgress = function useNProgress(_temp) {
|
|
|
193
256
|
};
|
|
194
257
|
|
|
195
258
|
work();
|
|
196
|
-
}, [incrementDuration, trickle]);
|
|
259
|
+
}, [incrementDuration, queue, timeout, trickle]);
|
|
197
260
|
var savedTrickle = useRef(noop);
|
|
198
261
|
var sideEffect = get().sideEffect;
|
|
199
262
|
useEffect(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-nprogress.esm.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","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 queue = (cb) => {\n pending.push(cb);\n if (!isRunning && pending.length === 1) {\n next();\n }\n };\n return {\n clear,\n queue,\n };\n};\n","export const createTimeout = () => {\n let handle;\n const cancel = () => {\n console.log('cancel');\n if (handle) {\n window.cancelAnimationFrame(handle);\n }\n };\n 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 return {\n cancel,\n timeout,\n };\n};\n","import { useCallback, useEffect, useRef } from 'react';\nimport { useEffectOnce, useGetSetState, useUpdateEffect } from 'react-use';\nimport { clamp } from './clamp';\nimport { increment } from './increment';\n// import { clear as clearQueue, queue } from './queue'\nimport { createQueue } from './queue';\n// import { cancel as cancelCurrentTimeout, timeout } from './timeout'\nimport { createTimeout } from './timeout';\n/* istanbul ignore next */\nconst noop = () => undefined;\n// const initialState: State = {\n// isFinished: true,\n// progress: 0,\n// sideEffect: noop,\n// }\n// const cleanup = () => {\n// cancelCurrentTimeout()\n// clearQueue()\n// }\nexport const useNProgress = ({ animationDuration = 200, incrementDuration = 800, isAnimating = false, minimum = 0.08, } = {}) => {\n const initialState = {\n isFinished: true,\n progress: 0,\n sideEffect: noop,\n };\n const [get, setState] = useGetSetState(initialState);\n const { clear: clearQueue, queue } = createQueue();\n const { cancel: cancelCurrentTimeout, timeout } = createTimeout();\n const cleanup = () => {\n cancelCurrentTimeout();\n clearQueue();\n };\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","createQueue","isRunning","pending","next","cb","shift","clear","queue","push","length","createTimeout","handle","cancel","console","log","window","cancelAnimationFrame","timeout","callback","delay","deltaTime","start","frame","time","requestAnimationFrame","noop","undefined","useNProgress","animationDuration","incrementDuration","isAnimating","minimum","initialState","isFinished","sideEffect","useGetSetState","get","setState","clearQueue","cancelCurrentTimeout","cleanup","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.esm.js","sources":["../compiled/clamp.js","../compiled/createQueue.js","../compiled/createTimeout.js","../compiled/increment.js","../compiled/useEffectOnce.js","../compiled/useGetSetState.js","../compiled/useUpdateEffect.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","// Hat-tip:\n// https://github.com/streamich/react-use/blob/master/src/useEffectOnce.ts.\n//\n// `react-use` appears to be unmaintained, so moving the required code into\n// this project for now.\nimport { useEffect } from 'react';\nexport const useEffectOnce = (effect) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(effect, []);\n};\n","// Hat-tip:\n// https://github.com/streamich/react-use/blob/master/src/useGetSetState.ts.\n//\n// `react-use` appears to be unmaintained, so moving the required code into\n// this project for now.\nimport { useCallback, useRef, useState } from 'react';\nconst incrementParameter = (num) => ++num % 1_000_000;\nconst useUpdate = () => {\n const [, setState] = useState(0);\n return useCallback(() => setState(incrementParameter), []);\n};\nexport const useGetSetState = (\n/* istanbul ignore next */\ninitialState = {}) => {\n const update = useUpdate();\n const state = useRef({ ...initialState });\n const get = useCallback(() => state.current, []);\n const set = useCallback((patch) => {\n if (!patch) {\n return;\n }\n Object.assign(state.current, patch);\n update();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return [get, set];\n};\n","// Hat-tip:\n// https://github.com/streamich/react-use/blob/master/src/useUpdateEffect.ts.\n//\n// `react-use` appears to be unmaintained, so moving the required code into\n// this project for now.\nimport { useEffect, useRef } from 'react';\nconst useFirstMountState = () => {\n const isFirst = useRef(true);\n if (isFirst.current) {\n isFirst.current = false;\n return true;\n }\n return isFirst.current;\n};\nexport const useUpdateEffect = (effect, deps) => {\n const isFirstMount = useFirstMountState();\n useEffect(() => {\n if (!isFirstMount) {\n return effect();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n};\n","import { useCallback, useEffect, useRef } from 'react';\nimport { clamp } from './clamp';\nimport { createQueue } from './createQueue';\nimport { createTimeout } from './createTimeout';\nimport { increment } from './increment';\nimport { useEffectOnce } from './useEffectOnce';\nimport { useGetSetState } from './useGetSetState';\nimport { useUpdateEffect } from './useUpdateEffect';\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","useEffectOnce","effect","useEffect","incrementParameter","useUpdate","useState","setState","useCallback","useGetSetState","initialState","update","state","useRef","get","current","set","patch","Object","assign","useFirstMountState","isFirst","useUpdateEffect","deps","isFirstMount","noop","undefined","isFinished","sideEffect","useNProgress","animationDuration","incrementDuration","isAnimating","minimum","queue","timeout","cleanup","n","trickle","work","savedTrickle","NProgress","children","restProps","renderProps","withNProgress","BaseComponent","WithNProgress","props","hookProps","React","createElement","hoistNonReactStatics"],"mappings":"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"}
|