From 7c146edd0a33c16913ab0028f546444b689e4986 Mon Sep 17 00:00:00 2001 From: Ellen Kraffmiller Date: Tue, 3 Jun 2025 12:57:27 -0400 Subject: [PATCH 01/11] update getMyDataCollectionItems return type --- package-lock.json | 8 ++-- package.json | 2 +- .../models/MyDataCollectionItemSubset.ts | 14 +++++++ .../repositories/CollectionRepository.ts | 3 +- .../useCases/getMyDataCollectionItems.ts | 6 +-- .../CollectionJSDataverseRepository.ts | 5 ++- .../MyDataFilterPanel.tsx | 6 +-- .../PublicationStatusFilters.tsx | 19 ++++----- .../useGetMyDataAccumulatedItems.tsx | 42 ++++--------------- .../collection/CollectionMockRepository.ts | 7 ++-- .../domain/models/CollectionItemsMother.ts | 20 ++++----- .../account/MyDataItemsPanel.spec.tsx | 23 +++++----- 12 files changed, 71 insertions(+), 84 deletions(-) create mode 100644 src/collection/domain/models/MyDataCollectionItemSubset.ts diff --git a/package-lock.json b/package-lock.json index 9cc24ff30..6b02acf26 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-alpha.48", + "@iqss/dataverse-client-javascript": "2.0.0-pr313.c60a7d9", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2", @@ -3561,9 +3561,9 @@ }, "node_modules/@iqss/dataverse-client-javascript": { "name": "@IQSS/dataverse-client-javascript", - "version": "2.0.0-alpha.48", - "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-alpha.48/40c12b030381bb947bfd2771d512e37f4fd979b8", - "integrity": "sha512-GHbdb0JnYSQwseMGzsOAq4wZgwycqw554AVEI/Aqd/9H385Pj9YM7X/YcsYPRkUpHSVIcLZJs4714EObE6QWuA==", + "version": "2.0.0-pr313.c60a7d9", + "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-pr313.c60a7d9/6a939db40fdf60a32a3ee252ba73eaa0cdf460cc", + "integrity": "sha512-7ZjbI4JUXra45oh78UFxBbktKV3a0Eq5YIw7omFB9HlYzox6xLx3GhmTIudQFormPMjGJXqzuEVnTvxjqa8CWQ==", "license": "MIT", "dependencies": { "@types/node": "^18.15.11", diff --git a/package.json b/package.json index b485cb47a..4c87bea73 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-alpha.48", + "@iqss/dataverse-client-javascript": "2.0.0-pr313.c60a7d9", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2", diff --git a/src/collection/domain/models/MyDataCollectionItemSubset.ts b/src/collection/domain/models/MyDataCollectionItemSubset.ts new file mode 100644 index 000000000..8217c9aa5 --- /dev/null +++ b/src/collection/domain/models/MyDataCollectionItemSubset.ts @@ -0,0 +1,14 @@ +import { CollectionItem, CountPerObjectType } from '@/collection/domain/models/CollectionItemSubset' +import { PublicationStatus } from '@/shared/core/domain/models/PublicationStatus' + +export interface MyDataCollectionItemSubset { + items: CollectionItem[] + publicationStatusCounts: PublicationStatusCount[] + totalItemCount: number + countPerObjectType: CountPerObjectType +} + +export interface PublicationStatusCount { + publicationStatus: PublicationStatus + count: number +} diff --git a/src/collection/domain/repositories/CollectionRepository.ts b/src/collection/domain/repositories/CollectionRepository.ts index 176f0e701..1d2b9b17c 100644 --- a/src/collection/domain/repositories/CollectionRepository.ts +++ b/src/collection/domain/repositories/CollectionRepository.ts @@ -3,6 +3,7 @@ import { CollectionFacet } from '../models/CollectionFacet' import { CollectionFeaturedItem } from '../models/CollectionFeaturedItem' import { CollectionItemsPaginationInfo } from '../models/CollectionItemsPaginationInfo' import { CollectionItemSubset } from '../models/CollectionItemSubset' +import { MyDataCollectionItemSubset } from '../models/MyDataCollectionItemSubset' import { CollectionSearchCriteria } from '../models/CollectionSearchCriteria' import { CollectionUserPermissions } from '../models/CollectionUserPermissions' import { CollectionDTO } from '../useCases/DTOs/CollectionDTO' @@ -28,7 +29,7 @@ export interface CollectionRepository { selectedPage?: number, searchText?: string, otherUserName?: string - ): Promise + ): Promise edit(collectionIdOrAlias: string, updatedCollection: CollectionDTO): Promise getFeaturedItems(collectionIdOrAlias?: number | string): Promise updateFeaturedItems( diff --git a/src/collection/domain/useCases/getMyDataCollectionItems.ts b/src/collection/domain/useCases/getMyDataCollectionItems.ts index 911bc0e86..f19f0e13a 100644 --- a/src/collection/domain/useCases/getMyDataCollectionItems.ts +++ b/src/collection/domain/useCases/getMyDataCollectionItems.ts @@ -1,5 +1,5 @@ import { CollectionRepository } from '../repositories/CollectionRepository' -import { CollectionItemSubset } from '../models/CollectionItemSubset' +import { MyDataCollectionItemSubset } from '../models/MyDataCollectionItemSubset' export async function getMyDataCollectionItems( collectionRepository: CollectionRepository, @@ -10,7 +10,7 @@ export async function getMyDataCollectionItems( selectedPage?: number, searchText?: string, otherUserName?: string -): Promise { +): Promise { return collectionRepository .getMyDataItems( roleIds, @@ -30,7 +30,7 @@ export async function getMyDataCollectionItems( ) { return { items: [], - facets: [], + publicationStatusCounts: [], totalItemCount: 0, countPerObjectType: { collections: 0, diff --git a/src/collection/infrastructure/repositories/CollectionJSDataverseRepository.ts b/src/collection/infrastructure/repositories/CollectionJSDataverseRepository.ts index e3fddf863..10a539666 100644 --- a/src/collection/infrastructure/repositories/CollectionJSDataverseRepository.ts +++ b/src/collection/infrastructure/repositories/CollectionJSDataverseRepository.ts @@ -24,6 +24,7 @@ import { CollectionSearchCriteria } from '../../domain/models/CollectionSearchCr import { JSCollectionItemsMapper } from '../mappers/JSCollectionItemsMapper' import { CollectionFeaturedItem } from '@/collection/domain/models/CollectionFeaturedItem' import { CollectionFeaturedItemsDTO } from '@/collection/domain/useCases/DTOs/CollectionFeaturedItemsDTO' +import { MyDataCollectionItemSubset } from '@/collection/domain/models/MyDataCollectionItemSubset' export class CollectionJSDataverseRepository implements CollectionRepository { getById(id?: string): Promise { @@ -81,7 +82,7 @@ export class CollectionJSDataverseRepository implements CollectionRepository { selectedPage?: number, searchText?: string, otherUserName?: string - ): Promise { + ): Promise { return getMyDataCollectionItems .execute( roleIds, @@ -99,7 +100,7 @@ export class CollectionJSDataverseRepository implements CollectionRepository { return { items: collectionItemsPreviewsMapped, - facets: jsCollectionItemSubset.facets, + publicationStatusCounts: jsCollectionItemSubset.publicationStatusCounts, totalItemCount: jsCollectionItemSubset.totalItemCount, countPerObjectType: jsCollectionItemSubset.countPerObjectType } diff --git a/src/sections/account/my-data-section/my-data-filter-panel/MyDataFilterPanel.tsx b/src/sections/account/my-data-section/my-data-filter-panel/MyDataFilterPanel.tsx index 5a18dd715..1dd528d55 100644 --- a/src/sections/account/my-data-section/my-data-filter-panel/MyDataFilterPanel.tsx +++ b/src/sections/account/my-data-section/my-data-filter-panel/MyDataFilterPanel.tsx @@ -9,10 +9,8 @@ import { PublicationStatusChange } from '@/sections/account/my-data-section/my-d import { RoleChange } from '@/sections/account/my-data-section/my-data-filter-panel/role-filters/RoleFilters' import { TypeFilters } from '@/sections/collection/collection-items-panel/filter-panel/type-filters/TypeFilters' import { RoleFilters } from '@/sections/account/my-data-section/my-data-filter-panel/role-filters/RoleFilters' -import { - PublicationStatusCount, - PublicationStatusFilters -} from '@/sections/account/my-data-section/my-data-filter-panel/publication-status-filters/PublicationStatusFilters' +import { PublicationStatusFilters } from '@/sections/account/my-data-section/my-data-filter-panel/publication-status-filters/PublicationStatusFilters' +import { PublicationStatusCount } from '@/collection/domain/models/MyDataCollectionItemSubset' import { PublicationStatus } from '@/shared/core/domain/models/PublicationStatus' import { SeparationLine } from '@/sections/shared/layout/SeparationLine/SeparationLine' import { CountPerObjectType } from '@/collection/domain/models/CollectionItemSubset' diff --git a/src/sections/account/my-data-section/my-data-filter-panel/publication-status-filters/PublicationStatusFilters.tsx b/src/sections/account/my-data-section/my-data-filter-panel/publication-status-filters/PublicationStatusFilters.tsx index aae867b17..02d7363f5 100644 --- a/src/sections/account/my-data-section/my-data-filter-panel/publication-status-filters/PublicationStatusFilters.tsx +++ b/src/sections/account/my-data-section/my-data-filter-panel/publication-status-filters/PublicationStatusFilters.tsx @@ -2,13 +2,9 @@ import { ChangeEvent } from 'react' import { useTranslation } from 'react-i18next' import { Form, Stack } from '@iqss/dataverse-design-system' import { PublicationStatus } from '@/shared/core/domain/models/PublicationStatus' +import { PublicationStatusCount } from '@/collection/domain/models/MyDataCollectionItemSubset' import styles from './PublicationStatusFilters.module.scss' -export interface PublicationStatusCount { - status: PublicationStatus - count: number -} - interface PublicationStatusFiltersProps { currentPublicationStatuses: PublicationStatus[] publicationStatusCounts?: PublicationStatusCount[] @@ -39,24 +35,25 @@ export const PublicationStatusFilters = ({ return (
{t('myData.publicationStatusFilterTitle')}
- {publicationStatusCounts?.map(({ status, count }) => { + {publicationStatusCounts?.map(({ publicationStatus, count }) => { const statusCheckDisabled = isLoadingCollectionItems || - (currentPublicationStatuses?.length === 1 && currentPublicationStatuses.includes(status)) + (currentPublicationStatuses?.length === 1 && + currentPublicationStatuses.includes(publicationStatus)) return ( ) => - handlePublicationStatusChange(status, e.target.checked) + handlePublicationStatusChange(publicationStatus, e.target.checked) } label={ <> {t(`${status}`)} ({count}) } - checked={currentPublicationStatuses?.includes(status) ?? false} + checked={currentPublicationStatuses?.includes(publicationStatus) ?? false} disabled={statusCheckDisabled} /> ) diff --git a/src/sections/account/my-data-section/useGetMyDataAccumulatedItems.tsx b/src/sections/account/my-data-section/useGetMyDataAccumulatedItems.tsx index 76f96628e..76c532925 100644 --- a/src/sections/account/my-data-section/useGetMyDataAccumulatedItems.tsx +++ b/src/sections/account/my-data-section/useGetMyDataAccumulatedItems.tsx @@ -1,19 +1,13 @@ import { useMemo, useState } from 'react' import { getMyDataCollectionItems } from '@/collection/domain/useCases/getMyDataCollectionItems' import { CollectionRepository } from '@/collection/domain/repositories/CollectionRepository' -import { - CollectionItem, - CollectionItemsFacet, - CollectionItemSubset, - CountPerObjectType -} from '@/collection/domain/models/CollectionItemSubset' -import { - AllPublicationStatuses, - PublicationStatus -} from '@/shared/core/domain/models/PublicationStatus' +import { CollectionItem, CountPerObjectType } from '@/collection/domain/models/CollectionItemSubset' import { CollectionItemsPaginationInfo } from '@/collection/domain/models/CollectionItemsPaginationInfo' import { MyDataSearchCriteria } from '@/sections/account/my-data-section/MyDataSearchCriteria' -import { PublicationStatusCount } from '@/sections/account/my-data-section/my-data-filter-panel/publication-status-filters/PublicationStatusFilters' +import { + MyDataCollectionItemSubset, + PublicationStatusCount +} from '@/collection/domain/models/MyDataCollectionItemSubset' export const NO_COLLECTION_ITEMS = 0 @@ -70,17 +64,14 @@ export const useGetMyDataAccumulatedItems = ({ setIsLoadingItems(true) try { - const { items, facets, totalItemCount, countPerObjectType } = await loadNextItems( - collectionRepository, - pagination, - searchCriteria - ) + const { items, publicationStatusCounts, totalItemCount, countPerObjectType } = + await loadNextItems(collectionRepository, pagination, searchCriteria) const newAccumulatedItems = !resetAccumulated ? [...accumulatedItems, ...items] : items setAccumulatedItems(newAccumulatedItems) - setPublicationStatusCounts(convertFacetsToPublicationStatusCounts(facets)) + setPublicationStatusCounts(publicationStatusCounts) setCountPerObjectType(countPerObjectType) @@ -122,27 +113,12 @@ export const useGetMyDataAccumulatedItems = ({ accumulatedCount } } -const convertFacetsToPublicationStatusCounts = ( - facets: CollectionItemsFacet[] -): PublicationStatusCount[] => { - if (!facets[0]) { - // Create a list of PublicationStatusCount with 0 counts - return AllPublicationStatuses.map((status) => ({ - status: status, - count: 0 - })) - } else - return facets[0].labels.map((facetLabel) => ({ - status: facetLabel.name as PublicationStatus, - count: facetLabel.count - })) -} async function loadNextItems( collectionRepository: CollectionRepository, paginationInfo: CollectionItemsPaginationInfo, searchCriteria: MyDataSearchCriteria -): Promise { +): Promise { const publicationStatuses = (searchCriteria.publicationStatuses as string[]) ?? [] return await getMyDataCollectionItems( collectionRepository, diff --git a/src/stories/collection/CollectionMockRepository.ts b/src/stories/collection/CollectionMockRepository.ts index 021a6ba24..8c073a08b 100644 --- a/src/stories/collection/CollectionMockRepository.ts +++ b/src/stories/collection/CollectionMockRepository.ts @@ -14,6 +14,7 @@ import { CollectionItemType } from '@/collection/domain/models/CollectionItemTyp import { CollectionFeaturedItem } from '@/collection/domain/models/CollectionFeaturedItem' import { CollectionFeaturedItemsDTO } from '@/collection/domain/useCases/DTOs/CollectionFeaturedItemsDTO' import { CollectionFeaturedItemMother } from '@tests/component/collection/domain/models/CollectionFeaturedItemMother' +import { MyDataCollectionItemSubset } from '@/collection/domain/models/MyDataCollectionItemSubset' export class CollectionMockRepository implements CollectionRepository { getById(_id?: string): Promise { @@ -105,7 +106,7 @@ export class CollectionMockRepository implements CollectionRepository { _selectedPage?: number, _searchText?: string, _otherUserName?: string - ): Promise { + ): Promise { if (!limit) { limit = 10 } @@ -120,7 +121,7 @@ export class CollectionMockRepository implements CollectionRepository { includeUserRoles: true }) - const facets = CollectionItemsMother.createMyDataItemsFacets() + const publicationStatusCounts = CollectionItemsMother.createMyDataPublicationCounts() const isDefaultSelected = collectionItemTypes?.length === 2 && @@ -133,7 +134,7 @@ export class CollectionMockRepository implements CollectionRepository { setTimeout(() => { resolve({ items: filteredByTypeItems, - facets: facets, + publicationStatusCounts: publicationStatusCounts, totalItemCount: isDefaultSelected ? 6 : 200, // This is a fake number, its big so we can always scroll to load more items for the story countPerObjectType: { collections: numberOfCollections, diff --git a/tests/component/collection/domain/models/CollectionItemsMother.ts b/tests/component/collection/domain/models/CollectionItemsMother.ts index 960268df5..2603c727d 100644 --- a/tests/component/collection/domain/models/CollectionItemsMother.ts +++ b/tests/component/collection/domain/models/CollectionItemsMother.ts @@ -5,6 +5,8 @@ import { import { FileItemTypePreviewMother } from '../../../files/domain/models/FileItemTypePreviewMother' import { CollectionItemTypePreviewMother } from './CollectionItemTypePreviewMother' import { DatasetItemTypePreviewMother } from '../../../dataset/domain/models/DatasetItemTypePreviewMother' +import { PublicationStatusCount } from '@/collection/domain/models/MyDataCollectionItemSubset' +import { PublicationStatus } from '@/shared/core/domain/models/PublicationStatus' interface CreateItemsProps { numberOfCollections?: number @@ -29,19 +31,13 @@ export class CollectionItemsMother { return [...collections, ...datasets, ...files] } - static createMyDataItemsFacets(): CollectionItemsFacet[] { + static createMyDataPublicationCounts(): PublicationStatusCount[] { return [ - { - name: 'PublicationStatus', - friendlyName: 'Publication Status', - labels: [ - { name: 'Published', count: 1 }, - { name: 'Unpublished', count: 1 }, - { name: 'Draft', count: 0 }, - { name: 'In Review', count: 1 }, - { name: 'Deaccessioned', count: 1 } - ] - } + { publicationStatus: PublicationStatus.Published, count: 1 }, + { publicationStatus: PublicationStatus.Unpublished, count: 1 }, + { publicationStatus: PublicationStatus.Draft, count: 0 }, + { publicationStatus: PublicationStatus.InReview, count: 1 }, + { publicationStatus: PublicationStatus.Deaccessioned, count: 1 } ] } static createItemsFacets(): CollectionItemsFacet[] { diff --git a/tests/component/sections/account/MyDataItemsPanel.spec.tsx b/tests/component/sections/account/MyDataItemsPanel.spec.tsx index 685a1a64d..79e19484d 100644 --- a/tests/component/sections/account/MyDataItemsPanel.spec.tsx +++ b/tests/component/sections/account/MyDataItemsPanel.spec.tsx @@ -1,10 +1,8 @@ -import { - CollectionItemSubset, - CountPerObjectType -} from '@/collection/domain/models/CollectionItemSubset' +import { CountPerObjectType } from '@/collection/domain/models/CollectionItemSubset' import { CollectionRepository } from '@/collection/domain/repositories/CollectionRepository' import { CollectionItemsMother } from '@tests/component/collection/domain/models/CollectionItemsMother' import { MyDataItemsPanel } from '@/sections/account/my-data-section/MyDataItemsPanel' +import { MyDataCollectionItemSubset } from '@/collection/domain/models/MyDataCollectionItemSubset' const collectionRepository: CollectionRepository = {} as CollectionRepository @@ -22,13 +20,18 @@ const countPerObjectType: CountPerObjectType = { files: 140 } -const facets = CollectionItemsMother.createMyDataItemsFacets() +const publicationStatusCounts = CollectionItemsMother.createMyDataPublicationCounts() -const itemsWithCount: CollectionItemSubset = { items, facets, totalItemCount, countPerObjectType } +const itemsWithCount: MyDataCollectionItemSubset = { + items, + publicationStatusCounts, + totalItemCount, + countPerObjectType +} -const emptyItemsWithCount: CollectionItemSubset = { +const emptyItemsWithCount: MyDataCollectionItemSubset = { items: [], - facets: [], + publicationStatusCounts: [], totalItemCount: 0, countPerObjectType: { collections: 0, @@ -224,9 +227,9 @@ describe('MyDataItemsPanel', () => { it('renders 4 items with no more to load, correct results in header, and no bottom skeleton loader', () => { const first4Elements = items.slice(0, 4) - const first4ElementsWithCount: CollectionItemSubset = { + const first4ElementsWithCount: MyDataCollectionItemSubset = { items: first4Elements, - facets, + publicationStatusCounts, totalItemCount: 4, countPerObjectType: { collections: 4, From 65be65ebbacf18d765f50f3235fe1563c925888a Mon Sep 17 00:00:00 2001 From: Ellen Kraffmiller Date: Tue, 3 Jun 2025 13:21:56 -0400 Subject: [PATCH 02/11] fix Account unit test --- tests/component/sections/account/Account.spec.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/component/sections/account/Account.spec.tsx b/tests/component/sections/account/Account.spec.tsx index fec637daa..0b3b6f972 100644 --- a/tests/component/sections/account/Account.spec.tsx +++ b/tests/component/sections/account/Account.spec.tsx @@ -23,6 +23,7 @@ describe('Account', () => { it('clicks on the Account Information tab', () => { cy.mountAuthenticated( From b8d51c37ac30dccd2654b9f5556e6d699a474721 Mon Sep 17 00:00:00 2001 From: Ellen Kraffmiller Date: Tue, 3 Jun 2025 16:27:04 -0400 Subject: [PATCH 03/11] lint fixes --- package-lock.json | 8 +++---- package.json | 2 +- .../useCases/getMyDataCollectionItems.ts | 24 ++++++++++++++++++- .../CollectionJSDataverseRepository.ts | 6 +++-- .../PublicationStatusFilters.tsx | 4 ++-- .../account/MyDataFilterPanel.spec.tsx | 6 ++--- .../account/MyDataItemsPanel.spec.tsx | 24 ++++++++++++++++++- .../account/PublicationStatusFilters.spec.tsx | 14 +++++------ 8 files changed, 67 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6b02acf26..b2c4a8bab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-pr313.c60a7d9", + "@iqss/dataverse-client-javascript": "2.0.0-pr313.5e6ee42", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2", @@ -3561,9 +3561,9 @@ }, "node_modules/@iqss/dataverse-client-javascript": { "name": "@IQSS/dataverse-client-javascript", - "version": "2.0.0-pr313.c60a7d9", - "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-pr313.c60a7d9/6a939db40fdf60a32a3ee252ba73eaa0cdf460cc", - "integrity": "sha512-7ZjbI4JUXra45oh78UFxBbktKV3a0Eq5YIw7omFB9HlYzox6xLx3GhmTIudQFormPMjGJXqzuEVnTvxjqa8CWQ==", + "version": "2.0.0-pr313.5e6ee42", + "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-pr313.5e6ee42/f4ec8e2601910d6b28d2b154c0db3aaf6bbaa143", + "integrity": "sha512-3MFE/vzcPXMLET/PIJo9TpuS0Y/SuEw8mJYEU2NURhy9zP37D5JpLRrzLoI5P5a81CjYRLZbzFzPVmHpMxqwFQ==", "license": "MIT", "dependencies": { "@types/node": "^18.15.11", diff --git a/package.json b/package.json index 4c87bea73..d094ca27d 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-pr313.c60a7d9", + "@iqss/dataverse-client-javascript": "2.0.0-pr313.5e6ee42", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2", diff --git a/src/collection/domain/useCases/getMyDataCollectionItems.ts b/src/collection/domain/useCases/getMyDataCollectionItems.ts index f19f0e13a..3087f163a 100644 --- a/src/collection/domain/useCases/getMyDataCollectionItems.ts +++ b/src/collection/domain/useCases/getMyDataCollectionItems.ts @@ -1,5 +1,6 @@ import { CollectionRepository } from '../repositories/CollectionRepository' import { MyDataCollectionItemSubset } from '../models/MyDataCollectionItemSubset' +import { PublicationStatus } from '../../../shared/core/domain/models/PublicationStatus' export async function getMyDataCollectionItems( collectionRepository: CollectionRepository, @@ -30,7 +31,28 @@ export async function getMyDataCollectionItems( ) { return { items: [], - publicationStatusCounts: [], + publicationStatusCounts: [ + { + publicationStatus: PublicationStatus.Unpublished, + count: 0 + }, + { + publicationStatus: PublicationStatus.Published, + count: 0 + }, + { + publicationStatus: PublicationStatus.Draft, + count: 0 + }, + { + publicationStatus: PublicationStatus.InReview, + count: 0 + }, + { + publicationStatus: PublicationStatus.Deaccessioned, + count: 0 + } + ], totalItemCount: 0, countPerObjectType: { collections: 0, diff --git a/src/collection/infrastructure/repositories/CollectionJSDataverseRepository.ts b/src/collection/infrastructure/repositories/CollectionJSDataverseRepository.ts index 10a539666..f558383d7 100644 --- a/src/collection/infrastructure/repositories/CollectionJSDataverseRepository.ts +++ b/src/collection/infrastructure/repositories/CollectionJSDataverseRepository.ts @@ -25,6 +25,8 @@ import { JSCollectionItemsMapper } from '../mappers/JSCollectionItemsMapper' import { CollectionFeaturedItem } from '@/collection/domain/models/CollectionFeaturedItem' import { CollectionFeaturedItemsDTO } from '@/collection/domain/useCases/DTOs/CollectionFeaturedItemsDTO' import { MyDataCollectionItemSubset } from '@/collection/domain/models/MyDataCollectionItemSubset' +import { CollectionItemType } from '@/collection/domain/models/CollectionItemType' +import { PublicationStatus } from '@/shared/core/domain/models/PublicationStatus' export class CollectionJSDataverseRepository implements CollectionRepository { getById(id?: string): Promise { @@ -76,8 +78,8 @@ export class CollectionJSDataverseRepository implements CollectionRepository { getMyDataItems( roleIds: number[], - collectionItemTypes: string[], - publicationStatuses: string[], + collectionItemTypes: CollectionItemType[], + publicationStatuses: PublicationStatus[], limit?: number, selectedPage?: number, searchText?: string, diff --git a/src/sections/account/my-data-section/my-data-filter-panel/publication-status-filters/PublicationStatusFilters.tsx b/src/sections/account/my-data-section/my-data-filter-panel/publication-status-filters/PublicationStatusFilters.tsx index 02d7363f5..daa07d87a 100644 --- a/src/sections/account/my-data-section/my-data-filter-panel/publication-status-filters/PublicationStatusFilters.tsx +++ b/src/sections/account/my-data-section/my-data-filter-panel/publication-status-filters/PublicationStatusFilters.tsx @@ -24,7 +24,7 @@ export const PublicationStatusFilters = ({ isLoadingCollectionItems }: PublicationStatusFiltersProps) => { const { t } = useTranslation('account') - + console.log('publicationStatusCounts', publicationStatusCounts) const handlePublicationStatusChange = ( publicationStatus: PublicationStatus, checked: boolean @@ -50,7 +50,7 @@ export const PublicationStatusFilters = ({ } label={ <> - {t(`${status}`)} ({count}) + {t(`${publicationStatus}`)} ({count}) } checked={currentPublicationStatuses?.includes(publicationStatus) ?? false} diff --git a/tests/component/sections/account/MyDataFilterPanel.spec.tsx b/tests/component/sections/account/MyDataFilterPanel.spec.tsx index fca1ec08b..7eb575b2a 100644 --- a/tests/component/sections/account/MyDataFilterPanel.spec.tsx +++ b/tests/component/sections/account/MyDataFilterPanel.spec.tsx @@ -17,9 +17,9 @@ describe('MyDataFilterPanel', () => { currentRoleIds={[1, 6, 7]} onRolesChange={onRolesChange} publicationStatusCounts={[ - { status: PublicationStatus.Unpublished, count: 10 }, - { status: PublicationStatus.Published, count: 5 }, - { status: PublicationStatus.Draft, count: 2 } + { publicationStatus: PublicationStatus.Unpublished, count: 10 }, + { publicationStatus: PublicationStatus.Published, count: 5 }, + { publicationStatus: PublicationStatus.Draft, count: 2 } ]} onPublicationStatusesChange={cy.stub().as('onPublicationStatusesChange')} currentPublicationStatuses={[ diff --git a/tests/component/sections/account/MyDataItemsPanel.spec.tsx b/tests/component/sections/account/MyDataItemsPanel.spec.tsx index 79e19484d..7dbdf2eed 100644 --- a/tests/component/sections/account/MyDataItemsPanel.spec.tsx +++ b/tests/component/sections/account/MyDataItemsPanel.spec.tsx @@ -3,6 +3,7 @@ import { CollectionRepository } from '@/collection/domain/repositories/Collectio import { CollectionItemsMother } from '@tests/component/collection/domain/models/CollectionItemsMother' import { MyDataItemsPanel } from '@/sections/account/my-data-section/MyDataItemsPanel' import { MyDataCollectionItemSubset } from '@/collection/domain/models/MyDataCollectionItemSubset' +import { PublicationStatus } from '@/shared/core/domain/models/PublicationStatus' const collectionRepository: CollectionRepository = {} as CollectionRepository @@ -31,7 +32,28 @@ const itemsWithCount: MyDataCollectionItemSubset = { const emptyItemsWithCount: MyDataCollectionItemSubset = { items: [], - publicationStatusCounts: [], + publicationStatusCounts: [ + { + publicationStatus: PublicationStatus.Unpublished, + count: 0 + }, + { + publicationStatus: PublicationStatus.Published, + count: 0 + }, + { + publicationStatus: PublicationStatus.Draft, + count: 0 + }, + { + publicationStatus: PublicationStatus.InReview, + count: 0 + }, + { + publicationStatus: PublicationStatus.Deaccessioned, + count: 0 + } + ], totalItemCount: 0, countPerObjectType: { collections: 0, diff --git a/tests/component/sections/account/PublicationStatusFilters.spec.tsx b/tests/component/sections/account/PublicationStatusFilters.spec.tsx index 12cb323c4..97dbbf182 100644 --- a/tests/component/sections/account/PublicationStatusFilters.spec.tsx +++ b/tests/component/sections/account/PublicationStatusFilters.spec.tsx @@ -3,9 +3,9 @@ import { PublicationStatus } from '@/shared/core/domain/models/PublicationStatus describe('PublicationStatusFilters', () => { const publicationStatusCounts = [ - { status: PublicationStatus.Published, count: 5 }, - { status: PublicationStatus.Unpublished, count: 10 }, - { status: PublicationStatus.Draft, count: 2 } + { publicationStatus: PublicationStatus.Published, count: 5 }, + { publicationStatus: PublicationStatus.Unpublished, count: 10 }, + { publicationStatus: PublicationStatus.Draft, count: 2 } ] const currentPublicationStatuses = [PublicationStatus.Unpublished, PublicationStatus.Draft] @@ -20,8 +20,8 @@ describe('PublicationStatusFilters', () => { /> ) - publicationStatusCounts.forEach(({ status, count }) => { - cy.findByLabelText(`${status} (${count})`).should('exist') + publicationStatusCounts.forEach(({ publicationStatus, count }) => { + cy.findByLabelText(`${publicationStatus} (${count})`).should('exist') }) }) @@ -60,8 +60,8 @@ describe('PublicationStatusFilters', () => { /> ) - publicationStatusCounts.forEach(({ status }) => { - cy.findByLabelText(new RegExp(`${status}`)).should('be.disabled') + publicationStatusCounts.forEach(({ publicationStatus }) => { + cy.findByLabelText(new RegExp(`${publicationStatus}`)).should('be.disabled') }) cy.customMount( From 9a262943b1e808c689e9eae46c4cee7d188f80fb Mon Sep 17 00:00:00 2001 From: Ellen Kraffmiller Date: Wed, 4 Jun 2025 09:33:04 -0400 Subject: [PATCH 04/11] remove console.log --- .../publication-status-filters/PublicationStatusFilters.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/sections/account/my-data-section/my-data-filter-panel/publication-status-filters/PublicationStatusFilters.tsx b/src/sections/account/my-data-section/my-data-filter-panel/publication-status-filters/PublicationStatusFilters.tsx index daa07d87a..1e6e5335e 100644 --- a/src/sections/account/my-data-section/my-data-filter-panel/publication-status-filters/PublicationStatusFilters.tsx +++ b/src/sections/account/my-data-section/my-data-filter-panel/publication-status-filters/PublicationStatusFilters.tsx @@ -24,7 +24,6 @@ export const PublicationStatusFilters = ({ isLoadingCollectionItems }: PublicationStatusFiltersProps) => { const { t } = useTranslation('account') - console.log('publicationStatusCounts', publicationStatusCounts) const handlePublicationStatusChange = ( publicationStatus: PublicationStatus, checked: boolean From 7b3671569fe88fc75f6bdfc27f2f7e5daea82b85 Mon Sep 17 00:00:00 2001 From: Ellen Kraffmiller Date: Wed, 4 Jun 2025 13:52:46 -0400 Subject: [PATCH 05/11] add default value for user name search --- src/sections/account/my-data-section/MyDataItemsPanel.tsx | 1 + tests/component/sections/account/MyDataItemsPanel.spec.tsx | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/sections/account/my-data-section/MyDataItemsPanel.tsx b/src/sections/account/my-data-section/MyDataItemsPanel.tsx index fe46f3717..c1a9fb45f 100644 --- a/src/sections/account/my-data-section/MyDataItemsPanel.tsx +++ b/src/sections/account/my-data-section/MyDataItemsPanel.tsx @@ -254,6 +254,7 @@ export const MyDataItemsPanel = ({ collectionRepository }: MyDataItemsPanelProps )} diff --git a/tests/component/sections/account/MyDataItemsPanel.spec.tsx b/tests/component/sections/account/MyDataItemsPanel.spec.tsx index 7dbdf2eed..21787f964 100644 --- a/tests/component/sections/account/MyDataItemsPanel.spec.tsx +++ b/tests/component/sections/account/MyDataItemsPanel.spec.tsx @@ -84,14 +84,17 @@ describe('MyDataItemsPanel', () => { it('renders the search input for superusers', () => { cy.mountSuperuser() - cy.findByPlaceholderText('Search by username...').should('exist') + cy.findByPlaceholderText('Search by username...') + .should('exist') + .invoke('val') + .should('equal', 'jamespotts') }) it('shows the correct message when there are no results for user', () => { collectionRepository.getMyDataItems = cy.stub().resolves(emptyItemsWithCount) cy.mountSuperuser() - cy.findByPlaceholderText('Search by username...').type('testUserName{enter}') + cy.findByPlaceholderText('Search by username...').clear().type('testUserName{enter}') cy.findByText(/No results found for user testUserName./).should('exist') }) From 0c0f1eb517887c274890c86aa9258abd932f3fd7 Mon Sep 17 00:00:00 2001 From: Ellen Kraffmiller Date: Thu, 5 Jun 2025 15:14:51 -0400 Subject: [PATCH 06/11] update getCollectionItems use case to not return object type counts; add logic to TypeFilters.tsx to conditionally display item counts --- .../domain/models/CollectionItemSubset.ts | 7 +++---- .../CollectionJSDataverseRepository.ts | 3 +-- .../CollectionItemsPanel.tsx | 2 -- .../filter-panel/FilterPanel.tsx | 10 ++-------- .../filter-panel/type-filters/TypeFilters.tsx | 18 +++++++++++++----- .../useGetAccumulatedItems.tsx | 15 +++------------ .../collection/CollectionMockRepository.ts | 7 +------ .../collection/NoCollectionMockRepository.ts | 7 +------ 8 files changed, 24 insertions(+), 45 deletions(-) diff --git a/src/collection/domain/models/CollectionItemSubset.ts b/src/collection/domain/models/CollectionItemSubset.ts index 208eea841..49aa5f0cb 100644 --- a/src/collection/domain/models/CollectionItemSubset.ts +++ b/src/collection/domain/models/CollectionItemSubset.ts @@ -6,7 +6,6 @@ export interface CollectionItemSubset { items: CollectionItem[] facets: CollectionItemsFacet[] totalItemCount: number - countPerObjectType: CountPerObjectType } export type CollectionItem = @@ -26,7 +25,7 @@ interface CollectionItemsFacetLabel { } export interface CountPerObjectType { - collections: number - datasets: number - files: number + collections?: number + datasets?: number + files?: number } diff --git a/src/collection/infrastructure/repositories/CollectionJSDataverseRepository.ts b/src/collection/infrastructure/repositories/CollectionJSDataverseRepository.ts index f558383d7..5e449a6a1 100644 --- a/src/collection/infrastructure/repositories/CollectionJSDataverseRepository.ts +++ b/src/collection/infrastructure/repositories/CollectionJSDataverseRepository.ts @@ -70,8 +70,7 @@ export class CollectionJSDataverseRepository implements CollectionRepository { return { items: collectionItemsPreviewsMapped, facets: jsCollectionItemSubset.facets, - totalItemCount: jsCollectionItemSubset.totalItemCount, - countPerObjectType: jsCollectionItemSubset.countPerObjectType + totalItemCount: jsCollectionItemSubset.totalItemCount } }) } diff --git a/src/sections/collection/collection-items-panel/CollectionItemsPanel.tsx b/src/sections/collection/collection-items-panel/CollectionItemsPanel.tsx index bea12d618..39397f69b 100644 --- a/src/sections/collection/collection-items-panel/CollectionItemsPanel.tsx +++ b/src/sections/collection/collection-items-panel/CollectionItemsPanel.tsx @@ -80,7 +80,6 @@ export const CollectionItemsPanel = ({ isLoadingItems, accumulatedItems, facets, - countPerObjectType, totalAvailable, hasNextPage, error, @@ -326,7 +325,6 @@ export const CollectionItemsPanel = ({ facets={facets} onFacetChange={handleFacetChange} isLoadingCollectionItems={isLoadingItems} - countPerObjectType={countPerObjectType} /> diff --git a/src/sections/collection/collection-items-panel/filter-panel/FilterPanel.tsx b/src/sections/collection/collection-items-panel/filter-panel/FilterPanel.tsx index 0e5cb5257..75c23e13a 100644 --- a/src/sections/collection/collection-items-panel/filter-panel/FilterPanel.tsx +++ b/src/sections/collection/collection-items-panel/filter-panel/FilterPanel.tsx @@ -4,10 +4,7 @@ import { Button, Offcanvas } from '@iqss/dataverse-design-system' import { FunnelFill } from 'react-bootstrap-icons' import { CollectionItemType } from '@/collection/domain/models/CollectionItemType' import { ItemTypeChange, TypeFilters } from './type-filters/TypeFilters' -import { - CollectionItemsFacet, - CountPerObjectType -} from '@/collection/domain/models/CollectionItemSubset' +import { CollectionItemsFacet } from '@/collection/domain/models/CollectionItemSubset' import { FilterQuery } from '@/collection/domain/models/CollectionSearchCriteria' import { FacetsFilters } from './facets-filters/FacetsFilters' import { RemoveAddFacetFilter } from './facets-filters/FacetFilterGroup' @@ -20,7 +17,6 @@ interface FilterPanelProps { currentFilterQueries?: FilterQuery[] onFacetChange: (filterQuery: FilterQuery, removeOrAdd: RemoveAddFacetFilter) => void isLoadingCollectionItems: boolean - countPerObjectType: CountPerObjectType } export const FilterPanel = ({ @@ -29,8 +25,7 @@ export const FilterPanel = ({ facets, currentFilterQueries, onFacetChange, - isLoadingCollectionItems, - countPerObjectType + isLoadingCollectionItems }: FilterPanelProps) => { const { t } = useTranslation('collection') @@ -59,7 +54,6 @@ export const FilterPanel = ({ onItemTypesChange={onItemTypesChange} currentItemTypes={currentItemTypes} isLoadingCollectionItems={isLoadingCollectionItems} - countPerObjectType={countPerObjectType} /> void isLoadingCollectionItems: boolean - countPerObjectType: CountPerObjectType + countPerObjectType?: CountPerObjectType } export interface ItemTypeChange { @@ -51,10 +51,12 @@ export const TypeFilters = ({ label={ <> - {t('collectionFilterTypeLabel')}{' '} - {`(${Intl.NumberFormat().format(countPerObjectType.collections)})`} + {countPerObjectType?.collections !== undefined && + currentItemTypes?.includes(CollectionItemType.COLLECTION) && ( + {`(${Intl.NumberFormat().format(countPerObjectType.collections)})`} + )} } @@ -71,7 +73,10 @@ export const TypeFilters = ({ {t('datasetFilterTypeLabel')}{' '} - {`(${Intl.NumberFormat().format(countPerObjectType.datasets)})`} + {countPerObjectType?.datasets !== undefined && + currentItemTypes?.includes(CollectionItemType.DATASET) && ( + {`(${Intl.NumberFormat().format(countPerObjectType.datasets)})`} + )} } @@ -88,7 +93,10 @@ export const TypeFilters = ({ {t('fileFilterTypeLabel')}{' '} - {`(${Intl.NumberFormat().format(countPerObjectType.files)})`} + {countPerObjectType?.files !== undefined && + currentItemTypes?.includes(CollectionItemType.FILE) && ( + {`(${Intl.NumberFormat().format(countPerObjectType.files)})`} + )} } diff --git a/src/sections/collection/collection-items-panel/useGetAccumulatedItems.tsx b/src/sections/collection/collection-items-panel/useGetAccumulatedItems.tsx index 3b1e1d75c..fa262478f 100644 --- a/src/sections/collection/collection-items-panel/useGetAccumulatedItems.tsx +++ b/src/sections/collection/collection-items-panel/useGetAccumulatedItems.tsx @@ -4,8 +4,7 @@ import { CollectionRepository } from '@/collection/domain/repositories/Collectio import { CollectionItem, CollectionItemsFacet, - CollectionItemSubset, - CountPerObjectType + CollectionItemSubset } from '@/collection/domain/models/CollectionItemSubset' import { CollectionItemsPaginationInfo } from '@/collection/domain/models/CollectionItemsPaginationInfo' import { CollectionSearchCriteria } from '@/collection/domain/models/CollectionSearchCriteria' @@ -16,7 +15,6 @@ type UseGetAccumulatedItemsReturnType = { isLoadingItems: boolean accumulatedItems: CollectionItem[] facets: CollectionItemsFacet[] - countPerObjectType: CountPerObjectType totalAvailable: number | undefined hasNextPage: boolean error: string | null @@ -42,11 +40,7 @@ export const useGetAccumulatedItems = ({ const [isLoadingItems, setIsLoadingItems] = useState(false) const [accumulatedItems, setAccumulatedItems] = useState([]) const [facets, setFacets] = useState([]) - const [countPerObjectType, setCountPerObjectType] = useState({ - collections: 0, - datasets: 0, - files: 0 - }) + const [hasNextPage, setHasNextPage] = useState(true) const [totalAvailable, setTotalAvailable] = useState(undefined) const [error, setError] = useState(null) @@ -65,7 +59,7 @@ export const useGetAccumulatedItems = ({ setIsLoadingItems(true) try { - const { items, facets, totalItemCount, countPerObjectType } = await loadNextItems( + const { items, facets, totalItemCount } = await loadNextItems( collectionRepository, collectionId, pagination, @@ -78,8 +72,6 @@ export const useGetAccumulatedItems = ({ setFacets(facets) - setCountPerObjectType(countPerObjectType) - setTotalAvailable(totalItemCount) const isNextPage = !resetAccumulated @@ -108,7 +100,6 @@ export const useGetAccumulatedItems = ({ isLoadingItems, accumulatedItems, facets, - countPerObjectType, totalAvailable, hasNextPage, error, diff --git a/src/stories/collection/CollectionMockRepository.ts b/src/stories/collection/CollectionMockRepository.ts index 8c073a08b..a39d02067 100644 --- a/src/stories/collection/CollectionMockRepository.ts +++ b/src/stories/collection/CollectionMockRepository.ts @@ -88,12 +88,7 @@ export class CollectionMockRepository implements CollectionRepository { resolve({ items: filteredByTypeItems, facets: facets, - totalItemCount: isDefaultSelected ? 6 : 200, // This is a fake number, its big so we can always scroll to load more items for the story - countPerObjectType: { - collections: numberOfCollections, - datasets: numberOfDatasets, - files: numberOfFiles - } + totalItemCount: isDefaultSelected ? 6 : 200 // This is a fake number, its big so we can always scroll to load more items for the story }) }, FakerHelper.loadingTimout()) }) diff --git a/src/stories/collection/NoCollectionMockRepository.ts b/src/stories/collection/NoCollectionMockRepository.ts index 7733454db..1239b2878 100644 --- a/src/stories/collection/NoCollectionMockRepository.ts +++ b/src/stories/collection/NoCollectionMockRepository.ts @@ -34,12 +34,7 @@ export class NoCollectionMockRepository extends CollectionMockRepository { resolve({ items: [], facets: [], - totalItemCount: 0, - countPerObjectType: { - collections: 0, - datasets: 0, - files: 0 - } + totalItemCount: 0 }) }, FakerHelper.loadingTimout()) }) From 18b0b70612ee15d6385e649f9dd60366913dd9b9 Mon Sep 17 00:00:00 2001 From: Ellen Kraffmiller Date: Thu, 5 Jun 2025 15:17:58 -0400 Subject: [PATCH 07/11] revert change to optional properties in CountPerObjectType --- src/collection/domain/models/CollectionItemSubset.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/collection/domain/models/CollectionItemSubset.ts b/src/collection/domain/models/CollectionItemSubset.ts index 49aa5f0cb..16b68d7a9 100644 --- a/src/collection/domain/models/CollectionItemSubset.ts +++ b/src/collection/domain/models/CollectionItemSubset.ts @@ -25,7 +25,7 @@ interface CollectionItemsFacetLabel { } export interface CountPerObjectType { - collections?: number - datasets?: number - files?: number + collections: number + datasets: number + files: number } From fe38c61fdf6d4f12005ef761733697f2c56327c7 Mon Sep 17 00:00:00 2001 From: Ellen Kraffmiller Date: Thu, 5 Jun 2025 15:35:07 -0400 Subject: [PATCH 08/11] update to latest js-dataverse PR version --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index b2c4a8bab..8f36a133a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-pr313.5e6ee42", + "@iqss/dataverse-client-javascript": "2.0.0-pr313.1839da5", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2", @@ -3561,9 +3561,9 @@ }, "node_modules/@iqss/dataverse-client-javascript": { "name": "@IQSS/dataverse-client-javascript", - "version": "2.0.0-pr313.5e6ee42", - "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-pr313.5e6ee42/f4ec8e2601910d6b28d2b154c0db3aaf6bbaa143", - "integrity": "sha512-3MFE/vzcPXMLET/PIJo9TpuS0Y/SuEw8mJYEU2NURhy9zP37D5JpLRrzLoI5P5a81CjYRLZbzFzPVmHpMxqwFQ==", + "version": "2.0.0-pr313.1839da5", + "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-pr313.1839da5/bf228eeb77f4fe155e02df9c65b04caa3a687632", + "integrity": "sha512-spadU/6SiZ1duDauAXkvCmMiNjW35CysnRpUu05A+zpAkMwDp88ElVkDdLNsORakkyIAWfPHL//XU/B8lCfpyw==", "license": "MIT", "dependencies": { "@types/node": "^18.15.11", diff --git a/package.json b/package.json index d094ca27d..a456754a2 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-pr313.5e6ee42", + "@iqss/dataverse-client-javascript": "2.0.0-pr313.1839da5", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2", From 130f4bf9d662e0425dd9baaf76cf63a06b73d4ea Mon Sep 17 00:00:00 2001 From: Ellen Kraffmiller Date: Thu, 5 Jun 2025 15:51:20 -0400 Subject: [PATCH 09/11] update README.md to include change from JSF functionality --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 1170cf3dc..f70dbef16 100644 --- a/README.md +++ b/README.md @@ -215,6 +215,11 @@ The environment is accessible through the following URLs: > We have implemented infinite scrolling in this list, replacing the normal paging buttons, but the goal would be to be > able to toggle between normal paging and infinite scrolling via a toggle setting or button. > +> #### Collection Items Count +> +> To avoid potential performance issues we agree on hiding the counts of collections, datasets and files in the +> Collection Page Items List. +> > #### Create/Edit Collection Page Identifier Field > > A feature has been added to suggest an identifier to the user based on the collection name entered. From 4203842f7463746fb727368b544f9acadc6fdbe9 Mon Sep 17 00:00:00 2001 From: Ellen Kraffmiller Date: Thu, 5 Jun 2025 17:49:51 -0400 Subject: [PATCH 10/11] update package.json to alpha.50 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a456754a2..ff2e51629 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-pr313.1839da5", + "@iqss/dataverse-client-javascript": "2.0.0-alpha.50", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2", From 3a0e75f1a4f16d35a3b4ead4ec056376f66c3fcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Germ=C3=A1n=20Saracca?= Date: Fri, 6 Jun 2025 08:07:56 -0300 Subject: [PATCH 11/11] chore: update lock json --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8f36a133a..0f4a1ba52 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@dnd-kit/sortable": "8.0.0", "@dnd-kit/utilities": "3.2.2", "@faker-js/faker": "7.6.0", - "@iqss/dataverse-client-javascript": "2.0.0-pr313.1839da5", + "@iqss/dataverse-client-javascript": "2.0.0-alpha.50", "@iqss/dataverse-design-system": "*", "@istanbuljs/nyc-config-typescript": "1.0.2", "@tanstack/react-table": "8.9.2", @@ -3561,9 +3561,9 @@ }, "node_modules/@iqss/dataverse-client-javascript": { "name": "@IQSS/dataverse-client-javascript", - "version": "2.0.0-pr313.1839da5", - "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-pr313.1839da5/bf228eeb77f4fe155e02df9c65b04caa3a687632", - "integrity": "sha512-spadU/6SiZ1duDauAXkvCmMiNjW35CysnRpUu05A+zpAkMwDp88ElVkDdLNsORakkyIAWfPHL//XU/B8lCfpyw==", + "version": "2.0.0-alpha.50", + "resolved": "https://npm.pkg.github.com/download/@IQSS/dataverse-client-javascript/2.0.0-alpha.50/a0c9ee35c7fb60187f1f3b856d9bd6e5f748f7ac", + "integrity": "sha512-7L61E8UEJb6y8+wBMobJWpkQ2RrQ0fbwQinIwHR02qjnfzd2v6O3VyiS1+vCl3UcOs+5dqYZKDPib3Md2Lx/wA==", "license": "MIT", "dependencies": { "@types/node": "^18.15.11",