floppy-disk 2.7.1 → 2.7.2-beta.2

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.
@@ -80,7 +80,7 @@ export const createQuery = (queryFn, options = {}) => {
80
80
  queryFn(key, stateBeforeCallQuery)
81
81
  .then((response) => {
82
82
  if (preventReplaceResponse.get(keyHash)) {
83
- set({ isWaiting: false });
83
+ set({ isWaiting: false, isRefetching: false });
84
84
  return resolve(get());
85
85
  }
86
86
  responseAllPages.push(response);
@@ -192,6 +192,10 @@ export const createQuery = (queryFn, options = {}) => {
192
192
  const stateBeforeCallQuery = get();
193
193
  queryFn(key, { ...state, pageParam })
194
194
  .then((response) => {
195
+ if (preventReplaceResponse.get(keyHash)) {
196
+ set({ isWaitingNextPage: false });
197
+ return resolve(get());
198
+ }
195
199
  const newPageParam = getNextPageParam(response, pageParams.length, stateBeforeCallQuery);
196
200
  set({
197
201
  isWaitingNextPage: false,
@@ -234,7 +238,10 @@ export const createQuery = (queryFn, options = {}) => {
234
238
  fetch,
235
239
  forceFetch,
236
240
  fetchNextPage,
237
- reset: () => set(INITIAL_QUERY_STATE),
241
+ reset: () => {
242
+ preventReplaceResponse.set(keyHash, true);
243
+ set(INITIAL_QUERY_STATE);
244
+ },
238
245
  optimisticUpdate: (response) => useQuery.optimisticUpdate({ key, response }),
239
246
  };
240
247
  }, (() => {
@@ -348,14 +355,12 @@ export const createQuery = (queryFn, options = {}) => {
348
355
  });
349
356
  };
350
357
  useQuery.reset = () => {
351
- useQuery.getStores().forEach((store) => {
358
+ useQuery.getStores().forEach((store, keyHash) => {
359
+ preventReplaceResponse.set(keyHash, true);
352
360
  store.set(INITIAL_QUERY_STATE);
353
361
  });
354
362
  };
355
- useQuery.resetSpecificKey = (key) => {
356
- const store = useQuery.getStore(key);
357
- store.set(INITIAL_QUERY_STATE);
358
- };
363
+ useQuery.resetSpecificKey = (key) => useQuery.get(key).reset();
359
364
  useQuery.invalidate = () => {
360
365
  useQuery.getStores().forEach((store) => {
361
366
  const { get, set, getSubscribers } = store;
@@ -372,9 +377,7 @@ export const createQuery = (queryFn, options = {}) => {
372
377
  };
373
378
  useQuery.optimisticUpdate = ({ key, response }) => {
374
379
  const prevState = useQuery.get(key);
375
- const optimisticResponse = typeof response === 'function'
376
- ? response(prevState)
377
- : response;
380
+ const optimisticResponse = getValueOrComputedValue(response, prevState);
378
381
  useQuery.set(key, {
379
382
  isOptimisticData: true,
380
383
  response: optimisticResponse,
@@ -79,7 +79,7 @@ export const createQuery = (queryFn, options = {}) => {
79
79
  queryFn(key, stateBeforeCallQuery)
80
80
  .then((response) => {
81
81
  if (preventReplaceResponse.get(keyHash)) {
82
- set({ isWaiting: false });
82
+ set({ isWaiting: false, isRefetching: false });
83
83
  return resolve(get());
84
84
  }
85
85
  responseAllPages.push(response);
@@ -191,6 +191,10 @@ export const createQuery = (queryFn, options = {}) => {
191
191
  const stateBeforeCallQuery = get();
192
192
  queryFn(key, { ...state, pageParam })
193
193
  .then((response) => {
194
+ if (preventReplaceResponse.get(keyHash)) {
195
+ set({ isWaitingNextPage: false });
196
+ return resolve(get());
197
+ }
194
198
  const newPageParam = getNextPageParam(response, pageParams.length, stateBeforeCallQuery);
195
199
  set({
196
200
  isWaitingNextPage: false,
@@ -233,7 +237,10 @@ export const createQuery = (queryFn, options = {}) => {
233
237
  fetch,
234
238
  forceFetch,
235
239
  fetchNextPage,
236
- reset: () => set(INITIAL_QUERY_STATE),
240
+ reset: () => {
241
+ preventReplaceResponse.set(keyHash, true);
242
+ set(INITIAL_QUERY_STATE);
243
+ },
237
244
  optimisticUpdate: (response) => useQuery.optimisticUpdate({ key, response }),
238
245
  };
239
246
  }, (() => {
@@ -347,14 +354,12 @@ export const createQuery = (queryFn, options = {}) => {
347
354
  });
348
355
  };
349
356
  useQuery.reset = () => {
350
- useQuery.getStores().forEach((store) => {
357
+ useQuery.getStores().forEach((store, keyHash) => {
358
+ preventReplaceResponse.set(keyHash, true);
351
359
  store.set(INITIAL_QUERY_STATE);
352
360
  });
353
361
  };
354
- useQuery.resetSpecificKey = (key) => {
355
- const store = useQuery.getStore(key);
356
- store.set(INITIAL_QUERY_STATE);
357
- };
362
+ useQuery.resetSpecificKey = (key) => useQuery.get(key).reset();
358
363
  useQuery.invalidate = () => {
359
364
  useQuery.getStores().forEach((store) => {
360
365
  const { get, set, getSubscribers } = store;
@@ -371,9 +376,7 @@ export const createQuery = (queryFn, options = {}) => {
371
376
  };
372
377
  useQuery.optimisticUpdate = ({ key, response }) => {
373
378
  const prevState = useQuery.get(key);
374
- const optimisticResponse = typeof response === 'function'
375
- ? response(prevState)
376
- : response;
379
+ const optimisticResponse = getValueOrComputedValue(response, prevState);
377
380
  useQuery.set(key, {
378
381
  isOptimisticData: true,
379
382
  response: optimisticResponse,
@@ -83,7 +83,7 @@ const createQuery = (queryFn, options = {}) => {
83
83
  queryFn(key, stateBeforeCallQuery)
84
84
  .then((response) => {
85
85
  if (preventReplaceResponse.get(keyHash)) {
86
- set({ isWaiting: false });
86
+ set({ isWaiting: false, isRefetching: false });
87
87
  return resolve(get());
88
88
  }
89
89
  responseAllPages.push(response);
@@ -195,6 +195,10 @@ const createQuery = (queryFn, options = {}) => {
195
195
  const stateBeforeCallQuery = get();
196
196
  queryFn(key, { ...state, pageParam })
197
197
  .then((response) => {
198
+ if (preventReplaceResponse.get(keyHash)) {
199
+ set({ isWaitingNextPage: false });
200
+ return resolve(get());
201
+ }
198
202
  const newPageParam = getNextPageParam(response, pageParams.length, stateBeforeCallQuery);
199
203
  set({
200
204
  isWaitingNextPage: false,
@@ -237,7 +241,10 @@ const createQuery = (queryFn, options = {}) => {
237
241
  fetch,
238
242
  forceFetch,
239
243
  fetchNextPage,
240
- reset: () => set(INITIAL_QUERY_STATE),
244
+ reset: () => {
245
+ preventReplaceResponse.set(keyHash, true);
246
+ set(INITIAL_QUERY_STATE);
247
+ },
241
248
  optimisticUpdate: (response) => useQuery.optimisticUpdate({ key, response }),
242
249
  };
243
250
  }, (() => {
@@ -351,14 +358,12 @@ const createQuery = (queryFn, options = {}) => {
351
358
  });
352
359
  };
353
360
  useQuery.reset = () => {
354
- useQuery.getStores().forEach((store) => {
361
+ useQuery.getStores().forEach((store, keyHash) => {
362
+ preventReplaceResponse.set(keyHash, true);
355
363
  store.set(INITIAL_QUERY_STATE);
356
364
  });
357
365
  };
358
- useQuery.resetSpecificKey = (key) => {
359
- const store = useQuery.getStore(key);
360
- store.set(INITIAL_QUERY_STATE);
361
- };
366
+ useQuery.resetSpecificKey = (key) => useQuery.get(key).reset();
362
367
  useQuery.invalidate = () => {
363
368
  useQuery.getStores().forEach((store) => {
364
369
  const { get, set, getSubscribers } = store;
@@ -375,9 +380,7 @@ const createQuery = (queryFn, options = {}) => {
375
380
  };
376
381
  useQuery.optimisticUpdate = ({ key, response }) => {
377
382
  const prevState = useQuery.get(key);
378
- const optimisticResponse = typeof response === 'function'
379
- ? response(prevState)
380
- : response;
383
+ const optimisticResponse = (0, utils_1.getValueOrComputedValue)(response, prevState);
381
384
  useQuery.set(key, {
382
385
  isOptimisticData: true,
383
386
  response: optimisticResponse,
@@ -82,7 +82,7 @@ const createQuery = (queryFn, options = {}) => {
82
82
  queryFn(key, stateBeforeCallQuery)
83
83
  .then((response) => {
84
84
  if (preventReplaceResponse.get(keyHash)) {
85
- set({ isWaiting: false });
85
+ set({ isWaiting: false, isRefetching: false });
86
86
  return resolve(get());
87
87
  }
88
88
  responseAllPages.push(response);
@@ -194,6 +194,10 @@ const createQuery = (queryFn, options = {}) => {
194
194
  const stateBeforeCallQuery = get();
195
195
  queryFn(key, { ...state, pageParam })
196
196
  .then((response) => {
197
+ if (preventReplaceResponse.get(keyHash)) {
198
+ set({ isWaitingNextPage: false });
199
+ return resolve(get());
200
+ }
197
201
  const newPageParam = getNextPageParam(response, pageParams.length, stateBeforeCallQuery);
198
202
  set({
199
203
  isWaitingNextPage: false,
@@ -236,7 +240,10 @@ const createQuery = (queryFn, options = {}) => {
236
240
  fetch,
237
241
  forceFetch,
238
242
  fetchNextPage,
239
- reset: () => set(INITIAL_QUERY_STATE),
243
+ reset: () => {
244
+ preventReplaceResponse.set(keyHash, true);
245
+ set(INITIAL_QUERY_STATE);
246
+ },
240
247
  optimisticUpdate: (response) => useQuery.optimisticUpdate({ key, response }),
241
248
  };
242
249
  }, (() => {
@@ -350,14 +357,12 @@ const createQuery = (queryFn, options = {}) => {
350
357
  });
351
358
  };
352
359
  useQuery.reset = () => {
353
- useQuery.getStores().forEach((store) => {
360
+ useQuery.getStores().forEach((store, keyHash) => {
361
+ preventReplaceResponse.set(keyHash, true);
354
362
  store.set(INITIAL_QUERY_STATE);
355
363
  });
356
364
  };
357
- useQuery.resetSpecificKey = (key) => {
358
- const store = useQuery.getStore(key);
359
- store.set(INITIAL_QUERY_STATE);
360
- };
365
+ useQuery.resetSpecificKey = (key) => useQuery.get(key).reset();
361
366
  useQuery.invalidate = () => {
362
367
  useQuery.getStores().forEach((store) => {
363
368
  const { get, set, getSubscribers } = store;
@@ -374,9 +379,7 @@ const createQuery = (queryFn, options = {}) => {
374
379
  };
375
380
  useQuery.optimisticUpdate = ({ key, response }) => {
376
381
  const prevState = useQuery.get(key);
377
- const optimisticResponse = typeof response === 'function'
378
- ? response(prevState)
379
- : response;
382
+ const optimisticResponse = (0, utils_1.getValueOrComputedValue)(response, prevState);
380
383
  useQuery.set(key, {
381
384
  isOptimisticData: true,
382
385
  response: optimisticResponse,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "floppy-disk",
3
- "version": "2.7.1",
3
+ "version": "2.7.2-beta.2",
4
4
  "description": "FloppyDisk - lightweight, simple, and powerful state management library",
5
5
  "keywords": [
6
6
  "state",