@tanstack/react-query-devtools 4.10.1 → 4.10.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.
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { useQueryClient, onlineManager, notifyManager } from '@tanstack/react-query';
3
- import { rankItem, compareItems } from '@tanstack/match-sorter-utils';
3
+ import { rankItem } from '@tanstack/match-sorter-utils';
4
4
  import SuperJSON from 'superjson';
5
5
  import { useSyncExternalStore } from 'use-sync-external-store/shim/index.js';
6
6
 
@@ -172,18 +172,26 @@ const displayValue = value => {
172
172
  json
173
173
  } = SuperJSON.serialize(value);
174
174
  return JSON.stringify(json);
175
- };
175
+ }; // Sorting functions
176
176
 
177
177
  const getStatusRank = q => q.state.fetchStatus !== 'idle' ? 0 : !q.getObserversCount() ? 3 : q.isStale() ? 2 : 1;
178
178
 
179
- const sortFns = {
180
- 'Status > Last Updated': (a, b) => {
181
- var _sortFns$LastUpdated;
179
+ const queryHashSort = (a, b) => a.queryHash.localeCompare(b.queryHash);
182
180
 
183
- return getStatusRank(a) === getStatusRank(b) ? (_sortFns$LastUpdated = sortFns['Last Updated']) == null ? void 0 : _sortFns$LastUpdated.call(sortFns, a, b) : getStatusRank(a) > getStatusRank(b) ? 1 : -1;
184
- },
185
- 'Query Hash': (a, b) => a.queryHash > b.queryHash ? 1 : -1,
186
- 'Last Updated': (a, b) => a.state.dataUpdatedAt < b.state.dataUpdatedAt ? 1 : -1
181
+ const dateSort = (a, b) => a.state.dataUpdatedAt < b.state.dataUpdatedAt ? 1 : -1;
182
+
183
+ const statusAndDateSort = (a, b) => {
184
+ if (getStatusRank(a) === getStatusRank(b)) {
185
+ return dateSort(a, b);
186
+ }
187
+
188
+ return getStatusRank(a) > getStatusRank(b) ? 1 : -1;
189
+ };
190
+
191
+ const sortFns = {
192
+ 'Status > Last Updated': statusAndDateSort,
193
+ 'Query Hash': queryHashSort,
194
+ 'Last Updated': dateSort
187
195
  };
188
196
 
189
197
  function ScreenReader({
@@ -736,27 +744,21 @@ const ReactQueryDevtoolsPanel$1 = /*#__PURE__*/React.forwardRef(function ReactQu
736
744
  const queryCache = queryClient.getQueryCache();
737
745
  const [sort, setSort] = useLocalStorage('reactQueryDevtoolsSortFn', Object.keys(sortFns)[0]);
738
746
  const [filter, setFilter] = useLocalStorage('reactQueryDevtoolsFilter', '');
739
- const [sortDesc, setSortDesc] = useLocalStorage('reactQueryDevtoolsSortDesc', false);
747
+ const [baseSort, setBaseSort] = useLocalStorage('reactQueryDevtoolsBaseSort', 1);
740
748
  const sortFn = React.useMemo(() => sortFns[sort], [sort]);
741
749
  const queriesCount = useSubscribeToQueryCache(queryCache, () => queryCache.getAll().length, !isOpen);
742
750
  const [activeQueryHash, setActiveQueryHash] = useLocalStorage('reactQueryDevtoolsActiveQueryHash', '');
743
751
  const queries = React.useMemo(() => {
744
752
  const unsortedQueries = queryCache.getAll();
745
- const sorted = queriesCount > 0 ? [...unsortedQueries].sort(sortFn) : [];
746
-
747
- if (sortDesc) {
748
- sorted.reverse();
749
- }
750
753
 
751
- if (!filter) {
752
- return sorted;
754
+ if (queriesCount === 0) {
755
+ return [];
753
756
  }
754
757
 
755
- let ranked = sorted.map(item => [item, rankItem(item.queryHash, filter)]);
756
- ranked = ranked.filter(d => d[1].passed);
757
- ranked = ranked.sort((a, b) => compareItems(a[1], b[1]));
758
- return ranked.map(d => d[0]);
759
- }, [sortDesc, sortFn, filter, queriesCount, queryCache]);
758
+ const filtered = filter ? unsortedQueries.filter(item => rankItem(item.queryHash, filter).passed) : [...unsortedQueries];
759
+ const sorted = sortFn ? filtered.sort((a, b) => sortFn(a, b) * baseSort) : filtered;
760
+ return sorted;
761
+ }, [baseSort, sortFn, filter, queriesCount, queryCache]);
760
762
  const [isMockOffline, setMockOffline] = React.useState(false);
761
763
  return /*#__PURE__*/React.createElement(ThemeProvider, {
762
764
  theme: defaultTheme
@@ -858,12 +860,12 @@ const ReactQueryDevtoolsPanel$1 = /*#__PURE__*/React.forwardRef(function ReactQu
858
860
  value: key
859
861
  }, "Sort by ", key))), /*#__PURE__*/React.createElement(Button, {
860
862
  type: "button",
861
- onClick: () => setSortDesc(old => !old),
863
+ onClick: () => setBaseSort(old => old * -1),
862
864
  style: {
863
865
  padding: '.3em .4em',
864
866
  marginRight: '.5em'
865
867
  }
866
- }, sortDesc ? ' Desc' : ' Asc'), /*#__PURE__*/React.createElement(Button, {
868
+ }, baseSort === 1 ? ' Asc' : ' Desc'), /*#__PURE__*/React.createElement(Button, {
867
869
  type: "button",
868
870
  onClick: () => {
869
871
  if (isMockOffline) {