From 387501f5b775dd651ea73322e192c74291842e89 Mon Sep 17 00:00:00 2001 From: Demerson Carvalho Date: Mon, 9 Feb 2026 09:49:15 -0300 Subject: [PATCH] DECAF-26 - fix modal close on list component refresh --- .../components/crud-field/crud-field.component.ts | 2 +- src/lib/components/list/list.component.ts | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/lib/components/crud-field/crud-field.component.ts b/src/lib/components/crud-field/crud-field.component.ts index a2405e94..9b273269 100644 --- a/src/lib/components/crud-field/crud-field.component.ts +++ b/src/lib/components/crud-field/crud-field.component.ts @@ -58,7 +58,6 @@ import { getNgxSelectOptionsModal } from '../modal/modal.component'; import { ActionRoles, SelectFieldInterfaces } from '../../engine/constants'; import { IconComponent } from '../icon/icon.component'; import { getModelAndRepository } from '../../engine/helpers'; -import { Validator } from '@decaf-ts/decorator-validation'; /** * @description A dynamic form field component for CRUD operations. @@ -804,6 +803,7 @@ export class CrudFieldComponent */ async openSelectOptions(event: Event, selectInterface: SelectInterface): Promise { if (selectInterface === SelectFieldInterfaces.MODAL) { + this.updateOn = 'blur'; event.preventDefault(); event.stopImmediatePropagation(); const loading = await this.loadingController.create({} as LoadingOptions); diff --git a/src/lib/components/list/list.component.ts b/src/lib/components/list/list.component.ts index 2716ddda..b77fd4cd 100644 --- a/src/lib/components/list/list.component.ts +++ b/src/lib/components/list/list.component.ts @@ -967,11 +967,14 @@ export class ListComponent extends NgxComponentDirective implements OnInit, OnDe refreshEventEmit(data?: KeyValue[]): void { if (!data) data = this.items; this.skeletonData = new Array(1); - this.refreshEvent.emit({ - name: ComponentEventNames.Refresh, - data: data || [], - component: this.componentName, - }); + // Avoid emitting refresh events when the component is a child of a modal to prevent + if (!this.isModalChild) { + this.refreshEvent.emit({ + name: ComponentEventNames.Refresh, + data: data || [], + component: this.componentName, + }); + } } /**