Skip to content

Commit 53757aa

Browse files
committed
added equalsFrom for filter
1 parent f14a6b4 commit 53757aa

File tree

1 file changed

+17
-1
lines changed

1 file changed

+17
-1
lines changed

packages/digit_flow_builder/lib/blocs/state_wrapper_builder.dart

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,13 +253,29 @@ class WrapperBuilder {
253253
final filters = config['filters'] as List<dynamic>?;
254254
if (filters == null || filters.isEmpty) return true;
255255

256+
// Get navigation params from registry for template resolution
257+
final navigationParams = screenKey != null
258+
? FlowCrudStateRegistry().getNavigationParams(screenKey!) ?? {}
259+
: <String, dynamic>{};
260+
261+
// Build context for resolving equalsFrom templates
262+
final resolveContext = <String, dynamic>{
263+
'navigation': navigationParams,
264+
};
265+
256266
for (final filter in filters) {
257267
final field = filter['field'];
258268
final equals = filter['equals'];
269+
final equalsFrom = filter['equalsFrom'] as String?;
259270

260271
if (!filter.containsKey('entity')) {
261272
final value = EnhancedEntityFieldAccessor.getFieldValue(root, field);
262-
if (equals != null && value != equals) return false;
273+
274+
// Handle equalsFrom with template resolution
275+
if (equalsFrom != null) {
276+
final resolvedEquals = _resolveValue(equalsFrom, root, resolveContext);
277+
if (resolvedEquals != null && value != resolvedEquals) return false;
278+
} else if (equals != null && value != equals) return false;
263279
} else {
264280
final entityType = filter['entity'];
265281
final condition = filter['condition'];

0 commit comments

Comments
 (0)