@reactuses/core 5.0.22 → 5.0.23-beta.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/dist/index.cjs +245 -48
- package/dist/index.d.cts +159 -1
- package/dist/index.d.mts +159 -1
- package/dist/index.d.ts +159 -1
- package/dist/index.mjs +245 -49
- package/package.json +2 -1
package/dist/index.cjs
CHANGED
|
@@ -5,6 +5,7 @@ var lodashEs = require('lodash-es');
|
|
|
5
5
|
var Cookies = require('js-cookie');
|
|
6
6
|
var screenfull = require('screenfull');
|
|
7
7
|
var index_js = require('use-sync-external-store/shim/index.js');
|
|
8
|
+
var fetchEventSource = require('@microsoft/fetch-event-source');
|
|
8
9
|
|
|
9
10
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
11
|
|
|
@@ -153,7 +154,7 @@ function useMountedState() {
|
|
|
153
154
|
return get;
|
|
154
155
|
}
|
|
155
156
|
|
|
156
|
-
function asyncGeneratorStep$
|
|
157
|
+
function asyncGeneratorStep$7(gen, resolve, reject, _next, _throw, key, arg) {
|
|
157
158
|
try {
|
|
158
159
|
var info = gen[key](arg);
|
|
159
160
|
var value = info.value;
|
|
@@ -167,16 +168,16 @@ function asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, key, arg) {
|
|
|
167
168
|
Promise.resolve(value).then(_next, _throw);
|
|
168
169
|
}
|
|
169
170
|
}
|
|
170
|
-
function _async_to_generator$
|
|
171
|
+
function _async_to_generator$7(fn) {
|
|
171
172
|
return function() {
|
|
172
173
|
var self = this, args = arguments;
|
|
173
174
|
return new Promise(function(resolve, reject) {
|
|
174
175
|
var gen = fn.apply(self, args);
|
|
175
176
|
function _next(value) {
|
|
176
|
-
asyncGeneratorStep$
|
|
177
|
+
asyncGeneratorStep$7(gen, resolve, reject, _next, _throw, "next", value);
|
|
177
178
|
}
|
|
178
179
|
function _throw(err) {
|
|
179
|
-
asyncGeneratorStep$
|
|
180
|
+
asyncGeneratorStep$7(gen, resolve, reject, _next, _throw, "throw", err);
|
|
180
181
|
}
|
|
181
182
|
_next(undefined);
|
|
182
183
|
});
|
|
@@ -185,7 +186,7 @@ function _async_to_generator$6(fn) {
|
|
|
185
186
|
const useAsyncEffect = (effect, cleanup = noop, deps)=>{
|
|
186
187
|
const mounted = useMountedState();
|
|
187
188
|
React.useEffect(()=>{
|
|
188
|
-
const execute = /*#__PURE__*/ _async_to_generator$
|
|
189
|
+
const execute = /*#__PURE__*/ _async_to_generator$7(function*() {
|
|
189
190
|
if (!mounted()) {
|
|
190
191
|
return;
|
|
191
192
|
}
|
|
@@ -1204,7 +1205,7 @@ function useSupported(callback, sync = false) {
|
|
|
1204
1205
|
return supported;
|
|
1205
1206
|
}
|
|
1206
1207
|
|
|
1207
|
-
function asyncGeneratorStep$
|
|
1208
|
+
function asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, key, arg) {
|
|
1208
1209
|
try {
|
|
1209
1210
|
var info = gen[key](arg);
|
|
1210
1211
|
var value = info.value;
|
|
@@ -1218,16 +1219,16 @@ function asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, key, arg) {
|
|
|
1218
1219
|
Promise.resolve(value).then(_next, _throw);
|
|
1219
1220
|
}
|
|
1220
1221
|
}
|
|
1221
|
-
function _async_to_generator$
|
|
1222
|
+
function _async_to_generator$6(fn) {
|
|
1222
1223
|
return function() {
|
|
1223
1224
|
var self = this, args = arguments;
|
|
1224
1225
|
return new Promise(function(resolve, reject) {
|
|
1225
1226
|
var gen = fn.apply(self, args);
|
|
1226
1227
|
function _next(value) {
|
|
1227
|
-
asyncGeneratorStep$
|
|
1228
|
+
asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, "next", value);
|
|
1228
1229
|
}
|
|
1229
1230
|
function _throw(err) {
|
|
1230
|
-
asyncGeneratorStep$
|
|
1231
|
+
asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, "throw", err);
|
|
1231
1232
|
}
|
|
1232
1233
|
_next(undefined);
|
|
1233
1234
|
});
|
|
@@ -1235,7 +1236,7 @@ function _async_to_generator$5(fn) {
|
|
|
1235
1236
|
}
|
|
1236
1237
|
const useEyeDropper = ()=>{
|
|
1237
1238
|
const isSupported = useSupported(()=>typeof window !== 'undefined' && 'EyeDropper' in window, true);
|
|
1238
|
-
const open = React.useCallback(/*#__PURE__*/ _async_to_generator$
|
|
1239
|
+
const open = React.useCallback(/*#__PURE__*/ _async_to_generator$6(function*(options = {}) {
|
|
1239
1240
|
if (!isSupported) {
|
|
1240
1241
|
return {
|
|
1241
1242
|
sRGBHex: ''
|
|
@@ -1270,7 +1271,7 @@ function useFavicon(href, baseUrl = '', rel = 'icon') {
|
|
|
1270
1271
|
]);
|
|
1271
1272
|
}
|
|
1272
1273
|
|
|
1273
|
-
function asyncGeneratorStep$
|
|
1274
|
+
function asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, key, arg) {
|
|
1274
1275
|
try {
|
|
1275
1276
|
var info = gen[key](arg);
|
|
1276
1277
|
var value = info.value;
|
|
@@ -1284,23 +1285,23 @@ function asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, key, arg) {
|
|
|
1284
1285
|
Promise.resolve(value).then(_next, _throw);
|
|
1285
1286
|
}
|
|
1286
1287
|
}
|
|
1287
|
-
function _async_to_generator$
|
|
1288
|
+
function _async_to_generator$5(fn) {
|
|
1288
1289
|
return function() {
|
|
1289
1290
|
var self = this, args = arguments;
|
|
1290
1291
|
return new Promise(function(resolve, reject) {
|
|
1291
1292
|
var gen = fn.apply(self, args);
|
|
1292
1293
|
function _next(value) {
|
|
1293
|
-
asyncGeneratorStep$
|
|
1294
|
+
asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "next", value);
|
|
1294
1295
|
}
|
|
1295
1296
|
function _throw(err) {
|
|
1296
|
-
asyncGeneratorStep$
|
|
1297
|
+
asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "throw", err);
|
|
1297
1298
|
}
|
|
1298
1299
|
_next(undefined);
|
|
1299
1300
|
});
|
|
1300
1301
|
};
|
|
1301
1302
|
}
|
|
1302
|
-
function _extends$
|
|
1303
|
-
_extends$
|
|
1303
|
+
function _extends$3() {
|
|
1304
|
+
_extends$3 = Object.assign || function(target) {
|
|
1304
1305
|
for(var i = 1; i < arguments.length; i++){
|
|
1305
1306
|
var source = arguments[i];
|
|
1306
1307
|
for(var key in source){
|
|
@@ -1311,7 +1312,7 @@ function _extends$2() {
|
|
|
1311
1312
|
}
|
|
1312
1313
|
return target;
|
|
1313
1314
|
};
|
|
1314
|
-
return _extends$
|
|
1315
|
+
return _extends$3.apply(this, arguments);
|
|
1315
1316
|
}
|
|
1316
1317
|
const DEFAULT_OPTIONS = {
|
|
1317
1318
|
multiple: true,
|
|
@@ -1336,11 +1337,11 @@ const useFileDialog = (options = defaultOptions$1)=>{
|
|
|
1336
1337
|
return input;
|
|
1337
1338
|
}, []);
|
|
1338
1339
|
inputRef.current = initFn();
|
|
1339
|
-
const open = /*#__PURE__*/ _async_to_generator$
|
|
1340
|
+
const open = /*#__PURE__*/ _async_to_generator$5(function*(localOptions) {
|
|
1340
1341
|
if (!inputRef.current) {
|
|
1341
1342
|
return;
|
|
1342
1343
|
}
|
|
1343
|
-
const _options = _extends$
|
|
1344
|
+
const _options = _extends$3({}, DEFAULT_OPTIONS, options, localOptions);
|
|
1344
1345
|
inputRef.current.multiple = _options.multiple;
|
|
1345
1346
|
inputRef.current.accept = _options.accept;
|
|
1346
1347
|
inputRef.current.capture = _options.capture;
|
|
@@ -1746,7 +1747,7 @@ const createUpdateEffect = (hook)=>(effect, deps)=>{
|
|
|
1746
1747
|
|
|
1747
1748
|
const useUpdateEffect = createUpdateEffect(React.useEffect);
|
|
1748
1749
|
|
|
1749
|
-
function asyncGeneratorStep$
|
|
1750
|
+
function asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, key, arg) {
|
|
1750
1751
|
try {
|
|
1751
1752
|
var info = gen[key](arg);
|
|
1752
1753
|
var value = info.value;
|
|
@@ -1760,23 +1761,23 @@ function asyncGeneratorStep$3(gen, resolve, reject, _next, _throw, key, arg) {
|
|
|
1760
1761
|
Promise.resolve(value).then(_next, _throw);
|
|
1761
1762
|
}
|
|
1762
1763
|
}
|
|
1763
|
-
function _async_to_generator$
|
|
1764
|
+
function _async_to_generator$4(fn) {
|
|
1764
1765
|
return function() {
|
|
1765
1766
|
var self = this, args = arguments;
|
|
1766
1767
|
return new Promise(function(resolve, reject) {
|
|
1767
1768
|
var gen = fn.apply(self, args);
|
|
1768
1769
|
function _next(value) {
|
|
1769
|
-
asyncGeneratorStep$
|
|
1770
|
+
asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "next", value);
|
|
1770
1771
|
}
|
|
1771
1772
|
function _throw(err) {
|
|
1772
|
-
asyncGeneratorStep$
|
|
1773
|
+
asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "throw", err);
|
|
1773
1774
|
}
|
|
1774
1775
|
_next(undefined);
|
|
1775
1776
|
});
|
|
1776
1777
|
};
|
|
1777
1778
|
}
|
|
1778
|
-
function _extends$
|
|
1779
|
-
_extends$
|
|
1779
|
+
function _extends$2() {
|
|
1780
|
+
_extends$2 = Object.assign || function(target) {
|
|
1780
1781
|
for(var i = 1; i < arguments.length; i++){
|
|
1781
1782
|
var source = arguments[i];
|
|
1782
1783
|
for(var key in source){
|
|
@@ -1787,22 +1788,22 @@ function _extends$1() {
|
|
|
1787
1788
|
}
|
|
1788
1789
|
return target;
|
|
1789
1790
|
};
|
|
1790
|
-
return _extends$
|
|
1791
|
+
return _extends$2.apply(this, arguments);
|
|
1791
1792
|
}
|
|
1792
1793
|
const useInfiniteScroll = (target, onLoadMore, options = defaultOptions$1)=>{
|
|
1793
1794
|
const savedLoadMore = useLatest(onLoadMore);
|
|
1794
1795
|
var _options_direction;
|
|
1795
1796
|
const direction = (_options_direction = options.direction) != null ? _options_direction : 'bottom';
|
|
1796
1797
|
var _options_distance;
|
|
1797
|
-
const state = useScroll(target, _extends$
|
|
1798
|
-
offset: _extends$
|
|
1798
|
+
const state = useScroll(target, _extends$2({}, options, {
|
|
1799
|
+
offset: _extends$2({
|
|
1799
1800
|
[direction]: (_options_distance = options.distance) != null ? _options_distance : 0
|
|
1800
1801
|
}, options.offset)
|
|
1801
1802
|
}));
|
|
1802
1803
|
const di = state[3][direction];
|
|
1803
1804
|
useUpdateEffect(()=>{
|
|
1804
1805
|
const element = getTargetElement(target);
|
|
1805
|
-
const fn = /*#__PURE__*/ _async_to_generator$
|
|
1806
|
+
const fn = /*#__PURE__*/ _async_to_generator$4(function*() {
|
|
1806
1807
|
var _element_scrollHeight, _element_scrollWidth;
|
|
1807
1808
|
const previous = {
|
|
1808
1809
|
height: (_element_scrollHeight = element == null ? void 0 : element.scrollHeight) != null ? _element_scrollHeight : 0,
|
|
@@ -1952,7 +1953,7 @@ const useMeasure = (target, options = defaultOptions$1)=>{
|
|
|
1952
1953
|
];
|
|
1953
1954
|
};
|
|
1954
1955
|
|
|
1955
|
-
function asyncGeneratorStep$
|
|
1956
|
+
function asyncGeneratorStep$3(gen, resolve, reject, _next, _throw, key, arg) {
|
|
1956
1957
|
try {
|
|
1957
1958
|
var info = gen[key](arg);
|
|
1958
1959
|
var value = info.value;
|
|
@@ -1966,16 +1967,16 @@ function asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, key, arg) {
|
|
|
1966
1967
|
Promise.resolve(value).then(_next, _throw);
|
|
1967
1968
|
}
|
|
1968
1969
|
}
|
|
1969
|
-
function _async_to_generator$
|
|
1970
|
+
function _async_to_generator$3(fn) {
|
|
1970
1971
|
return function() {
|
|
1971
1972
|
var self = this, args = arguments;
|
|
1972
1973
|
return new Promise(function(resolve, reject) {
|
|
1973
1974
|
var gen = fn.apply(self, args);
|
|
1974
1975
|
function _next(value) {
|
|
1975
|
-
asyncGeneratorStep$
|
|
1976
|
+
asyncGeneratorStep$3(gen, resolve, reject, _next, _throw, "next", value);
|
|
1976
1977
|
}
|
|
1977
1978
|
function _throw(err) {
|
|
1978
|
-
asyncGeneratorStep$
|
|
1979
|
+
asyncGeneratorStep$3(gen, resolve, reject, _next, _throw, "throw", err);
|
|
1979
1980
|
}
|
|
1980
1981
|
_next(undefined);
|
|
1981
1982
|
});
|
|
@@ -2009,7 +2010,7 @@ const useMediaDevices = (options = {})=>{
|
|
|
2009
2010
|
});
|
|
2010
2011
|
}).catch(noop);
|
|
2011
2012
|
}, []);
|
|
2012
|
-
const ensurePermissions = React.useCallback(/*#__PURE__*/ _async_to_generator$
|
|
2013
|
+
const ensurePermissions = React.useCallback(/*#__PURE__*/ _async_to_generator$3(function*() {
|
|
2013
2014
|
if (!isSupported) {
|
|
2014
2015
|
return false;
|
|
2015
2016
|
}
|
|
@@ -2892,8 +2893,8 @@ function useSessionStorage(key, defaultValue, options = defaultOptions$1) {
|
|
|
2892
2893
|
return useStorage(key, defaultValue, ()=>isBrowser ? sessionStorage : undefined, options);
|
|
2893
2894
|
}
|
|
2894
2895
|
|
|
2895
|
-
function _extends() {
|
|
2896
|
-
_extends = Object.assign || function(target) {
|
|
2896
|
+
function _extends$1() {
|
|
2897
|
+
_extends$1 = Object.assign || function(target) {
|
|
2897
2898
|
for(var i = 1; i < arguments.length; i++){
|
|
2898
2899
|
var source = arguments[i];
|
|
2899
2900
|
for(var key in source){
|
|
@@ -2904,11 +2905,11 @@ function _extends() {
|
|
|
2904
2905
|
}
|
|
2905
2906
|
return target;
|
|
2906
2907
|
};
|
|
2907
|
-
return _extends.apply(this, arguments);
|
|
2908
|
+
return _extends$1.apply(this, arguments);
|
|
2908
2909
|
}
|
|
2909
2910
|
const useSetState = (initialState)=>{
|
|
2910
2911
|
const [state, _setState] = React.useState(initialState);
|
|
2911
|
-
const setState = React.useCallback((statePartial)=>_setState((current)=>_extends({}, current, typeof statePartial === 'function' ? statePartial(current) : statePartial)), []);
|
|
2912
|
+
const setState = React.useCallback((statePartial)=>_setState((current)=>_extends$1({}, current, typeof statePartial === 'function' ? statePartial(current) : statePartial)), []);
|
|
2912
2913
|
return [
|
|
2913
2914
|
state,
|
|
2914
2915
|
setState
|
|
@@ -3094,7 +3095,7 @@ const useToggle = (initialValue)=>{
|
|
|
3094
3095
|
|
|
3095
3096
|
const useUpdateLayoutEffect = createUpdateEffect(React.useLayoutEffect);
|
|
3096
3097
|
|
|
3097
|
-
function asyncGeneratorStep$
|
|
3098
|
+
function asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, key, arg) {
|
|
3098
3099
|
try {
|
|
3099
3100
|
var info = gen[key](arg);
|
|
3100
3101
|
var value = info.value;
|
|
@@ -3108,16 +3109,16 @@ function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
|
|
|
3108
3109
|
Promise.resolve(value).then(_next, _throw);
|
|
3109
3110
|
}
|
|
3110
3111
|
}
|
|
3111
|
-
function _async_to_generator$
|
|
3112
|
+
function _async_to_generator$2(fn) {
|
|
3112
3113
|
return function() {
|
|
3113
3114
|
var self = this, args = arguments;
|
|
3114
3115
|
return new Promise(function(resolve, reject) {
|
|
3115
3116
|
var gen = fn.apply(self, args);
|
|
3116
3117
|
function _next(value) {
|
|
3117
|
-
asyncGeneratorStep$
|
|
3118
|
+
asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "next", value);
|
|
3118
3119
|
}
|
|
3119
3120
|
function _throw(err) {
|
|
3120
|
-
asyncGeneratorStep$
|
|
3121
|
+
asyncGeneratorStep$2(gen, resolve, reject, _next, _throw, "throw", err);
|
|
3121
3122
|
}
|
|
3122
3123
|
_next(undefined);
|
|
3123
3124
|
});
|
|
@@ -3147,7 +3148,7 @@ const useWebNotification = (requestPermissions = false)=>{
|
|
|
3147
3148
|
}, [
|
|
3148
3149
|
isSupported
|
|
3149
3150
|
]);
|
|
3150
|
-
const ensurePermissions = React.useCallback(/*#__PURE__*/ _async_to_generator$
|
|
3151
|
+
const ensurePermissions = React.useCallback(/*#__PURE__*/ _async_to_generator$2(function*() {
|
|
3151
3152
|
if (!isSupported) return;
|
|
3152
3153
|
if (!permissionGranted.current && Notification.permission !== 'denied') {
|
|
3153
3154
|
const result = yield Notification.requestPermission();
|
|
@@ -3258,7 +3259,7 @@ const useWindowSize = ()=>{
|
|
|
3258
3259
|
};
|
|
3259
3260
|
};
|
|
3260
3261
|
|
|
3261
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
3262
|
+
function asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, key, arg) {
|
|
3262
3263
|
try {
|
|
3263
3264
|
var info = gen[key](arg);
|
|
3264
3265
|
var value = info.value;
|
|
@@ -3272,16 +3273,16 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
|
3272
3273
|
Promise.resolve(value).then(_next, _throw);
|
|
3273
3274
|
}
|
|
3274
3275
|
}
|
|
3275
|
-
function _async_to_generator(fn) {
|
|
3276
|
+
function _async_to_generator$1(fn) {
|
|
3276
3277
|
return function() {
|
|
3277
3278
|
var self = this, args = arguments;
|
|
3278
3279
|
return new Promise(function(resolve, reject) {
|
|
3279
3280
|
var gen = fn.apply(self, args);
|
|
3280
3281
|
function _next(value) {
|
|
3281
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
3282
|
+
asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "next", value);
|
|
3282
3283
|
}
|
|
3283
3284
|
function _throw(err) {
|
|
3284
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
3285
|
+
asyncGeneratorStep$1(gen, resolve, reject, _next, _throw, "throw", err);
|
|
3285
3286
|
}
|
|
3286
3287
|
_next(undefined);
|
|
3287
3288
|
});
|
|
@@ -3296,7 +3297,7 @@ const useClipboard = ()=>{
|
|
|
3296
3297
|
}, []);
|
|
3297
3298
|
useEventListener('copy', updateText);
|
|
3298
3299
|
useEventListener('cut', updateText);
|
|
3299
|
-
const copy = React.useCallback(/*#__PURE__*/ _async_to_generator(function*(txt) {
|
|
3300
|
+
const copy = React.useCallback(/*#__PURE__*/ _async_to_generator$1(function*(txt) {
|
|
3300
3301
|
setText(txt);
|
|
3301
3302
|
yield window.navigator.clipboard.writeText(txt);
|
|
3302
3303
|
}), []);
|
|
@@ -3785,6 +3786,201 @@ const useElementByPoint = (options)=>{
|
|
|
3785
3786
|
};
|
|
3786
3787
|
};
|
|
3787
3788
|
|
|
3789
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
3790
|
+
try {
|
|
3791
|
+
var info = gen[key](arg);
|
|
3792
|
+
var value = info.value;
|
|
3793
|
+
} catch (error) {
|
|
3794
|
+
reject(error);
|
|
3795
|
+
return;
|
|
3796
|
+
}
|
|
3797
|
+
if (info.done) {
|
|
3798
|
+
resolve(value);
|
|
3799
|
+
} else {
|
|
3800
|
+
Promise.resolve(value).then(_next, _throw);
|
|
3801
|
+
}
|
|
3802
|
+
}
|
|
3803
|
+
function _async_to_generator(fn) {
|
|
3804
|
+
return function() {
|
|
3805
|
+
var self = this, args = arguments;
|
|
3806
|
+
return new Promise(function(resolve, reject) {
|
|
3807
|
+
var gen = fn.apply(self, args);
|
|
3808
|
+
function _next(value) {
|
|
3809
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
3810
|
+
}
|
|
3811
|
+
function _throw(err) {
|
|
3812
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
3813
|
+
}
|
|
3814
|
+
_next(undefined);
|
|
3815
|
+
});
|
|
3816
|
+
};
|
|
3817
|
+
}
|
|
3818
|
+
function _extends() {
|
|
3819
|
+
_extends = Object.assign || function(target) {
|
|
3820
|
+
for(var i = 1; i < arguments.length; i++){
|
|
3821
|
+
var source = arguments[i];
|
|
3822
|
+
for(var key in source){
|
|
3823
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
3824
|
+
target[key] = source[key];
|
|
3825
|
+
}
|
|
3826
|
+
}
|
|
3827
|
+
}
|
|
3828
|
+
return target;
|
|
3829
|
+
};
|
|
3830
|
+
return _extends.apply(this, arguments);
|
|
3831
|
+
}
|
|
3832
|
+
function _object_without_properties_loose(source, excluded) {
|
|
3833
|
+
if (source == null) return {};
|
|
3834
|
+
var target = {};
|
|
3835
|
+
var sourceKeys = Object.keys(source);
|
|
3836
|
+
var key, i;
|
|
3837
|
+
for(i = 0; i < sourceKeys.length; i++){
|
|
3838
|
+
key = sourceKeys[i];
|
|
3839
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
3840
|
+
target[key] = source[key];
|
|
3841
|
+
}
|
|
3842
|
+
return target;
|
|
3843
|
+
}
|
|
3844
|
+
const useFetchEventSource = (url, options = {})=>{
|
|
3845
|
+
const [data, setData] = React.useState(null);
|
|
3846
|
+
const [error, setError] = React.useState(null);
|
|
3847
|
+
const [status, setStatus] = React.useState("DISCONNECTED");
|
|
3848
|
+
const [event, setEvent] = React.useState(null);
|
|
3849
|
+
const [lastEventId, setLastEventId] = React.useState(null);
|
|
3850
|
+
const retries = React.useRef(0);
|
|
3851
|
+
const abortController = React.useRef(null);
|
|
3852
|
+
const explicitlyClosed = React.useRef(false);
|
|
3853
|
+
const close = useEvent(()=>{
|
|
3854
|
+
if (!explicitlyClosed.current) {
|
|
3855
|
+
var _abortController_current;
|
|
3856
|
+
explicitlyClosed.current = true;
|
|
3857
|
+
(_abortController_current = abortController.current) == null ? void 0 : _abortController_current.abort();
|
|
3858
|
+
abortController.current = null;
|
|
3859
|
+
setStatus("DISCONNECTED");
|
|
3860
|
+
options.onClose == null ? void 0 : options.onClose.call(options);
|
|
3861
|
+
}
|
|
3862
|
+
});
|
|
3863
|
+
const open = useEvent(/*#__PURE__*/ _async_to_generator(function*() {
|
|
3864
|
+
close();
|
|
3865
|
+
setStatus("CONNECTING");
|
|
3866
|
+
explicitlyClosed.current = false;
|
|
3867
|
+
retries.current = 0;
|
|
3868
|
+
// 创建新的 AbortController
|
|
3869
|
+
abortController.current = new AbortController();
|
|
3870
|
+
try {
|
|
3871
|
+
// 从选项中提取 FetchEventSourceInit 相关的选项
|
|
3872
|
+
const { immediate, autoReconnect, onOpen, onMessage, onError, onClose, withCredentials, body } = options, fetchOptions = _object_without_properties_loose(options, [
|
|
3873
|
+
"immediate",
|
|
3874
|
+
"autoReconnect",
|
|
3875
|
+
"onOpen",
|
|
3876
|
+
"onMessage",
|
|
3877
|
+
"onError",
|
|
3878
|
+
"onClose",
|
|
3879
|
+
"withCredentials",
|
|
3880
|
+
"body"
|
|
3881
|
+
]);
|
|
3882
|
+
// 构建请求配置
|
|
3883
|
+
const finalOptions = _extends({
|
|
3884
|
+
method: options.method || "GET",
|
|
3885
|
+
headers: _extends({
|
|
3886
|
+
Accept: "text/event-stream",
|
|
3887
|
+
"Cache-Control": "no-cache",
|
|
3888
|
+
Connection: "keep-alive"
|
|
3889
|
+
}, options.headers),
|
|
3890
|
+
signal: abortController.current.signal,
|
|
3891
|
+
credentials: withCredentials ? "include" : "same-origin"
|
|
3892
|
+
}, fetchOptions);
|
|
3893
|
+
// 只在 POST 请求时添加 body
|
|
3894
|
+
if (options.method === "POST" && body) {
|
|
3895
|
+
finalOptions.body = body;
|
|
3896
|
+
finalOptions.headers = _extends({}, finalOptions.headers, {
|
|
3897
|
+
"Content-Type": "application/json"
|
|
3898
|
+
});
|
|
3899
|
+
}
|
|
3900
|
+
yield fetchEventSource.fetchEventSource(url.toString(), _extends({}, finalOptions, {
|
|
3901
|
+
openWhenHidden: false,
|
|
3902
|
+
onopen (response) {
|
|
3903
|
+
return _async_to_generator(function*() {
|
|
3904
|
+
if (response.ok) {
|
|
3905
|
+
setStatus("CONNECTED");
|
|
3906
|
+
setError(null);
|
|
3907
|
+
options.onOpen == null ? void 0 : options.onOpen.call(options);
|
|
3908
|
+
} else {
|
|
3909
|
+
const error = new Error(`Failed to connect: ${response.status} ${response.statusText}`);
|
|
3910
|
+
setError(error);
|
|
3911
|
+
throw error;
|
|
3912
|
+
}
|
|
3913
|
+
})();
|
|
3914
|
+
},
|
|
3915
|
+
onmessage (msg) {
|
|
3916
|
+
if (!explicitlyClosed.current) {
|
|
3917
|
+
setData(msg.data);
|
|
3918
|
+
var _msg_id;
|
|
3919
|
+
setLastEventId((_msg_id = msg.id) != null ? _msg_id : null);
|
|
3920
|
+
setEvent(msg.event || null);
|
|
3921
|
+
options.onMessage == null ? void 0 : options.onMessage.call(options, msg);
|
|
3922
|
+
}
|
|
3923
|
+
},
|
|
3924
|
+
onerror (err) {
|
|
3925
|
+
setError(err);
|
|
3926
|
+
setStatus("DISCONNECTED");
|
|
3927
|
+
const retryDelay = options.onError == null ? void 0 : options.onError.call(options, err);
|
|
3928
|
+
if (options.autoReconnect && !explicitlyClosed.current) {
|
|
3929
|
+
const { retries: maxRetries = -1, delay = 1000, onFailed } = options.autoReconnect;
|
|
3930
|
+
retries.current += 1;
|
|
3931
|
+
if (typeof maxRetries === "number" && (maxRetries < 0 || retries.current < maxRetries) || typeof maxRetries === "function" && maxRetries()) {
|
|
3932
|
+
return retryDelay != null ? retryDelay : delay;
|
|
3933
|
+
} else {
|
|
3934
|
+
onFailed == null ? void 0 : onFailed();
|
|
3935
|
+
throw err;
|
|
3936
|
+
}
|
|
3937
|
+
}
|
|
3938
|
+
throw err;
|
|
3939
|
+
},
|
|
3940
|
+
onclose () {
|
|
3941
|
+
if (!explicitlyClosed.current) {
|
|
3942
|
+
setStatus("DISCONNECTED");
|
|
3943
|
+
options.onClose == null ? void 0 : options.onClose.call(options);
|
|
3944
|
+
}
|
|
3945
|
+
}
|
|
3946
|
+
}));
|
|
3947
|
+
} catch (err) {
|
|
3948
|
+
// 只处理非主动关闭导致的错误
|
|
3949
|
+
if (!explicitlyClosed.current) {
|
|
3950
|
+
console.error("EventSource Error:", err);
|
|
3951
|
+
setError(err);
|
|
3952
|
+
setStatus("DISCONNECTED");
|
|
3953
|
+
}
|
|
3954
|
+
}
|
|
3955
|
+
}));
|
|
3956
|
+
React.useEffect(()=>{
|
|
3957
|
+
if (options.immediate !== false) {
|
|
3958
|
+
open();
|
|
3959
|
+
}
|
|
3960
|
+
return ()=>{
|
|
3961
|
+
// 组件卸载时关闭连接
|
|
3962
|
+
close();
|
|
3963
|
+
};
|
|
3964
|
+
}, [
|
|
3965
|
+
open,
|
|
3966
|
+
close,
|
|
3967
|
+
options.immediate
|
|
3968
|
+
]);
|
|
3969
|
+
// 组件卸载时确保连接关闭
|
|
3970
|
+
useUnmount(()=>{
|
|
3971
|
+
close();
|
|
3972
|
+
});
|
|
3973
|
+
return {
|
|
3974
|
+
data,
|
|
3975
|
+
error,
|
|
3976
|
+
status,
|
|
3977
|
+
lastEventId,
|
|
3978
|
+
event,
|
|
3979
|
+
close,
|
|
3980
|
+
open
|
|
3981
|
+
};
|
|
3982
|
+
};
|
|
3983
|
+
|
|
3788
3984
|
exports.assignRef = assignRef;
|
|
3789
3985
|
exports.defaultOptions = defaultOptions;
|
|
3790
3986
|
exports.mergeRefs = mergeRefs;
|
|
@@ -3821,6 +4017,7 @@ exports.useEventListener = useEventListener;
|
|
|
3821
4017
|
exports.useEventSource = useEventSource;
|
|
3822
4018
|
exports.useEyeDropper = useEyeDropper;
|
|
3823
4019
|
exports.useFavicon = useFavicon;
|
|
4020
|
+
exports.useFetchEventSource = useFetchEventSource;
|
|
3824
4021
|
exports.useFileDialog = useFileDialog;
|
|
3825
4022
|
exports.useFirstMountState = useFirstMountState;
|
|
3826
4023
|
exports.useFocus = useFocus;
|