Skip to content

Scheduler - Appointments Refactoring - Rendering#33014

Open
Tucchhaa wants to merge 8 commits intoDevExpress:26_1from
Tucchhaa:new_rendering_26_1
Open

Scheduler - Appointments Refactoring - Rendering#33014
Tucchhaa wants to merge 8 commits intoDevExpress:26_1from
Tucchhaa:new_rendering_26_1

Conversation

@Tucchhaa
Copy link
Contributor

No description provided.

@Tucchhaa Tucchhaa self-assigned this Mar 23, 2026
@Tucchhaa Tucchhaa added the 26_1 label Mar 23, 2026
Comment on lines -17 to -18
startDate: Date | string;
endDate: Date | string;
Copy link
Contributor Author

Choose a reason for hiding this comment

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

SafeAppointment type actually doesn't have this properties, so I have removed them

@Tucchhaa Tucchhaa marked this pull request as ready for review March 25, 2026 15:16
@Tucchhaa Tucchhaa requested a review from a team as a code owner March 25, 2026 15:16
Copilot AI review requested due to automatic review settings March 25, 2026 15:16
Copy link
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

This PR introduces a new internal Scheduler appointments rendering implementation (behind the _newAppointments option), including incremental rendering via view model diffing, plus supporting utilities, styling updates, and test coverage.

Changes:

  • Added appointments_new components (appointments container, base appointment, grid/agenda appointments, collector) and utilities (diffing, targeted appointment, date text) with Jest tests.
  • Integrated the new appointments implementation into m_scheduler.ts when _newAppointments is enabled.
  • Updated Scheduler appointment CSS selectors and refreshed TestCafe visual etalons accordingly.

Reviewed changes

Copilot reviewed 27 out of 33 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/devextreme/js/__internal/scheduler/utils/get_targeted_appointment.ts Marks old targeted-appointment helper for removal after legacy deletion.
packages/devextreme/js/__internal/scheduler/types.ts Simplifies SafeAppointment typing to align with Scheduler Appointment (Date | string dates already supported).
packages/devextreme/js/__internal/scheduler/m_subscribes.ts Switches legacy date-text formatting to new helper and adds legacy-compat TODOs.
packages/devextreme/js/__internal/scheduler/m_scheduler.ts Wires in new Appointments component behind _newAppointments, including onAppointmentRendered action bridging and container wiring.
packages/devextreme/js/__internal/scheduler/m_compact_appointments_helper.ts Marks legacy helper for removal.
packages/devextreme/js/__internal/scheduler/m_classes.ts Marks legacy class exports for cleanup after old impl removal.
packages/devextreme/js/__internal/scheduler/appointments_new/utils/type_helpers.ts Adds type guards for new appointment view model variants.
packages/devextreme/js/__internal/scheduler/appointments_new/utils/get_view_model_diff.ts Adds diffing logic supporting add/remove/resize operations for incremental rendering.
packages/devextreme/js/__internal/scheduler/appointments_new/utils/get_view_model_diff.test.ts Adds Jest coverage for diffing behavior.
packages/devextreme/js/__internal/scheduler/appointments_new/utils/get_targeted_appointment.ts Adds targeted-appointment construction for new appointment view models (incl. resources).
packages/devextreme/js/__internal/scheduler/appointments_new/utils/get_targeted_appointment.test.ts Adds Jest coverage for targeted appointment construction and resource enrichment.
packages/devextreme/js/__internal/scheduler/appointments_new/utils/get_date_text.ts Adds date text formatting utilities used by new/bridged rendering paths.
packages/devextreme/js/__internal/scheduler/appointments_new/const.ts Introduces shared CSS class constants and localized strings for new appointments rendering.
packages/devextreme/js/__internal/scheduler/appointments_new/appointments.ts New appointments container component implementing diff-based incremental DOM updates.
packages/devextreme/js/__internal/scheduler/appointments_new/appointments.test.ts Jest coverage for rendering, partial updates, all-day container routing, and onAppointmentRendered.
packages/devextreme/js/__internal/scheduler/appointments_new/appointment_collector.ts New appointment-collector component (button-based) for compact/“more” UI.
packages/devextreme/js/__internal/scheduler/appointments_new/appointment_collector.test.ts Jest coverage for collector CSS classes, aria, positioning, and text.
packages/devextreme/js/__internal/scheduler/appointments_new/appointment/grid_appointment.ts New grid appointment component (geometry + content + resource color).
packages/devextreme/js/__internal/scheduler/appointments_new/appointment/grid_appointment.test.ts Jest coverage for grid appointment rendering details and resource coloring.
packages/devextreme/js/__internal/scheduler/appointments_new/appointment/base_appointment.ts Base appointment component with templating, action dispatch, aria role, and common helpers.
packages/devextreme/js/__internal/scheduler/appointments_new/appointment/base_appointment.test.ts Jest coverage for base appointment classes and basic aria role.
packages/devextreme/js/__internal/scheduler/appointments_new/appointment/agenda_appointment.ts New agenda appointment component with marker, details, and resource list rendering.
packages/devextreme/js/__internal/scheduler/appointments_new/appointment/agenda_appointment.test.ts Jest coverage for agenda appointment behavior incl. resources and recurrence.
packages/devextreme/js/__internal/scheduler/appointments_new/mock/appointment_properties.ts Test helpers for generating mock view models and base appointment props.
packages/devextreme-scss/scss/widgets/material/scheduler/_index.scss Updates selectors to apply appointment-content styling without relying on .dx-item-content.
packages/devextreme-scss/scss/widgets/generic/scheduler/_index.scss Same selector adjustment for generic theme.
packages/devextreme-scss/scss/widgets/fluent/scheduler/_index.scss Same selector adjustment for fluent theme.
e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-vertical-rtl (fluent.blue.light).png Updated visual baseline due to styling/rendering changes.
e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-rtl (fluent.blue.light).png Updated visual baseline due to styling/rendering changes.
e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-vertical-rtl (fluent.blue.light).png Updated visual baseline due to styling/rendering changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants