diff --git a/packages/web-app-files/src/views/shares/SharedWithMe.vue b/packages/web-app-files/src/views/shares/SharedWithMe.vue index e9759f009d0..1ccd029014f 100644 --- a/packages/web-app-files/src/views/shares/SharedWithMe.vue +++ b/packages/web-app-files/src/views/shares/SharedWithMe.vue @@ -269,7 +269,7 @@ const fileOwners = computed(() => { .filter((i) => i.sharedBy) .map((i) => i.sharedBy) .flat() - return [...new Map(flatList.map((item) => [item.displayName, item])).values()] + return [...new Map(flatList.map((item) => [item.id, item])).values()] }) let loadResourcesEventToken: string diff --git a/packages/web-app-files/tests/unit/views/shares/SharedWithMe.spec.ts b/packages/web-app-files/tests/unit/views/shares/SharedWithMe.spec.ts index e8b3211d494..52009b22776 100644 --- a/packages/web-app-files/tests/unit/views/shares/SharedWithMe.spec.ts +++ b/packages/web-app-files/tests/unit/views/shares/SharedWithMe.spec.ts @@ -151,6 +151,26 @@ describe('SharedWithMe view', () => { expect(wrapper.find('.shared-by-filter').exists()).toBeTruthy() expect(filterItems).toEqual([collaborator1, collaborator2]) }) + it('lists collaborators with the same display name separately', () => { + const collaborator1 = { id: 'user1', displayName: 'Twin' } + const collaborator2 = { id: 'user2', displayName: 'Twin' } + const { wrapper } = getMountedWrapper({ + files: [ + mock({ + sharedBy: [collaborator1], + shareTypes: [ShareTypes.user.value] + }), + mock({ + sharedBy: [collaborator2, collaborator1], + shareTypes: [ShareTypes.user.value] + }) + ] + }) + const filterItems = wrapper + .findComponent('.shared-by-filter') + .props('items') + expect(filterItems).toEqual([collaborator1, collaborator2]) + }) }) describe('search', () => { it('shows filter', () => {