Skip to content

Scheduler New Form — Fix slide animation overlapping items outside mainGroup#32958

Merged
aleksei-semikozov merged 5 commits intoDevExpress:26_1from
aleksei-semikozov:cherry-pick/scheduler-form-animation-overlap-26_1
Mar 19, 2026
Merged

Scheduler New Form — Fix slide animation overlapping items outside mainGroup#32958
aleksei-semikozov merged 5 commits intoDevExpress:26_1from
aleksei-semikozov:cherry-pick/scheduler-form-animation-overlap-26_1

Conversation

@aleksei-semikozov
Copy link
Copy Markdown
Contributor

No description provided.

@aleksei-semikozov aleksei-semikozov self-assigned this Mar 18, 2026
@aleksei-semikozov aleksei-semikozov marked this pull request as ready for review March 18, 2026 15:41
@aleksei-semikozov aleksei-semikozov requested a review from a team as a code owner March 18, 2026 15:41
Copilot AI review requested due to automatic review settings March 18, 2026 15:41
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes the appointment form slide animation in Scheduler so that when the main/recurrence groups are moved to position: absolute during the transition, they don’t overlap custom form items placed outside (e.g., before) mainGroup.

Changes:

  • Compute and store a top offset (--dx-scheduler-animation-top) on the form element when switching to the recurrence form.
  • Use that CSS variable for top positioning of the hidden main/recurrence groups during slide transitions.
  • Add Jest coverage (and mock layout data) plus a Storybook scenario demonstrating a custom item before mainGroup.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/devextreme/js/__internal/scheduler/appointment_popup/m_form.ts Calculates and sets --dx-scheduler-animation-top before switching to recurrence group.
packages/devextreme/js/__internal/scheduler/appointment_popup/appointment_popup.test.ts Adds a test asserting the CSS variable is set when switching to recurrence via repeat selection.
packages/devextreme/js/__internal/scheduler/tests/mock/m_mock_scheduler.ts Extends getBoundingClientRect mock to provide a non-zero top for .dx-scheduler-form-main-group.
packages/devextreme-scss/scss/widgets/base/scheduler/_index.scss Applies top: var(--dx-scheduler-animation-top, 0) for hidden form groups to avoid overlap.
apps/react-storybook/stories/scheduler/form-customization.css Adds styling for a custom notice element used in the new Storybook story.
apps/react-storybook/stories/scheduler/SchedulerFormCustomization.stories.tsx Adds a story placing a custom item before mainGroup to showcase the fixed animation behavior.

You can also share your feedback on Copilot code review. Take the survey.

Copilot AI review requested due to automatic review settings March 19, 2026 12:34
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes the Scheduler appointment popup “new form” slide animation so that when switching between mainGroup and recurrenceGroup, the animated (absolutely positioned) group doesn’t overlap custom items placed before mainGroup.

Changes:

  • Compute the mainGroup vertical offset within the form on recurrence navigation and store it in a CSS variable (--dx-scheduler-animation-top).
  • Use that CSS variable for the top value of the hidden (sliding) main/recurrence groups in Scheduler SCSS.
  • Add Jest coverage (with enhanced test DOM rect mocking) and a React Storybook scenario demonstrating a custom item placed before mainGroup.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
packages/devextreme/js/__internal/scheduler/appointment_popup/m_form.ts Sets --dx-scheduler-animation-top before applying hidden/absolute positioning for the slide animation.
packages/devextreme-scss/scss/widgets/base/scheduler/_index.scss Applies top: var(--dx-scheduler-animation-top, 0) to hidden sliding groups to prevent overlap with preceding items.
packages/devextreme/js/__internal/scheduler/appointment_popup/appointment_popup.test.ts Adds a test asserting the CSS variable is set when navigating to the recurrence form.
packages/devextreme/js/__internal/scheduler/__tests__/__mock__/m_mock_scheduler.ts Extends getBoundingClientRect mock to support per-class rect overrides for tests.
apps/react-storybook/stories/scheduler/form-customization.css Adds styling for a custom notice element used in the new story.
apps/react-storybook/stories/scheduler/SchedulerFormCustomization.stories.tsx Adds a story demonstrating a custom element placed before mainGroup to validate the fix visually.

You can also share your feedback on Copilot code review. Take the survey.

Tucchhaa
Tucchhaa previously approved these changes Mar 19, 2026
Copilot AI review requested due to automatic review settings March 19, 2026 13:22
@aleksei-semikozov aleksei-semikozov force-pushed the cherry-pick/scheduler-form-animation-overlap-26_1 branch from 79f72f3 to f07961f Compare March 19, 2026 13:22
@aleksei-semikozov aleksei-semikozov force-pushed the cherry-pick/scheduler-form-animation-overlap-26_1 branch from f07961f to 81fe593 Compare March 19, 2026 13:25
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes Scheduler Appointment Popup slide animation so hidden/transitioning groups don’t overlap custom content placed above mainGroup in the new form layout.

Changes:

  • Introduces a CSS variable (--dx-scheduler-animation-top) to offset hidden group positioning during slide transitions.
  • Computes and sets the offset dynamically when switching to the recurrence form.
  • Extends scheduler test environment mocking to support custom getBoundingClientRect values and adds a regression test; adds a Storybook scenario demonstrating the customization case.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/devextreme/js/__internal/scheduler/appointment_popup/m_form.ts Computes and sets the animation top offset on the form when switching to the recurrence group.
packages/devextreme/js/__internal/scheduler/appointment_popup/appointment_popup.test.ts Adds a test asserting the CSS variable is set correctly when switching to recurrence.
packages/devextreme/js/__internal/scheduler/tests/mock/m_mock_scheduler.ts Enhances getBoundingClientRect mocking to support per-class rect overrides for tests.
packages/devextreme-scss/scss/widgets/base/scheduler/_index.scss Uses --dx-scheduler-animation-top for top on hidden main/recurrence groups.
apps/react-storybook/stories/scheduler/form-customization.css Adds styling for a custom notice element used in a new Storybook case.
apps/react-storybook/stories/scheduler/SchedulerFormCustomization.stories.tsx Adds a story with a custom item before mainGroup to validate slide behavior visually.

You can also share your feedback on Copilot code review. Take the survey.

Comment thread packages/devextreme/js/__internal/scheduler/appointment_popup/m_form.ts Outdated
@aleksei-semikozov aleksei-semikozov merged commit aac96da into DevExpress:26_1 Mar 19, 2026
118 of 119 checks passed
@aleksei-semikozov aleksei-semikozov deleted the cherry-pick/scheduler-form-animation-overlap-26_1 branch March 20, 2026 17:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants