Przeglądaj źródła

fix(core): Add usage check of nested custom property filters in ListQueryBuilder (#2939)

Co-authored-by: Edgars Jegorovs <edgars.jegorovs@pearlgroup.no>
Edgar Jegorov 1 rok temu
rodzic
commit
05cfc9da07

+ 13 - 1
packages/core/src/service/helpers/list-query-builder/list-query-builder.ts

@@ -427,7 +427,19 @@ export class ListQueryBuilder implements OnApplicationBootstrap {
     }
 
     private customPropertyIsBeingUsed(property: string, options: ListQueryOptions<any>): boolean {
-        return !!(options.sort?.[property] || options.filter?.[property]);
+        return !!(options.sort?.[property] || this.isPropertyUsedInFilter(property, options.filter));
+    }
+
+    private isPropertyUsedInFilter(
+        property: string,
+        filter?: NullOptionals<FilterParameter<any>> | null,
+    ): boolean {
+        return !!(
+            filter &&
+            (filter[property] ||
+                filter._and?.some(nestedFilter => this.isPropertyUsedInFilter(property, nestedFilter)) ||
+                filter._or?.some(nestedFilter => this.isPropertyUsedInFilter(property, nestedFilter)))
+        );
     }
 
     /**