Fix playlist pagination

This commit is contained in:
jeffvli 2023-03-05 19:31:28 -08:00
parent f7740407c3
commit 828cca9c19
4 changed files with 13 additions and 10 deletions

View file

@ -161,7 +161,7 @@ export const PlaylistDetailSongListHeaderFilters = ({
tableRef.current?.api.ensureIndexVisible(0, 'top');
if (page.display === ListDisplayType.TABLE_PAGINATED) {
setPagination({ currentPage: 0 });
setPagination({ data: { currentPage: 0 } });
}
},
[tableRef, page.display, server, playlistId, queryClient, setPagination],

View file

@ -116,9 +116,11 @@ export const PlaylistListContent = ({ tableRef, itemCount }: PlaylistListContent
}
setPagination({
itemsPerPage: event.api.paginationGetPageSize(),
totalItems: event.api.paginationGetRowCount(),
totalPages: event.api.paginationGetTotalPages() + 1,
data: {
itemsPerPage: event.api.paginationGetPageSize(),
totalItems: event.api.paginationGetRowCount(),
totalPages: event.api.paginationGetTotalPages() + 1,
},
});
},
[isPaginationEnabled, pagination.currentPage, pagination.itemsPerPage, setPagination],
@ -217,6 +219,7 @@ export const PlaylistListContent = ({ tableRef, itemCount }: PlaylistListContent
>
{page.display === ListDisplayType.TABLE_PAGINATED && (
<TablePagination
pageKey=""
pagination={pagination}
setPagination={setPagination}
tableRef={tableRef}

View file

@ -110,7 +110,7 @@ export const PlaylistListHeaderFilters = ({ tableRef }: PlaylistListHeaderFilter
tableRef.current?.api.setDatasource(dataSource);
tableRef.current?.api.purgeInfiniteCache();
tableRef.current?.api.ensureIndexVisible(0, 'top');
setPagination({ currentPage: 0 });
setPagination({ data: { currentPage: 0 } });
},
[page.filter, queryClient, server, setPagination, tableRef],
);
@ -147,9 +147,9 @@ export const PlaylistListHeaderFilters = ({ tableRef }: PlaylistListHeaderFilter
if (display === ListDisplayType.TABLE) {
tableRef.current?.api.paginationSetPageSize(tableRef.current.props.infiniteInitialRowCount);
setPagination({ currentPage: 0 });
setPagination({ data: { currentPage: 0 } });
} else if (display === ListDisplayType.TABLE_PAGINATED) {
setPagination({ currentPage: 0 });
setPagination({ data: { currentPage: 0 } });
}
},
[page, setPage, setPagination, tableRef],

View file

@ -48,7 +48,7 @@ export interface PlaylistSlice extends PlaylistState {
setFilters: (data: Partial<PlaylistListFilter>) => PlaylistListFilter;
setStore: (data: Partial<PlaylistSlice>) => void;
setTable: (data: Partial<TableProps>) => void;
setTablePagination: (data: Partial<TableProps['pagination']>) => void;
setTablePagination: (args: { data: Partial<TablePagination> }) => void;
};
}
@ -98,9 +98,9 @@ export const usePlaylistStore = create<PlaylistSlice>()(
state.list.table = { ...state.list.table, ...data };
});
},
setTablePagination: (data) => {
setTablePagination: (args) => {
set((state) => {
state.list.table.pagination = { ...state.list.table.pagination, ...data };
state.list.table.pagination = { ...state.list.table.pagination, ...args.data };
});
},
},