@reactuses/core 5.0.12 → 5.0.14

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 CHANGED
@@ -132,7 +132,7 @@ const useMountedState = ()=>{
132
132
  return get;
133
133
  };
134
134
 
135
- function asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, key, arg) {
135
+ function asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, key, arg) {
136
136
  try {
137
137
  var info = gen[key](arg);
138
138
  var value = info.value;
@@ -146,16 +146,16 @@ function asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, key, arg) {
146
146
  Promise.resolve(value).then(_next, _throw);
147
147
  }
148
148
  }
149
- function _async_to_generator$5(fn) {
149
+ function _async_to_generator$6(fn) {
150
150
  return function() {
151
151
  var self = this, args = arguments;
152
152
  return new Promise(function(resolve, reject) {
153
153
  var gen = fn.apply(self, args);
154
154
  function _next(value) {
155
- asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "next", value);
155
+ asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, "next", value);
156
156
  }
157
157
  function _throw(err) {
158
- asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "throw", err);
158
+ asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, "throw", err);
159
159
  }
160
160
  _next(undefined);
161
161
  });
@@ -164,7 +164,7 @@ function _async_to_generator$5(fn) {
164
164
  const useAsyncEffect = (effect, cleanup = noop, deps)=>{
165
165
  const mounted = useMountedState();
166
166
  React.useEffect(()=>{
167
- const execute = /*#__PURE__*/ _async_to_generator$5(function*() {
167
+ const execute = /*#__PURE__*/ _async_to_generator$6(function*() {
168
168
  if (!mounted()) {
169
169
  return;
170
170
  }
@@ -584,6 +584,7 @@ const getInitialState$2 = (key, defaultValue, storage, serializer, onError)=>{
584
584
  if (raw !== undefined && raw !== null) {
585
585
  return serializer == null ? void 0 : serializer.read(raw);
586
586
  }
587
+ return null;
587
588
  } catch (error) {
588
589
  onError == null ? void 0 : onError(error);
589
590
  }
@@ -607,7 +608,8 @@ function useStorage(key, defaultValue, getStorage = ()=>isBrowser ? sessionStora
607
608
  const serializer = (_options_serializer = options.serializer) != null ? _options_serializer : StorageSerializers[type];
608
609
  const [state, setState] = React.useState(getInitialState$2(key, defaultValue, storage, serializer, onError));
609
610
  useDeepCompareEffect(()=>{
610
- const data = effectStorageValue ? isFunction(effectStorageValue) ? effectStorageValue() : effectStorageValue : defaultValue;
611
+ var _ref;
612
+ const data = (_ref = effectStorageValue ? isFunction(effectStorageValue) ? effectStorageValue() : effectStorageValue : defaultValue) != null ? _ref : null;
611
613
  const getStoredValue = ()=>{
612
614
  try {
613
615
  const raw = storage == null ? void 0 : storage.getItem(key);
@@ -1158,7 +1160,7 @@ const useSupported = (callback, sync = false)=>{
1158
1160
  return supported;
1159
1161
  };
1160
1162
 
1161
- function asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, key, arg) {
1163
+ function asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, key, arg) {
1162
1164
  try {
1163
1165
  var info = gen[key](arg);
1164
1166
  var value = info.value;
@@ -1172,16 +1174,16 @@ function asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, key, arg) {
1172
1174
  Promise.resolve(value).then(_next, _throw);
1173
1175
  }
1174
1176
  }
1175
- function _async_to_generator$4(fn) {
1177
+ function _async_to_generator$5(fn) {
1176
1178
  return function() {
1177
1179
  var self = this, args = arguments;
1178
1180
  return new Promise(function(resolve, reject) {
1179
1181
  var gen = fn.apply(self, args);
1180
1182
  function _next(value) {
1181
- asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "next", value);
1183
+ asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "next", value);
1182
1184
  }
1183
1185
  function _throw(err) {
1184
- asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "throw", err);
1186
+ asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "throw", err);
1185
1187
  }
1186
1188
  _next(undefined);
1187
1189
  });
@@ -1189,7 +1191,7 @@ function _async_to_generator$4(fn) {
1189
1191
  }
1190
1192
  const useEyeDropper = ()=>{
1191
1193
  const isSupported = useSupported(()=>typeof window !== "undefined" && "EyeDropper" in window, true);
1192
- const open = React.useCallback(/*#__PURE__*/ _async_to_generator$4(function*(options = {}) {
1194
+ const open = React.useCallback(/*#__PURE__*/ _async_to_generator$5(function*(options = {}) {
1193
1195
  if (!isSupported) {
1194
1196
  return {
1195
1197
  sRGBHex: ""
@@ -1224,6 +1226,35 @@ const useFavicon = (href, baseUrl = "", rel = "icon")=>{
1224
1226
  ]);
1225
1227
  };
1226
1228
 
1229
+ function asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, key, arg) {
1230
+ try {
1231
+ var info = gen[key](arg);
1232
+ var value = info.value;
1233
+ } catch (error) {
1234
+ reject(error);
1235
+ return;
1236
+ }
1237
+ if (info.done) {
1238
+ resolve(value);
1239
+ } else {
1240
+ Promise.resolve(value).then(_next, _throw);
1241
+ }
1242
+ }
1243
+ function _async_to_generator$4(fn) {
1244
+ return function() {
1245
+ var self = this, args = arguments;
1246
+ return new Promise(function(resolve, reject) {
1247
+ var gen = fn.apply(self, args);
1248
+ function _next(value) {
1249
+ asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "next", value);
1250
+ }
1251
+ function _throw(err) {
1252
+ asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "throw", err);
1253
+ }
1254
+ _next(undefined);
1255
+ });
1256
+ };
1257
+ }
1227
1258
  function _extends$2() {
1228
1259
  _extends$2 = Object.assign || function(target) {
1229
1260
  for(var i = 1; i < arguments.length; i++){
@@ -1245,6 +1276,8 @@ const DEFAULT_OPTIONS = {
1245
1276
  const useFileDialog = (options = defaultOptions$1)=>{
1246
1277
  const [files, setFiles] = React.useState(null);
1247
1278
  const inputRef = React.useRef();
1279
+ const fileOpenPromiseRef = React.useRef(null);
1280
+ const resolveFileOpenPromiseRef = React.useRef();
1248
1281
  const initFn = React.useCallback(()=>{
1249
1282
  if (typeof document === "undefined") {
1250
1283
  return undefined;
@@ -1254,11 +1287,12 @@ const useFileDialog = (options = defaultOptions$1)=>{
1254
1287
  input.onchange = (event)=>{
1255
1288
  const result = event.target;
1256
1289
  setFiles(result.files);
1290
+ resolveFileOpenPromiseRef.current == null ? void 0 : resolveFileOpenPromiseRef.current.call(resolveFileOpenPromiseRef, result.files);
1257
1291
  };
1258
1292
  return input;
1259
1293
  }, []);
1260
1294
  inputRef.current = initFn();
1261
- const open = (localOptions)=>{
1295
+ const open = /*#__PURE__*/ _async_to_generator$4(function*(localOptions) {
1262
1296
  if (!inputRef.current) {
1263
1297
  return;
1264
1298
  }
@@ -1266,10 +1300,15 @@ const useFileDialog = (options = defaultOptions$1)=>{
1266
1300
  inputRef.current.multiple = _options.multiple;
1267
1301
  inputRef.current.accept = _options.accept;
1268
1302
  inputRef.current.capture = _options.capture;
1303
+ fileOpenPromiseRef.current = new Promise((resolve)=>{
1304
+ resolveFileOpenPromiseRef.current = resolve;
1305
+ });
1269
1306
  inputRef.current.click();
1270
- };
1307
+ return fileOpenPromiseRef.current;
1308
+ });
1271
1309
  const reset = ()=>{
1272
1310
  setFiles(null);
1311
+ resolveFileOpenPromiseRef.current == null ? void 0 : resolveFileOpenPromiseRef.current.call(resolveFileOpenPromiseRef, null);
1273
1312
  if (inputRef.current) {
1274
1313
  inputRef.current.value = "";
1275
1314
  }
package/dist/index.d.cts CHANGED
@@ -825,7 +825,7 @@ declare const useFavicon: (href: string, baseUrl?: string, rel?: string) => void
825
825
  */
826
826
  type UseFileDialog = (options?: UseFileDialogOptions) => readonly [
827
827
  FileList | null,
828
- (localOptions?: Partial<UseFileDialogOptions>) => void,
828
+ (localOptions?: Partial<UseFileDialogOptions>) => Promise<FileList | null | undefined>,
829
829
  () => void
830
830
  ];
831
831
  /**
@@ -1334,9 +1334,9 @@ interface UseIntervalOptions {
1334
1334
  */
1335
1335
  immediate?: boolean;
1336
1336
  /**
1337
- * @zh 是否控制执行。
1338
- * @en Whether to control execution.
1339
- */
1337
+ * @zh 是否控制执行。
1338
+ * @en Whether to control execution.
1339
+ */
1340
1340
  controls?: boolean;
1341
1341
  }
1342
1342
  /**
package/dist/index.d.mts CHANGED
@@ -825,7 +825,7 @@ declare const useFavicon: (href: string, baseUrl?: string, rel?: string) => void
825
825
  */
826
826
  type UseFileDialog = (options?: UseFileDialogOptions) => readonly [
827
827
  FileList | null,
828
- (localOptions?: Partial<UseFileDialogOptions>) => void,
828
+ (localOptions?: Partial<UseFileDialogOptions>) => Promise<FileList | null | undefined>,
829
829
  () => void
830
830
  ];
831
831
  /**
@@ -1334,9 +1334,9 @@ interface UseIntervalOptions {
1334
1334
  */
1335
1335
  immediate?: boolean;
1336
1336
  /**
1337
- * @zh 是否控制执行。
1338
- * @en Whether to control execution.
1339
- */
1337
+ * @zh 是否控制执行。
1338
+ * @en Whether to control execution.
1339
+ */
1340
1340
  controls?: boolean;
1341
1341
  }
1342
1342
  /**
package/dist/index.d.ts CHANGED
@@ -825,7 +825,7 @@ declare const useFavicon: (href: string, baseUrl?: string, rel?: string) => void
825
825
  */
826
826
  type UseFileDialog = (options?: UseFileDialogOptions) => readonly [
827
827
  FileList | null,
828
- (localOptions?: Partial<UseFileDialogOptions>) => void,
828
+ (localOptions?: Partial<UseFileDialogOptions>) => Promise<FileList | null | undefined>,
829
829
  () => void
830
830
  ];
831
831
  /**
@@ -1334,9 +1334,9 @@ interface UseIntervalOptions {
1334
1334
  */
1335
1335
  immediate?: boolean;
1336
1336
  /**
1337
- * @zh 是否控制执行。
1338
- * @en Whether to control execution.
1339
- */
1337
+ * @zh 是否控制执行。
1338
+ * @en Whether to control execution.
1339
+ */
1340
1340
  controls?: boolean;
1341
1341
  }
1342
1342
  /**
package/dist/index.mjs CHANGED
@@ -125,7 +125,7 @@ const useMountedState = ()=>{
125
125
  return get;
126
126
  };
127
127
 
128
- function asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, key, arg) {
128
+ function asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, key, arg) {
129
129
  try {
130
130
  var info = gen[key](arg);
131
131
  var value = info.value;
@@ -139,16 +139,16 @@ function asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, key, arg) {
139
139
  Promise.resolve(value).then(_next, _throw);
140
140
  }
141
141
  }
142
- function _async_to_generator$5(fn) {
142
+ function _async_to_generator$6(fn) {
143
143
  return function() {
144
144
  var self = this, args = arguments;
145
145
  return new Promise(function(resolve, reject) {
146
146
  var gen = fn.apply(self, args);
147
147
  function _next(value) {
148
- asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "next", value);
148
+ asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, "next", value);
149
149
  }
150
150
  function _throw(err) {
151
- asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "throw", err);
151
+ asyncGeneratorStep$6(gen, resolve, reject, _next, _throw, "throw", err);
152
152
  }
153
153
  _next(undefined);
154
154
  });
@@ -157,7 +157,7 @@ function _async_to_generator$5(fn) {
157
157
  const useAsyncEffect = (effect, cleanup = noop, deps)=>{
158
158
  const mounted = useMountedState();
159
159
  useEffect(()=>{
160
- const execute = /*#__PURE__*/ _async_to_generator$5(function*() {
160
+ const execute = /*#__PURE__*/ _async_to_generator$6(function*() {
161
161
  if (!mounted()) {
162
162
  return;
163
163
  }
@@ -577,6 +577,7 @@ const getInitialState$2 = (key, defaultValue, storage, serializer, onError)=>{
577
577
  if (raw !== undefined && raw !== null) {
578
578
  return serializer == null ? void 0 : serializer.read(raw);
579
579
  }
580
+ return null;
580
581
  } catch (error) {
581
582
  onError == null ? void 0 : onError(error);
582
583
  }
@@ -600,7 +601,8 @@ function useStorage(key, defaultValue, getStorage = ()=>isBrowser ? sessionStora
600
601
  const serializer = (_options_serializer = options.serializer) != null ? _options_serializer : StorageSerializers[type];
601
602
  const [state, setState] = useState(getInitialState$2(key, defaultValue, storage, serializer, onError));
602
603
  useDeepCompareEffect(()=>{
603
- const data = effectStorageValue ? isFunction(effectStorageValue) ? effectStorageValue() : effectStorageValue : defaultValue;
604
+ var _ref;
605
+ const data = (_ref = effectStorageValue ? isFunction(effectStorageValue) ? effectStorageValue() : effectStorageValue : defaultValue) != null ? _ref : null;
604
606
  const getStoredValue = ()=>{
605
607
  try {
606
608
  const raw = storage == null ? void 0 : storage.getItem(key);
@@ -1151,7 +1153,7 @@ const useSupported = (callback, sync = false)=>{
1151
1153
  return supported;
1152
1154
  };
1153
1155
 
1154
- function asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, key, arg) {
1156
+ function asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, key, arg) {
1155
1157
  try {
1156
1158
  var info = gen[key](arg);
1157
1159
  var value = info.value;
@@ -1165,16 +1167,16 @@ function asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, key, arg) {
1165
1167
  Promise.resolve(value).then(_next, _throw);
1166
1168
  }
1167
1169
  }
1168
- function _async_to_generator$4(fn) {
1170
+ function _async_to_generator$5(fn) {
1169
1171
  return function() {
1170
1172
  var self = this, args = arguments;
1171
1173
  return new Promise(function(resolve, reject) {
1172
1174
  var gen = fn.apply(self, args);
1173
1175
  function _next(value) {
1174
- asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "next", value);
1176
+ asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "next", value);
1175
1177
  }
1176
1178
  function _throw(err) {
1177
- asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "throw", err);
1179
+ asyncGeneratorStep$5(gen, resolve, reject, _next, _throw, "throw", err);
1178
1180
  }
1179
1181
  _next(undefined);
1180
1182
  });
@@ -1182,7 +1184,7 @@ function _async_to_generator$4(fn) {
1182
1184
  }
1183
1185
  const useEyeDropper = ()=>{
1184
1186
  const isSupported = useSupported(()=>typeof window !== "undefined" && "EyeDropper" in window, true);
1185
- const open = useCallback(/*#__PURE__*/ _async_to_generator$4(function*(options = {}) {
1187
+ const open = useCallback(/*#__PURE__*/ _async_to_generator$5(function*(options = {}) {
1186
1188
  if (!isSupported) {
1187
1189
  return {
1188
1190
  sRGBHex: ""
@@ -1217,6 +1219,35 @@ const useFavicon = (href, baseUrl = "", rel = "icon")=>{
1217
1219
  ]);
1218
1220
  };
1219
1221
 
1222
+ function asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, key, arg) {
1223
+ try {
1224
+ var info = gen[key](arg);
1225
+ var value = info.value;
1226
+ } catch (error) {
1227
+ reject(error);
1228
+ return;
1229
+ }
1230
+ if (info.done) {
1231
+ resolve(value);
1232
+ } else {
1233
+ Promise.resolve(value).then(_next, _throw);
1234
+ }
1235
+ }
1236
+ function _async_to_generator$4(fn) {
1237
+ return function() {
1238
+ var self = this, args = arguments;
1239
+ return new Promise(function(resolve, reject) {
1240
+ var gen = fn.apply(self, args);
1241
+ function _next(value) {
1242
+ asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "next", value);
1243
+ }
1244
+ function _throw(err) {
1245
+ asyncGeneratorStep$4(gen, resolve, reject, _next, _throw, "throw", err);
1246
+ }
1247
+ _next(undefined);
1248
+ });
1249
+ };
1250
+ }
1220
1251
  function _extends$2() {
1221
1252
  _extends$2 = Object.assign || function(target) {
1222
1253
  for(var i = 1; i < arguments.length; i++){
@@ -1238,6 +1269,8 @@ const DEFAULT_OPTIONS = {
1238
1269
  const useFileDialog = (options = defaultOptions$1)=>{
1239
1270
  const [files, setFiles] = useState(null);
1240
1271
  const inputRef = useRef();
1272
+ const fileOpenPromiseRef = useRef(null);
1273
+ const resolveFileOpenPromiseRef = useRef();
1241
1274
  const initFn = useCallback(()=>{
1242
1275
  if (typeof document === "undefined") {
1243
1276
  return undefined;
@@ -1247,11 +1280,12 @@ const useFileDialog = (options = defaultOptions$1)=>{
1247
1280
  input.onchange = (event)=>{
1248
1281
  const result = event.target;
1249
1282
  setFiles(result.files);
1283
+ resolveFileOpenPromiseRef.current == null ? void 0 : resolveFileOpenPromiseRef.current.call(resolveFileOpenPromiseRef, result.files);
1250
1284
  };
1251
1285
  return input;
1252
1286
  }, []);
1253
1287
  inputRef.current = initFn();
1254
- const open = (localOptions)=>{
1288
+ const open = /*#__PURE__*/ _async_to_generator$4(function*(localOptions) {
1255
1289
  if (!inputRef.current) {
1256
1290
  return;
1257
1291
  }
@@ -1259,10 +1293,15 @@ const useFileDialog = (options = defaultOptions$1)=>{
1259
1293
  inputRef.current.multiple = _options.multiple;
1260
1294
  inputRef.current.accept = _options.accept;
1261
1295
  inputRef.current.capture = _options.capture;
1296
+ fileOpenPromiseRef.current = new Promise((resolve)=>{
1297
+ resolveFileOpenPromiseRef.current = resolve;
1298
+ });
1262
1299
  inputRef.current.click();
1263
- };
1300
+ return fileOpenPromiseRef.current;
1301
+ });
1264
1302
  const reset = ()=>{
1265
1303
  setFiles(null);
1304
+ resolveFileOpenPromiseRef.current == null ? void 0 : resolveFileOpenPromiseRef.current.call(resolveFileOpenPromiseRef, null);
1266
1305
  if (inputRef.current) {
1267
1306
  inputRef.current.value = "";
1268
1307
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reactuses/core",
3
- "version": "5.0.12",
3
+ "version": "5.0.14",
4
4
  "license": "Unlicense",
5
5
  "homepage": "https://www.reactuse.com/",
6
6
  "repository": {