@hairy/react-lib 1.6.1 → 1.7.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/dist/index.cjs +115 -28
- package/dist/index.d.ts +31 -2
- package/dist/index.global.js +8 -8
- package/dist/index.js +115 -26
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -5,6 +5,9 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
5
5
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
6
|
var __getProtoOf = Object.getPrototypeOf;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __esm = (fn, res) => function __init() {
|
|
9
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
10
|
+
};
|
|
8
11
|
var __export = (target, all) => {
|
|
9
12
|
for (var name in all)
|
|
10
13
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -27,6 +30,24 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
27
30
|
));
|
|
28
31
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
32
|
|
|
33
|
+
// ../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs
|
|
34
|
+
var __assign;
|
|
35
|
+
var init_tslib_es6 = __esm({
|
|
36
|
+
"../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs"() {
|
|
37
|
+
"use strict";
|
|
38
|
+
__assign = function() {
|
|
39
|
+
__assign = Object.assign || function __assign2(t) {
|
|
40
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
41
|
+
s = arguments[i];
|
|
42
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
43
|
+
}
|
|
44
|
+
return t;
|
|
45
|
+
};
|
|
46
|
+
return __assign.apply(this, arguments);
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
30
51
|
// src/index.ts
|
|
31
52
|
var index_exports = {};
|
|
32
53
|
__export(index_exports, {
|
|
@@ -171,19 +192,86 @@ function useAsyncCallback(fun) {
|
|
|
171
192
|
return [loading, execute, error];
|
|
172
193
|
}
|
|
173
194
|
|
|
195
|
+
// ../../node_modules/.pnpm/react-use@17.6.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useAsyncFn.js
|
|
196
|
+
init_tslib_es6();
|
|
197
|
+
var import_react8 = require("react");
|
|
198
|
+
|
|
199
|
+
// ../../node_modules/.pnpm/react-use@17.6.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMountedState.js
|
|
200
|
+
var import_react7 = require("react");
|
|
201
|
+
function useMountedState() {
|
|
202
|
+
var mountedRef = (0, import_react7.useRef)(false);
|
|
203
|
+
var get = (0, import_react7.useCallback)(function() {
|
|
204
|
+
return mountedRef.current;
|
|
205
|
+
}, []);
|
|
206
|
+
(0, import_react7.useEffect)(function() {
|
|
207
|
+
mountedRef.current = true;
|
|
208
|
+
return function() {
|
|
209
|
+
mountedRef.current = false;
|
|
210
|
+
};
|
|
211
|
+
}, []);
|
|
212
|
+
return get;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// ../../node_modules/.pnpm/react-use@17.6.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useAsyncFn.js
|
|
216
|
+
function useAsyncFn(fn, deps, initialState) {
|
|
217
|
+
if (deps === void 0) {
|
|
218
|
+
deps = [];
|
|
219
|
+
}
|
|
220
|
+
if (initialState === void 0) {
|
|
221
|
+
initialState = { loading: false };
|
|
222
|
+
}
|
|
223
|
+
var lastCallId = (0, import_react8.useRef)(0);
|
|
224
|
+
var isMounted = useMountedState();
|
|
225
|
+
var _a = (0, import_react8.useState)(initialState), state = _a[0], set = _a[1];
|
|
226
|
+
var callback = (0, import_react8.useCallback)(function() {
|
|
227
|
+
var args = [];
|
|
228
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
229
|
+
args[_i] = arguments[_i];
|
|
230
|
+
}
|
|
231
|
+
var callId = ++lastCallId.current;
|
|
232
|
+
if (!state.loading) {
|
|
233
|
+
set(function(prevState) {
|
|
234
|
+
return __assign(__assign({}, prevState), { loading: true });
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
return fn.apply(void 0, args).then(function(value) {
|
|
238
|
+
isMounted() && callId === lastCallId.current && set({ value, loading: false });
|
|
239
|
+
return value;
|
|
240
|
+
}, function(error) {
|
|
241
|
+
isMounted() && callId === lastCallId.current && set({ error, loading: false });
|
|
242
|
+
return error;
|
|
243
|
+
});
|
|
244
|
+
}, deps);
|
|
245
|
+
return [state, callback];
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
// ../../node_modules/.pnpm/react-use@17.6.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useEffectOnce.js
|
|
249
|
+
var import_react9 = require("react");
|
|
250
|
+
var useEffectOnce = function(effect) {
|
|
251
|
+
(0, import_react9.useEffect)(effect, []);
|
|
252
|
+
};
|
|
253
|
+
var useEffectOnce_default = useEffectOnce;
|
|
254
|
+
|
|
255
|
+
// ../../node_modules/.pnpm/react-use@17.6.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMount.js
|
|
256
|
+
var useMount = function(fn) {
|
|
257
|
+
useEffectOnce_default(function() {
|
|
258
|
+
fn();
|
|
259
|
+
});
|
|
260
|
+
};
|
|
261
|
+
var useMount_default = useMount;
|
|
262
|
+
|
|
174
263
|
// src/hooks/useAsyncState.ts
|
|
175
|
-
var import_react_use = require("react-use");
|
|
176
264
|
function useAsyncState(fn, deps, options) {
|
|
177
|
-
const [state, _fn] =
|
|
178
|
-
(
|
|
265
|
+
const [state, _fn] = useAsyncFn(fn, deps, options?.initial);
|
|
266
|
+
useMount_default(() => options?.immediate && _fn());
|
|
179
267
|
return [state, _fn];
|
|
180
268
|
}
|
|
181
269
|
|
|
182
270
|
// src/hooks/useDebounce.ts
|
|
183
|
-
var
|
|
271
|
+
var import_react10 = require("react");
|
|
184
272
|
function useDebounce(value, delay) {
|
|
185
|
-
const [debouncedValue, setDebouncedValue] = (0,
|
|
186
|
-
(0,
|
|
273
|
+
const [debouncedValue, setDebouncedValue] = (0, import_react10.useState)(value);
|
|
274
|
+
(0, import_react10.useEffect)(() => {
|
|
187
275
|
const handler = setTimeout(() => setDebouncedValue(value), delay);
|
|
188
276
|
return () => clearTimeout(handler);
|
|
189
277
|
}, [value, delay]);
|
|
@@ -192,14 +280,14 @@ function useDebounce(value, delay) {
|
|
|
192
280
|
|
|
193
281
|
// src/hooks/useEventBus.ts
|
|
194
282
|
var import_mitt = __toESM(require("mitt"), 1);
|
|
195
|
-
var
|
|
283
|
+
var import_react11 = require("react");
|
|
196
284
|
var emitter = (0, import_mitt.default)();
|
|
197
285
|
function useEventBus(key) {
|
|
198
|
-
const onRef = (0,
|
|
286
|
+
const onRef = (0, import_react11.useRef)();
|
|
199
287
|
function on(listener) {
|
|
200
288
|
emitter.on(key, listener);
|
|
201
289
|
onRef.current = listener;
|
|
202
|
-
(0,
|
|
290
|
+
(0, import_react11.useEffect)(() => {
|
|
203
291
|
if (!onRef.current)
|
|
204
292
|
return;
|
|
205
293
|
emitter.off(key, onRef.current);
|
|
@@ -222,12 +310,11 @@ function useEventBus(key) {
|
|
|
222
310
|
}
|
|
223
311
|
|
|
224
312
|
// src/hooks/useFetchIntercept.ts
|
|
225
|
-
var import_react_use2 = require("react-use");
|
|
226
313
|
function useFetchResponseIntercept(intercept) {
|
|
227
|
-
(
|
|
314
|
+
useMount_default(() => fetchResponseIntercept(intercept));
|
|
228
315
|
}
|
|
229
316
|
function useFetchRequestIntercept(intercept) {
|
|
230
|
-
(
|
|
317
|
+
useMount_default(() => fetchRequestIntercept(intercept));
|
|
231
318
|
}
|
|
232
319
|
function fetchResponseIntercept(intercept) {
|
|
233
320
|
const { fetch: originalFetch } = window;
|
|
@@ -246,23 +333,23 @@ function fetchRequestIntercept(intercept) {
|
|
|
246
333
|
}
|
|
247
334
|
|
|
248
335
|
// src/hooks/useMounted.ts
|
|
249
|
-
var
|
|
336
|
+
var import_react12 = require("react");
|
|
250
337
|
function useMounted() {
|
|
251
|
-
const [mounted, setMounted] = (0,
|
|
252
|
-
(0,
|
|
338
|
+
const [mounted, setMounted] = (0, import_react12.useState)(false);
|
|
339
|
+
(0, import_react12.useEffect)(() => setMounted(true), []);
|
|
253
340
|
return mounted;
|
|
254
341
|
}
|
|
255
342
|
|
|
256
343
|
// src/hooks/useWatch.ts
|
|
257
|
-
var
|
|
344
|
+
var import_react13 = require("react");
|
|
258
345
|
function useWatch(source, callback, options = {}) {
|
|
259
|
-
const firstUpdate = (0,
|
|
260
|
-
const then = (0,
|
|
261
|
-
const deps = (0,
|
|
346
|
+
const firstUpdate = (0, import_react13.useRef)(false);
|
|
347
|
+
const then = (0, import_react13.useRef)();
|
|
348
|
+
const deps = (0, import_react13.useMemo)(
|
|
262
349
|
() => Array.isArray(source) ? source : [source],
|
|
263
350
|
[source]
|
|
264
351
|
);
|
|
265
|
-
(0,
|
|
352
|
+
(0, import_react13.useEffect)(() => {
|
|
266
353
|
if (!firstUpdate.current)
|
|
267
354
|
recordFirst();
|
|
268
355
|
else
|
|
@@ -287,14 +374,14 @@ function useWhenever(source, cb, options) {
|
|
|
287
374
|
var hasOwn = {}.hasOwnProperty;
|
|
288
375
|
function cls(...args) {
|
|
289
376
|
let classes = "";
|
|
290
|
-
for (let i = 0; i <
|
|
291
|
-
const arg =
|
|
377
|
+
for (let i = 0; i < args.length; i++) {
|
|
378
|
+
const arg = args[i];
|
|
292
379
|
if (arg)
|
|
293
|
-
classes =
|
|
380
|
+
classes = cls.append(classes, cls.parse(arg));
|
|
294
381
|
}
|
|
295
382
|
return classes;
|
|
296
383
|
}
|
|
297
|
-
function
|
|
384
|
+
cls.parse = function(arg) {
|
|
298
385
|
if (typeof arg === "string")
|
|
299
386
|
return arg;
|
|
300
387
|
if (typeof arg !== "object")
|
|
@@ -306,15 +393,15 @@ function parseValue(arg) {
|
|
|
306
393
|
let classes = "";
|
|
307
394
|
for (const key in arg) {
|
|
308
395
|
if (hasOwn.call(arg, key) && arg[key])
|
|
309
|
-
classes =
|
|
396
|
+
classes = cls.append(classes, key);
|
|
310
397
|
}
|
|
311
398
|
return classes;
|
|
312
|
-
}
|
|
313
|
-
function
|
|
399
|
+
};
|
|
400
|
+
cls.append = function(value, newClass) {
|
|
314
401
|
if (!newClass)
|
|
315
402
|
return value;
|
|
316
403
|
return value ? `${value} ${newClass}` : newClass;
|
|
317
|
-
}
|
|
404
|
+
};
|
|
318
405
|
// Annotate the CommonJS export names for ESM import in node:
|
|
319
406
|
0 && (module.exports = {
|
|
320
407
|
Case,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { BooleanLike } from '@hairy/utils';
|
|
2
2
|
import * as react from 'react';
|
|
3
3
|
import { ReactNode, PropsWithChildren, ReactElement, FC, ComponentClass, DependencyList, DetailedHTMLProps, HTMLAttributes } from 'react';
|
|
4
|
-
import { FunctionReturningPromise, PromiseType } from '
|
|
5
|
-
import { AsyncState, AsyncFnReturn } from 'react-use/lib/useAsyncFn';
|
|
4
|
+
import { FunctionReturningPromise as FunctionReturningPromise$1, PromiseType as PromiseType$1 } from './misc/types';
|
|
6
5
|
|
|
7
6
|
interface CaseProps {
|
|
8
7
|
cond?: BooleanLike;
|
|
@@ -55,6 +54,32 @@ declare function Trans({ i18nKey, ...additionalProps }: TransProps): ReactNode[]
|
|
|
55
54
|
|
|
56
55
|
declare function useAsyncCallback<T extends (...args: any[]) => any>(fun: T): readonly [boolean, T, Error | undefined];
|
|
57
56
|
|
|
57
|
+
declare type PromiseType<P extends Promise<any>> = P extends Promise<infer T> ? T : never;
|
|
58
|
+
declare type FunctionReturningPromise = (...args: any[]) => Promise<any>;
|
|
59
|
+
|
|
60
|
+
declare type AsyncState<T> = {
|
|
61
|
+
loading: boolean;
|
|
62
|
+
error?: undefined;
|
|
63
|
+
value?: undefined;
|
|
64
|
+
} | {
|
|
65
|
+
loading: true;
|
|
66
|
+
error?: Error | undefined;
|
|
67
|
+
value?: T;
|
|
68
|
+
} | {
|
|
69
|
+
loading: false;
|
|
70
|
+
error: Error;
|
|
71
|
+
value?: undefined;
|
|
72
|
+
} | {
|
|
73
|
+
loading: false;
|
|
74
|
+
error?: undefined;
|
|
75
|
+
value: T;
|
|
76
|
+
};
|
|
77
|
+
declare type StateFromFunctionReturningPromise$1<T extends FunctionReturningPromise$1> = AsyncState<PromiseType$1<ReturnType<T>>>;
|
|
78
|
+
declare type AsyncFnReturn<T extends FunctionReturningPromise$1 = FunctionReturningPromise$1> = [
|
|
79
|
+
StateFromFunctionReturningPromise$1<T>,
|
|
80
|
+
T
|
|
81
|
+
];
|
|
82
|
+
|
|
58
83
|
type StateFromFunctionReturningPromise<T extends FunctionReturningPromise> = AsyncState<PromiseType<ReturnType<T>>>;
|
|
59
84
|
interface UseAsyncStateOptions<T extends FunctionReturningPromise> {
|
|
60
85
|
immediate?: boolean;
|
|
@@ -107,5 +132,9 @@ type Argument = Value | Mapping | ArgumentArray | ReadonlyArgumentArray;
|
|
|
107
132
|
* A simple JavaScript utility for conditionally joining classNames together.
|
|
108
133
|
*/
|
|
109
134
|
declare function cls(...args: ArgumentArray): string;
|
|
135
|
+
declare namespace cls {
|
|
136
|
+
var parse: (arg: any) => string;
|
|
137
|
+
var append: (value: any, newClass: any) => any;
|
|
138
|
+
}
|
|
110
139
|
|
|
111
140
|
export { type Argument, type ArgumentArray, Case, type CaseProps, Default, Else, type EventBusListener, type FetchRequestInterceptCallback, type FetchResponseInterceptCallback, If, type IfProps, type InjectComponent, Injector, type InjectorProps, type Mapping, type PropWithHtmlProps, type ReadonlyArgumentArray, type StateFromFunctionReturningPromise, Switch, type SwitchProps, Then, Trans, type TransProps, Unless, type UnlessProps, type UseAsyncStateOptions, type Value, type WatchCallback, type WatchOptions, cls, useAsyncCallback, useAsyncState, useDebounce, useEventBus, useFetchRequestIntercept, useFetchResponseIntercept, useMounted, useWatch, useWhenever };
|
package/dist/index.global.js
CHANGED
|
@@ -494,14 +494,14 @@ var LibReact = (() => {
|
|
|
494
494
|
var hasOwn = {}.hasOwnProperty;
|
|
495
495
|
function cls(...args) {
|
|
496
496
|
let classes = "";
|
|
497
|
-
for (let i2 = 0; i2 <
|
|
498
|
-
const arg =
|
|
497
|
+
for (let i2 = 0; i2 < args.length; i2++) {
|
|
498
|
+
const arg = args[i2];
|
|
499
499
|
if (arg)
|
|
500
|
-
classes =
|
|
500
|
+
classes = cls.append(classes, cls.parse(arg));
|
|
501
501
|
}
|
|
502
502
|
return classes;
|
|
503
503
|
}
|
|
504
|
-
function
|
|
504
|
+
cls.parse = function(arg) {
|
|
505
505
|
if (typeof arg === "string")
|
|
506
506
|
return arg;
|
|
507
507
|
if (typeof arg !== "object")
|
|
@@ -513,14 +513,14 @@ var LibReact = (() => {
|
|
|
513
513
|
let classes = "";
|
|
514
514
|
for (const key in arg) {
|
|
515
515
|
if (hasOwn.call(arg, key) && arg[key])
|
|
516
|
-
classes =
|
|
516
|
+
classes = cls.append(classes, key);
|
|
517
517
|
}
|
|
518
518
|
return classes;
|
|
519
|
-
}
|
|
520
|
-
function
|
|
519
|
+
};
|
|
520
|
+
cls.append = function(value, newClass) {
|
|
521
521
|
if (!newClass)
|
|
522
522
|
return value;
|
|
523
523
|
return value ? `${value} ${newClass}` : newClass;
|
|
524
|
-
}
|
|
524
|
+
};
|
|
525
525
|
return __toCommonJS(index_exports);
|
|
526
526
|
})();
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
2
|
+
var __esm = (fn, res) => function __init() {
|
|
3
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
// ../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs
|
|
7
|
+
var __assign;
|
|
8
|
+
var init_tslib_es6 = __esm({
|
|
9
|
+
"../../node_modules/.pnpm/tslib@2.8.1/node_modules/tslib/tslib.es6.mjs"() {
|
|
10
|
+
"use strict";
|
|
11
|
+
__assign = function() {
|
|
12
|
+
__assign = Object.assign || function __assign2(t) {
|
|
13
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
14
|
+
s = arguments[i];
|
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
|
16
|
+
}
|
|
17
|
+
return t;
|
|
18
|
+
};
|
|
19
|
+
return __assign.apply(this, arguments);
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
|
|
1
24
|
// src/components/condition/Case.ts
|
|
2
25
|
function Case(props) {
|
|
3
26
|
return props.children;
|
|
@@ -117,19 +140,86 @@ function useAsyncCallback(fun) {
|
|
|
117
140
|
return [loading, execute, error];
|
|
118
141
|
}
|
|
119
142
|
|
|
143
|
+
// ../../node_modules/.pnpm/react-use@17.6.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useAsyncFn.js
|
|
144
|
+
init_tslib_es6();
|
|
145
|
+
import { useCallback as useCallback2, useRef as useRef2, useState as useState2 } from "react";
|
|
146
|
+
|
|
147
|
+
// ../../node_modules/.pnpm/react-use@17.6.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMountedState.js
|
|
148
|
+
import { useCallback, useEffect, useRef } from "react";
|
|
149
|
+
function useMountedState() {
|
|
150
|
+
var mountedRef = useRef(false);
|
|
151
|
+
var get = useCallback(function() {
|
|
152
|
+
return mountedRef.current;
|
|
153
|
+
}, []);
|
|
154
|
+
useEffect(function() {
|
|
155
|
+
mountedRef.current = true;
|
|
156
|
+
return function() {
|
|
157
|
+
mountedRef.current = false;
|
|
158
|
+
};
|
|
159
|
+
}, []);
|
|
160
|
+
return get;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
// ../../node_modules/.pnpm/react-use@17.6.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useAsyncFn.js
|
|
164
|
+
function useAsyncFn(fn, deps, initialState) {
|
|
165
|
+
if (deps === void 0) {
|
|
166
|
+
deps = [];
|
|
167
|
+
}
|
|
168
|
+
if (initialState === void 0) {
|
|
169
|
+
initialState = { loading: false };
|
|
170
|
+
}
|
|
171
|
+
var lastCallId = useRef2(0);
|
|
172
|
+
var isMounted = useMountedState();
|
|
173
|
+
var _a = useState2(initialState), state = _a[0], set = _a[1];
|
|
174
|
+
var callback = useCallback2(function() {
|
|
175
|
+
var args = [];
|
|
176
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
177
|
+
args[_i] = arguments[_i];
|
|
178
|
+
}
|
|
179
|
+
var callId = ++lastCallId.current;
|
|
180
|
+
if (!state.loading) {
|
|
181
|
+
set(function(prevState) {
|
|
182
|
+
return __assign(__assign({}, prevState), { loading: true });
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
return fn.apply(void 0, args).then(function(value) {
|
|
186
|
+
isMounted() && callId === lastCallId.current && set({ value, loading: false });
|
|
187
|
+
return value;
|
|
188
|
+
}, function(error) {
|
|
189
|
+
isMounted() && callId === lastCallId.current && set({ error, loading: false });
|
|
190
|
+
return error;
|
|
191
|
+
});
|
|
192
|
+
}, deps);
|
|
193
|
+
return [state, callback];
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// ../../node_modules/.pnpm/react-use@17.6.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useEffectOnce.js
|
|
197
|
+
import { useEffect as useEffect2 } from "react";
|
|
198
|
+
var useEffectOnce = function(effect) {
|
|
199
|
+
useEffect2(effect, []);
|
|
200
|
+
};
|
|
201
|
+
var useEffectOnce_default = useEffectOnce;
|
|
202
|
+
|
|
203
|
+
// ../../node_modules/.pnpm/react-use@17.6.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-use/esm/useMount.js
|
|
204
|
+
var useMount = function(fn) {
|
|
205
|
+
useEffectOnce_default(function() {
|
|
206
|
+
fn();
|
|
207
|
+
});
|
|
208
|
+
};
|
|
209
|
+
var useMount_default = useMount;
|
|
210
|
+
|
|
120
211
|
// src/hooks/useAsyncState.ts
|
|
121
|
-
import { useAsyncFn, useMount } from "react-use";
|
|
122
212
|
function useAsyncState(fn, deps, options) {
|
|
123
213
|
const [state, _fn] = useAsyncFn(fn, deps, options?.initial);
|
|
124
|
-
|
|
214
|
+
useMount_default(() => options?.immediate && _fn());
|
|
125
215
|
return [state, _fn];
|
|
126
216
|
}
|
|
127
217
|
|
|
128
218
|
// src/hooks/useDebounce.ts
|
|
129
|
-
import { useEffect, useState as
|
|
219
|
+
import { useEffect as useEffect3, useState as useState3 } from "react";
|
|
130
220
|
function useDebounce(value, delay) {
|
|
131
|
-
const [debouncedValue, setDebouncedValue] =
|
|
132
|
-
|
|
221
|
+
const [debouncedValue, setDebouncedValue] = useState3(value);
|
|
222
|
+
useEffect3(() => {
|
|
133
223
|
const handler = setTimeout(() => setDebouncedValue(value), delay);
|
|
134
224
|
return () => clearTimeout(handler);
|
|
135
225
|
}, [value, delay]);
|
|
@@ -138,14 +228,14 @@ function useDebounce(value, delay) {
|
|
|
138
228
|
|
|
139
229
|
// src/hooks/useEventBus.ts
|
|
140
230
|
import mitt from "mitt";
|
|
141
|
-
import { useEffect as
|
|
231
|
+
import { useEffect as useEffect4, useRef as useRef3 } from "react";
|
|
142
232
|
var emitter = mitt();
|
|
143
233
|
function useEventBus(key) {
|
|
144
|
-
const onRef =
|
|
234
|
+
const onRef = useRef3();
|
|
145
235
|
function on(listener) {
|
|
146
236
|
emitter.on(key, listener);
|
|
147
237
|
onRef.current = listener;
|
|
148
|
-
|
|
238
|
+
useEffect4(() => {
|
|
149
239
|
if (!onRef.current)
|
|
150
240
|
return;
|
|
151
241
|
emitter.off(key, onRef.current);
|
|
@@ -168,12 +258,11 @@ function useEventBus(key) {
|
|
|
168
258
|
}
|
|
169
259
|
|
|
170
260
|
// src/hooks/useFetchIntercept.ts
|
|
171
|
-
import { useMount as useMount2 } from "react-use";
|
|
172
261
|
function useFetchResponseIntercept(intercept) {
|
|
173
|
-
|
|
262
|
+
useMount_default(() => fetchResponseIntercept(intercept));
|
|
174
263
|
}
|
|
175
264
|
function useFetchRequestIntercept(intercept) {
|
|
176
|
-
|
|
265
|
+
useMount_default(() => fetchRequestIntercept(intercept));
|
|
177
266
|
}
|
|
178
267
|
function fetchResponseIntercept(intercept) {
|
|
179
268
|
const { fetch: originalFetch } = window;
|
|
@@ -192,23 +281,23 @@ function fetchRequestIntercept(intercept) {
|
|
|
192
281
|
}
|
|
193
282
|
|
|
194
283
|
// src/hooks/useMounted.ts
|
|
195
|
-
import { useEffect as
|
|
284
|
+
import { useEffect as useEffect5, useState as useState4 } from "react";
|
|
196
285
|
function useMounted() {
|
|
197
|
-
const [mounted, setMounted] =
|
|
198
|
-
|
|
286
|
+
const [mounted, setMounted] = useState4(false);
|
|
287
|
+
useEffect5(() => setMounted(true), []);
|
|
199
288
|
return mounted;
|
|
200
289
|
}
|
|
201
290
|
|
|
202
291
|
// src/hooks/useWatch.ts
|
|
203
|
-
import { useEffect as
|
|
292
|
+
import { useEffect as useEffect6, useMemo as useMemo2, useRef as useRef4 } from "react";
|
|
204
293
|
function useWatch(source, callback, options = {}) {
|
|
205
|
-
const firstUpdate =
|
|
206
|
-
const then =
|
|
294
|
+
const firstUpdate = useRef4(false);
|
|
295
|
+
const then = useRef4();
|
|
207
296
|
const deps = useMemo2(
|
|
208
297
|
() => Array.isArray(source) ? source : [source],
|
|
209
298
|
[source]
|
|
210
299
|
);
|
|
211
|
-
|
|
300
|
+
useEffect6(() => {
|
|
212
301
|
if (!firstUpdate.current)
|
|
213
302
|
recordFirst();
|
|
214
303
|
else
|
|
@@ -233,14 +322,14 @@ function useWhenever(source, cb, options) {
|
|
|
233
322
|
var hasOwn = {}.hasOwnProperty;
|
|
234
323
|
function cls(...args) {
|
|
235
324
|
let classes = "";
|
|
236
|
-
for (let i = 0; i <
|
|
237
|
-
const arg =
|
|
325
|
+
for (let i = 0; i < args.length; i++) {
|
|
326
|
+
const arg = args[i];
|
|
238
327
|
if (arg)
|
|
239
|
-
classes =
|
|
328
|
+
classes = cls.append(classes, cls.parse(arg));
|
|
240
329
|
}
|
|
241
330
|
return classes;
|
|
242
331
|
}
|
|
243
|
-
function
|
|
332
|
+
cls.parse = function(arg) {
|
|
244
333
|
if (typeof arg === "string")
|
|
245
334
|
return arg;
|
|
246
335
|
if (typeof arg !== "object")
|
|
@@ -252,15 +341,15 @@ function parseValue(arg) {
|
|
|
252
341
|
let classes = "";
|
|
253
342
|
for (const key in arg) {
|
|
254
343
|
if (hasOwn.call(arg, key) && arg[key])
|
|
255
|
-
classes =
|
|
344
|
+
classes = cls.append(classes, key);
|
|
256
345
|
}
|
|
257
346
|
return classes;
|
|
258
|
-
}
|
|
259
|
-
function
|
|
347
|
+
};
|
|
348
|
+
cls.append = function(value, newClass) {
|
|
260
349
|
if (!newClass)
|
|
261
350
|
return value;
|
|
262
351
|
return value ? `${value} ${newClass}` : newClass;
|
|
263
|
-
}
|
|
352
|
+
};
|
|
264
353
|
export {
|
|
265
354
|
Case,
|
|
266
355
|
Default,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hairy/react-lib",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.7.0",
|
|
5
5
|
"description": "Library for react",
|
|
6
6
|
"author": "Hairyf <wwu710632@gmail.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -29,16 +29,16 @@
|
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"html-parse-stringify": "^3.0.1",
|
|
31
31
|
"mitt": "^3.0.1",
|
|
32
|
-
"
|
|
32
|
+
"valtio": "^2"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
|
-
"@types/node": "^20.11.7",
|
|
36
35
|
"@types/react": "^18.2.43",
|
|
37
36
|
"@types/react-dom": "^18.2.17",
|
|
38
37
|
"react": "^18.2.0",
|
|
39
38
|
"react-dom": "^18.2.0",
|
|
40
39
|
"react-i18next": "^14.1.2",
|
|
41
|
-
"
|
|
40
|
+
"react-use": "^17.6.0",
|
|
41
|
+
"@hairy/utils": "1.7.0"
|
|
42
42
|
},
|
|
43
43
|
"scripts": {
|
|
44
44
|
"build": "tsup",
|