GridCore data: Relocate _editingController to editing data-extenders - #34832
GridCore data: Relocate _editingController to editing data-extenders#34832bit-byte0 wants to merge 2 commits into
Conversation
1cf9ad8 to
2cae359
Compare
2cae359 to
3f9cd9f
Compare
There was a problem hiding this comment.
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.tsand re-exported it fromm_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 theeditingcontroller 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 = ( |
There was a problem hiding this comment.
| export const dataControllerEditingExtenderMixin = ( | |
| export const editingDataControllerExtender = ( |
|
|
||
| export const dataControllerEditingExtenderMixin = ( | ||
| Base: ModuleType<DataController>, | ||
| ): ModuleType<DataController> => class DataControllerEditingExtender extends Base { |
There was a problem hiding this comment.
| ): ModuleType<DataController> => class DataControllerEditingExtender extends Base { | |
| ): ModuleType<DataController> => class EditingDataControllerExtender extends Base { |
|
|
||
| import type { EditingController } from '../m_editing'; | ||
|
|
||
| export const dataControllerEditingFormBasedExtender = ( |
There was a problem hiding this comment.
| export const dataControllerEditingFormBasedExtender = ( | |
| export const editingFormBasedDataControllerExtender = ( |
|
|
||
| export const dataControllerEditingFormBasedExtender = ( | ||
| Base: ModuleType<DataController>, | ||
| ): ModuleType<DataController> => class DataEditingFormBasedExtender extends Base { |
There was a problem hiding this comment.
| ): ModuleType<DataController> => class DataEditingFormBasedExtender extends Base { | |
| ): ModuleType<DataController> => class EditingFormBasedDataControllerExtender extends Base { |
|
|
||
| import type { EditingController } from '../m_editing'; | ||
|
|
||
| export const dataControllerEditingRowBasedExtender = ( |
There was a problem hiding this comment.
| export const dataControllerEditingRowBasedExtender = ( | |
| export const editingRowBasedDataControllerExtender = ( |
|
|
||
| export const dataControllerEditingRowBasedExtender = ( | ||
| Base: ModuleType<DataController>, | ||
| ): ModuleType<DataController> => class DataEditingRowBasedExtender extends Base { |
There was a problem hiding this comment.
| ): 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 }; |
There was a problem hiding this comment.
shouldn't it be shared type?
What
Adds local resolution of
_editingControllerin the editing data-controller extenders (m_editing, form-based, row-based)How
Each editing data-extender declares the field and resolves the
editingcontroller in its owninit()