diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts index b30b8cc216..2333106580 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/user/user.db.ts @@ -1,5 +1,5 @@ import { umbUserGroupMockDb } from '../user-group/user-group.db.js'; -import { arrayFilter, stringFilter, queryFilter } from '../utils.js'; +import { arrayFilter, stringFilter, queryFilter, objectArrayFilter } from '../utils.js'; import { UmbEntityMockDbBase } from '../utils/entity/entity-base.js'; import { UmbMockEntityItemManager } from '../utils/entity/entity-item.manager.js'; import { UmbMockEntityDetailManager } from '../utils/entity/entity-detail.manager.js'; @@ -28,7 +28,7 @@ interface UserFilterOptions { } const userGroupFilter = (filterOptions: UserFilterOptions, item: UmbMockUserModel) => - arrayFilter(filterOptions.userGroupIds, item.userGroupIds); + objectArrayFilter(filterOptions.userGroupIds, item.userGroupIds, 'id'); const userStateFilter = (filterOptions: UserFilterOptions, item: UmbMockUserModel) => stringFilter(filterOptions.userStates, item.state); const userQueryFilter = (filterOptions: UserFilterOptions, item: UmbMockUserModel) => diff --git a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts index 1635df1b75..7b2536ef50 100644 --- a/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts +++ b/src/Umbraco.Web.UI.Client/src/mocks/data/utils.ts @@ -7,11 +7,20 @@ export const arrayFilter = (filterBy: Array, value?: Array): boo return filterBy.some((filterValue: string) => value?.includes(filterValue)); }; +export const objectArrayFilter = (filterBy: Array, value: Array, key: string): boolean => { + if (!filterBy || !value) { + return true; + } + + return value.map((value) => value[key]).some((value: any) => filterBy.includes(value)); +}; + export const stringFilter = (filterBy: Array, value?: string): boolean => { // if a filter is not set, return all items if (!filterBy || !value) { return true; } + return filterBy.includes(value); };