diff --git a/webapp/packages/core-sdk/src/Resource/CachedMapResource.ts b/webapp/packages/core-sdk/src/Resource/CachedMapResource.ts index f40e64510d..4a38af4b34 100644 --- a/webapp/packages/core-sdk/src/Resource/CachedMapResource.ts +++ b/webapp/packages/core-sdk/src/Resource/CachedMapResource.ts @@ -374,6 +374,10 @@ export abstract class CachedMapResource< return this.isAliasEqual(param, key); } + if (ResourceKeyUtils.isEmpty(param) || ResourceKeyUtils.isEmpty(key)) { + return ResourceKeyUtils.isEmpty(param) && ResourceKeyUtils.isEmpty(key); + } + param = ResourceKeyUtils.mapKey(param, this.getKeyRef.bind(this)); key = ResourceKeyUtils.mapKey(key, this.getKeyRef.bind(this)); diff --git a/webapp/packages/core-sdk/src/Resource/ResourceKeyList.ts b/webapp/packages/core-sdk/src/Resource/ResourceKeyList.ts index 757aed34cd..44f8ca306f 100644 --- a/webapp/packages/core-sdk/src/Resource/ResourceKeyList.ts +++ b/webapp/packages/core-sdk/src/Resource/ResourceKeyList.ts @@ -41,6 +41,7 @@ interface MapFnc { } export interface ResourceKeyUtils { + isEmpty: (key: ResourceKey) => boolean; hasMark: (key: ResourceKey, mark: any) => boolean; count: (key: ResourceKey) => number; first: (key: ResourceKey) => TKey; @@ -65,6 +66,16 @@ export interface ResourceKeyUtils { // eslint-disable-next-line @typescript-eslint/no-redeclare export const ResourceKeyUtils: ResourceKeyUtils = { + isEmpty( + key: ResourceKey + ): boolean { + if (isResourceKeyList(key)) { + return key.list.length === 0; + } else { + return false; + } + }, + hasMark( key: ResourceKey, mark: any