Skip to content

Commit 46a45d8

Browse files
committed
Isolate selection in multiple ArrayFields using storeKey
1 parent 7afc76c commit 46a45d8

File tree

6 files changed

+112
-325
lines changed

6 files changed

+112
-325
lines changed

packages/ra-core/src/controller/list/useList.storeKey.spec.tsx

-130
This file was deleted.

packages/ra-core/src/controller/list/useList.storeKey.stories.tsx

-154
This file was deleted.

packages/ra-core/src/controller/list/useList.ts

+3-37
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ export const useList = <RecordType extends RaRecord = any, ErrorType = Error>(
6767
sort: initialSort,
6868
filterCallback = (record: RecordType) => Boolean(record),
6969
} = props;
70-
const resourceFromContext = useResourceContext(props);
71-
const resource = props.storeKey ?? resourceFromContext;
70+
const resource = useResourceContext(props);
71+
7272
const [fetchingState, setFetchingState] = useState<boolean>(isFetching) as [
7373
boolean,
7474
(isFetching: boolean) => void,
@@ -92,45 +92,12 @@ export const useList = <RecordType extends RaRecord = any, ErrorType = Error>(
9292
total: data ? data.length : undefined,
9393
}));
9494

95-
// Store pagination states for each storeKey
96-
const storeKeyPaginationRef = useRef<{
97-
[key: string]: { page: number; perPage: number };
98-
}>({});
99-
10095
// pagination logic
10196
const { page, setPage, perPage, setPerPage } = usePaginationState({
10297
page: initialPage,
10398
perPage: initialPerPage,
10499
});
105100

106-
useEffect(() => {
107-
if (!resource) return;
108-
// Check if storeKey exists in the pagination store
109-
const currentPagination = storeKeyPaginationRef.current[resource];
110-
if (currentPagination) {
111-
// Restore existing pagination state for the storeKey
112-
if (
113-
page !== currentPagination.page ||
114-
perPage !== currentPagination.perPage
115-
) {
116-
setPage(currentPagination.page);
117-
setPerPage(currentPagination.perPage);
118-
}
119-
} else {
120-
setPage(initialPage);
121-
setPerPage(initialPerPage);
122-
}
123-
storeKeyPaginationRef.current[resource] = { page, perPage };
124-
}, [
125-
resource,
126-
setPage,
127-
setPerPage,
128-
initialPage,
129-
initialPerPage,
130-
page,
131-
perPage,
132-
]);
133-
134101
// sort logic
135102
const { sort, setSort: setSortState } = useSortState(initialSort);
136103
const setSort = useCallback(
@@ -328,7 +295,7 @@ export const useList = <RecordType extends RaRecord = any, ErrorType = Error>(
328295
onUnselectItems: selectionModifiers.clearSelection,
329296
page,
330297
perPage,
331-
resource: resource,
298+
resource: '',
332299
refetch,
333300
selectedIds,
334301
setFilters,
@@ -354,7 +321,6 @@ export interface UseListOptions<
354321
perPage?: number;
355322
sort?: SortPayload;
356323
resource?: string;
357-
storeKey?: string;
358324
filterCallback?: (record: RecordType) => boolean;
359325
}
360326

0 commit comments

Comments
 (0)