Skip to content

Grids - DataController: Refactoring the _partialUpdateRow method - #34926

Open
Alyar666 wants to merge 3 commits into
DevExpress:mainfrom
Alyar666:gridcore_datacontroller__extract_row_diffing_engine_26_2
Open

Grids - DataController: Refactoring the _partialUpdateRow method#34926
Alyar666 wants to merge 3 commits into
DevExpress:mainfrom
Alyar666:gridcore_datacontroller__extract_row_diffing_engine_26_2

Conversation

@Alyar666

Copy link
Copy Markdown
Contributor

No description provided.

@Alyar666 Alyar666 self-assigned this Aug 26, 2026
@Alyar666 Alyar666 changed the title Grids: Refactoring the _partialUpdateRow method Grids - DataController: Refactoring the _partialUpdateRow method Aug 26, 2026
@Alyar666
Alyar666 marked this pull request as ready for review August 26, 2026 09:58
@Alyar666
Alyar666 requested a review from a team as a code owner August 26, 2026 09:58
Copilot AI lite review requested due to automatic review settings August 26, 2026 09:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Refactors DataController’s partial row update logic in the grid core to extract reusable helpers into row_changes.ts and standardize the extension hook for computing changed column indices.

Changes:

  • Renamed the extensibility hook from _getChangedColumnIndices to getChangedColumnIndices across DataController and editing extenders.
  • Extracted partial-update helpers (canDiffColumns, getGroupColumnIndices, getPartialUpdateColumnIndices, partialUpdateRow) into data_controller/utils/row_changes.ts.
  • Added Jest coverage for the newly extracted helper functions.

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/grids/grid_core/editing/extenders/editing_row_based_data_controller.ts Updates the override to the renamed getChangedColumnIndices hook and delegates to the base implementation.
packages/devextreme/js/__internal/grids/grid_core/editing/extenders/editing_form_based_data_controller.ts Updates the override to the renamed getChangedColumnIndices hook and keeps the form-edit-mode conditional behavior.
packages/devextreme/js/__internal/grids/grid_core/editing/extenders/editing_data_controller.ts Updates the override to the renamed getChangedColumnIndices hook while preserving editing-specific diff constraints.
packages/devextreme/js/__internal/grids/grid_core/data_controller/utils/row_changes.ts Introduces extracted helpers for column diff eligibility, group-row indices selection, and partial row update application.
packages/devextreme/js/__internal/grids/grid_core/data_controller/utils/tests/row_changes.test.ts Adds unit tests validating the behavior of the new helper functions.
packages/devextreme/js/__internal/grids/grid_core/data_controller/data_controller.ts Rewires partial update flow to use the extracted helpers and the renamed getChangedColumnIndices hook.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.


if (newItem.rowType === 'groupFooter') {
return undefined;
switch (newItem.rowType) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

group, detail, groupFooter are not belong to base controller and should be moved to corresponding extender, better keep old logic here and create separate PR for move

Copilot AI review requested due to automatic review settings August 28, 2026 09:28
@Alyar666
Alyar666 force-pushed the gridcore_datacontroller__extract_row_diffing_engine_26_2 branch from fb5b531 to 3ac00c9 Compare August 28, 2026 09:28

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

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

@Alyar666
Alyar666 added this pull request to the merge queue Aug 28, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Aug 28, 2026
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