Skip to content

GridCore data: Relocate _editingController to editing data-extenders - #34832

Open
bit-byte0 wants to merge 2 commits into
DevExpress:mainfrom
bit-byte0:refactor/gridcore-relocate-editing-controller-26_2
Open

GridCore data: Relocate _editingController to editing data-extenders#34832
bit-byte0 wants to merge 2 commits into
DevExpress:mainfrom
bit-byte0:refactor/gridcore-relocate-editing-controller-26_2

Conversation

@bit-byte0

@bit-byte0 bit-byte0 commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

What

Adds local resolution of _editingController in the editing data-controller extenders (m_editing, form-based, row-based)

How

Each editing data-extender declares the field and resolves the editing controller in its own init()

@bit-byte0 bit-byte0 added the 26_2 label Aug 19, 2026
@bit-byte0 bit-byte0 self-assigned this Aug 19, 2026
@bit-byte0
bit-byte0 force-pushed the refactor/gridcore-relocate-editing-controller-26_2 branch from 1cf9ad8 to 2cae359 Compare August 19, 2026 10:23
@bit-byte0
bit-byte0 force-pushed the refactor/gridcore-relocate-editing-controller-26_2 branch from 2cae359 to 3f9cd9f Compare August 20, 2026 07:28
@bit-byte0
bit-byte0 marked this pull request as ready for review August 20, 2026 09:00
@bit-byte0
bit-byte0 requested a review from a team as a code owner August 20, 2026 09:00
Copilot AI lite review requested due to automatic review settings August 20, 2026 09:00

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 GridCore editing DataController extensions by moving editing-related DataController extender logic into dedicated files under editing/extenders/, while keeping module wiring intact. This aligns the editing feature with the grid module extender pattern and isolates mode-specific behavior (row-based vs form-based) from the main editing module.

Changes:

  • Extracted the main editing DataController extender mixin into extenders/editing_data_controller.ts and re-exported it from m_editing.ts.
  • Moved row-based and form-based DataController extenders into their own files and updated module registrations to reference them.
  • Added local init() resolution of the editing controller in each new data-controller extender.

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/m_editing.ts Imports the extracted data-controller extender and re-exports it; keeps the editing module’s data extender wiring unchanged.
packages/devextreme/js/__internal/grids/grid_core/editing/m_editing_row_based.ts Replaces the inline row-based DataController extender with an imported extender implementation.
packages/devextreme/js/__internal/grids/grid_core/editing/m_editing_form_based.ts Replaces the inline form-based DataController extender with an imported extender implementation.
packages/devextreme/js/__internal/grids/grid_core/editing/extenders/editing_data_controller.ts New: contains the main editing DataController extender mixin previously defined in m_editing.ts.
packages/devextreme/js/__internal/grids/grid_core/editing/extenders/editing_row_based_data_controller.ts New: contains the row-based DataController extender previously defined inline in m_editing_row_based.ts.
packages/devextreme/js/__internal/grids/grid_core/editing/extenders/editing_form_based_data_controller.ts New: contains the form-based DataController extender previously defined inline in m_editing_form_based.ts.

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


type EditingCell = Cell & { isEditing?: boolean };

export const dataControllerEditingExtenderMixin = (

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.

Suggested change
export const dataControllerEditingExtenderMixin = (
export const editingDataControllerExtender = (


export const dataControllerEditingExtenderMixin = (
Base: ModuleType<DataController>,
): ModuleType<DataController> => class DataControllerEditingExtender extends Base {

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.

Suggested change
): ModuleType<DataController> => class DataControllerEditingExtender extends Base {
): ModuleType<DataController> => class EditingDataControllerExtender extends Base {


import type { EditingController } from '../m_editing';

export const dataControllerEditingFormBasedExtender = (

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.

Suggested change
export const dataControllerEditingFormBasedExtender = (
export const editingFormBasedDataControllerExtender = (


export const dataControllerEditingFormBasedExtender = (
Base: ModuleType<DataController>,
): ModuleType<DataController> => class DataEditingFormBasedExtender extends Base {

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.

Suggested change
): ModuleType<DataController> => class DataEditingFormBasedExtender extends Base {
): ModuleType<DataController> => class EditingFormBasedDataControllerExtender extends Base {


import type { EditingController } from '../m_editing';

export const dataControllerEditingRowBasedExtender = (

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.

Suggested change
export const dataControllerEditingRowBasedExtender = (
export const editingRowBasedDataControllerExtender = (


export const dataControllerEditingRowBasedExtender = (
Base: ModuleType<DataController>,
): ModuleType<DataController> => class DataEditingRowBasedExtender extends Base {

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.

Suggested change
): ModuleType<DataController> => class DataEditingRowBasedExtender extends Base {
): ModuleType<DataController> => class EditingRowBasedDataControllerExtender extends Base {

import { EDITING_EDITROWKEY_OPTION_NAME } from '../const';
import type { EditingController } from '../m_editing';

type EditingCell = Cell & { isEditing?: boolean };

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.

shouldn't it be shared type?

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.

3 participants