From f4b0b7ccf03cea0b263c7f81876f228bb1047c1d Mon Sep 17 00:00:00 2001 From: Aleksey Semikozov Date: Sun, 15 Mar 2026 23:19:23 -0300 Subject: [PATCH] Scheduler - Close Repeat SelectBox popup when navigating to recurrence group --- .../appointment_popup.test.ts | 22 +++++++++++++++++++ .../scheduler/appointment_popup/m_form.ts | 2 ++ 2 files changed, 24 insertions(+) diff --git a/packages/devextreme/js/__internal/scheduler/appointment_popup/appointment_popup.test.ts b/packages/devextreme/js/__internal/scheduler/appointment_popup/appointment_popup.test.ts index a8362c1f08a5..b9277e501c79 100644 --- a/packages/devextreme/js/__internal/scheduler/appointment_popup/appointment_popup.test.ts +++ b/packages/devextreme/js/__internal/scheduler/appointment_popup/appointment_popup.test.ts @@ -1307,6 +1307,28 @@ describe('Appointment Form', () => { expect(POM.popup.isRecurrenceGroupVisible()).toBe(true); }); + it('should close repeat selectbox popup when navigating to recurrence group via settings button', async () => { + const { POM, scheduler } = await createScheduler({ + ...getDefaultConfig(), + dataSource: [{ ...recurringAppointment }], + }); + + const dataSource = (scheduler as any).getDataSource(); + const appointment = dataSource.items()[0]; + + scheduler.showAppointmentPopup(appointment); + POM.popup.editSeriesButton.click(); + + const repeatEditor = POM.popup.dxForm.getEditor('repeatEditor'); + POM.popup.getInput('repeatEditor').click(); + + expect(repeatEditor?.option('opened')).toBe(true); + + POM.popup.recurrenceSettingsButton.click(); + + expect(repeatEditor?.option('opened')).toBe(false); + }); + it('should have disabled week day buttons when allowUpdating is false', async () => { const { POM, scheduler } = await createScheduler({ ...getDefaultConfig(), diff --git a/packages/devextreme/js/__internal/scheduler/appointment_popup/m_form.ts b/packages/devextreme/js/__internal/scheduler/appointment_popup/m_form.ts index dc44f0c7be9a..efc19d4d3c1d 100644 --- a/packages/devextreme/js/__internal/scheduler/appointment_popup/m_form.ts +++ b/packages/devextreme/js/__internal/scheduler/appointment_popup/m_form.ts @@ -920,6 +920,8 @@ export class AppointmentForm { } showRecurrenceGroup(): void { + (this.dxForm.getEditor(REPEAT_EDITOR_NAME) as { close?: () => void })?.close?.(); + this._popup.updateToolbarForRecurrenceGroup(); const currentHeight = this.dxPopup.option('height') as string | number | undefined;