Skip to content

Commit 3990c4a

Browse files
committed
fix: add pagination object to getDataItemsPanel
1 parent 67981f5 commit 3990c4a

File tree

6 files changed

+25
-17
lines changed

6 files changed

+25
-17
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { PaginationInfo } from '../../../shared/pagination/domain/models/PaginationInfo'
2+
3+
export class MyDataCollectionItemsPaginationInfo extends PaginationInfo<MyDataCollectionItemsPaginationInfo> {
4+
constructor(page = 1, pageSize = 10, totalItems = 0, itemName = 'Item') {
5+
super(page, pageSize, totalItems, itemName)
6+
}
7+
}

src/collection/domain/repositories/CollectionRepository.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { PublicationStatus } from '@/shared/core/domain/models/PublicationStatus
1313
import { LinkingObjectType } from '../useCases/getCollectionsForLinking'
1414
import { CollectionSummary } from '../models/CollectionSummary'
1515
import { CollectionLinks } from '../models/CollectionLinks'
16+
import { MyDataCollectionItemsPaginationInfo } from '../models/MyDataCollectionItemsPaginationInfo'
1617

1718
export interface CollectionRepository {
1819
getById: (id?: string) => Promise<Collection>
@@ -31,8 +32,7 @@ export interface CollectionRepository {
3132
roleIds: number[],
3233
collectionItemTypes: CollectionItemType[],
3334
publicationStatuses: PublicationStatus[],
34-
limit?: number,
35-
selectedPage?: number,
35+
paginationInfo?: MyDataCollectionItemsPaginationInfo,
3636
searchText?: string,
3737
otherUserName?: string
3838
) => Promise<MyDataCollectionItemSubset>

src/collection/infrastructure/repositories/CollectionJSDataverseRepository.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import { PublicationStatus } from '@/shared/core/domain/models/PublicationStatus
3434
import { CollectionSummary } from '@/collection/domain/models/CollectionSummary'
3535
import { LinkingObjectType } from '@/collection/domain/useCases/getCollectionsForLinking'
3636
import { CollectionLinks } from '@/collection/domain/models/CollectionLinks'
37+
import { MyDataCollectionItemsPaginationInfo } from '@/collection/domain/models/MyDataCollectionItemsPaginationInfo'
3738

3839
export class CollectionJSDataverseRepository implements CollectionRepository {
3940
getById(id?: string): Promise<Collection> {
@@ -93,8 +94,7 @@ export class CollectionJSDataverseRepository implements CollectionRepository {
9394
roleIds: number[],
9495
collectionItemTypes: CollectionItemType[],
9596
publicationStatuses: PublicationStatus[],
96-
limit?: number,
97-
selectedPage?: number,
97+
paginationInfo?: MyDataCollectionItemsPaginationInfo,
9898
searchText?: string,
9999
otherUserName?: string
100100
): Promise<MyDataCollectionItemSubset> {
@@ -103,8 +103,8 @@ export class CollectionJSDataverseRepository implements CollectionRepository {
103103
roleIds,
104104
collectionItemTypes,
105105
publicationStatuses,
106-
limit,
107-
selectedPage,
106+
paginationInfo?.pageSize,
107+
paginationInfo?.page,
108108
searchText,
109109
otherUserName
110110
)

src/sections/account/my-data-section/useGetMyDataAccumulatedItems.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import {
88
MyDataCollectionItemSubset,
99
PublicationStatusCount
1010
} from '@/collection/domain/models/MyDataCollectionItemSubset'
11+
import { MyDataCollectionItemsPaginationInfo } from '@/collection/domain/models/MyDataCollectionItemsPaginationInfo'
1112

1213
export const NO_COLLECTION_ITEMS = 0
1314

@@ -120,13 +121,17 @@ async function loadNextItems(
120121
searchCriteria: MyDataSearchCriteria
121122
): Promise<MyDataCollectionItemSubset> {
122123
const publicationStatuses = searchCriteria.publicationStatuses ?? []
124+
const myDataPaginationInfo = new MyDataCollectionItemsPaginationInfo(
125+
paginationInfo.page,
126+
paginationInfo.pageSize,
127+
paginationInfo.totalItems
128+
)
123129
return await getMyDataCollectionItems(
124130
collectionRepository,
125131
searchCriteria.roleIds,
126132
searchCriteria.itemTypes,
127133
publicationStatuses,
128-
paginationInfo.pageSize,
129-
paginationInfo.page,
134+
myDataPaginationInfo,
130135
searchCriteria.searchText,
131136
searchCriteria.otherUserName
132137
)

src/stories/collection/CollectionMockRepository.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { CollectionSummary } from '@/collection/domain/models/CollectionSummary'
1919
import { LinkingObjectType } from '@/collection/domain/useCases/getCollectionsForLinking'
2020
import { CollectionSummaryMother } from '@tests/component/collection/domain/models/CollectionSummaryMother'
2121
import { CollectionLinks } from '@/collection/domain/models/CollectionLinks'
22+
import { MyDataCollectionItemsPaginationInfo } from '@/collection/domain/models/MyDataCollectionItemsPaginationInfo'
2223

2324
export class CollectionMockRepository implements CollectionRepository {
2425
getById(_id?: string): Promise<Collection> {
@@ -101,14 +102,11 @@ export class CollectionMockRepository implements CollectionRepository {
101102
_roleIds: number[],
102103
collectionItemTypes: CollectionItemType[],
103104
_publicationStatuses: string[],
104-
limit?: number,
105-
_selectedPage?: number,
105+
paginationInfo?: MyDataCollectionItemsPaginationInfo,
106106
_searchText?: string,
107107
_otherUserName?: string
108108
): Promise<MyDataCollectionItemSubset> {
109-
if (!limit) {
110-
limit = 10
111-
}
109+
const limit = paginationInfo?.pageSize ?? 10
112110
const numberOfCollections = Math.floor(limit / 3)
113111
const numberOfDatasets = Math.floor(limit / 3)
114112
const numberOfFiles = limit - numberOfCollections - numberOfDatasets

tests/component/sections/account/MyDataItemsPanel.spec.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,7 @@ describe('MyDataItemsPanel', () => {
159159
Cypress.sinon.match.any,
160160
Cypress.sinon.match.any,
161161
Cypress.sinon.match.any,
162-
10,
163-
1,
162+
Cypress.sinon.match.has('pageSize', 10).and(Cypress.sinon.match.has('page', 1)),
164163
undefined,
165164
otherUsername
166165
)
@@ -185,8 +184,7 @@ describe('MyDataItemsPanel', () => {
185184
Cypress.sinon.match.any,
186185
Cypress.sinon.match.any,
187186
Cypress.sinon.match.any,
188-
10,
189-
1,
187+
Cypress.sinon.match.has('pageSize', 10).and(Cypress.sinon.match.has('page', 1)),
190188
undefined,
191189
'testUserName'
192190
)

0 commit comments

Comments
 (0)