Skip to content

Grids: type keyboard navigation controllers - #35667

Merged
bit-byte0 merged 7 commits into
DevExpress:mainfrom
bit-byte0:refactor/type-keyboard-navigation-main
Oct 15, 2026
Merged

bit-byte0 merged 7 commits into
DevExpress:mainfrom
bit-byte0:refactor/type-keyboard-navigation-main

Conversation

@bit-byte0

Copy link
Copy Markdown
Contributor

What

Typed DataGrid keyboard navigation controllers: core, column core, headers, column mixin, group panel

How

Keydown handlers use the keyboard processor event, views and columns got real types. Position types moved to types.ts, the group panel controller is registered in the controller registry from data_grid instead of grid_core

@bit-byte0
bit-byte0 requested a review from a team as a code owner October 13, 2026 14:38
Copilot AI balanced review requested due to automatic review settings October 13, 2026 14:38
@bit-byte0 bit-byte0 added the 26_2 label Oct 13, 2026
@bit-byte0 bit-byte0 self-assigned this Oct 13, 2026

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.

🟢 Approval recommended

The changes consistently improve internal typing without introducing unresolved functional issues.

0 open findings

What changed in this PR

Adds stronger TypeScript coverage to DataGrid keyboard navigation and relocates DataGrid-specific controller typing.

Changes:

  • Types keyboard events, positions, views, columns, and controller methods.
  • Moves shared navigation interfaces into types.ts.
  • Registers the group-panel controller through DataGrid module augmentation.
File Description
grid_core/​types.ts Removes the DataGrid-specific controller dependency.
grid_core/​keyboard_navigation/​types.ts Adds shared navigation and event types.
grid_core/​keyboard_navigation/​m_keyboard_navigation.ts Uses relocated position and scroll types.
grid_core/​keyboard_navigation/​m_keyboard_navigation_core.ts Types the core controller and deferred scrolling flow.
grid_core/​keyboard_navigation/​m_headers_keyboard_navigation.ts Types header navigation handlers and columns.
grid_core/​keyboard_navigation/​m_column_keyboard_navigation_core.ts Types column movement and focus APIs.
grid_core/​keyboard_navigation/​const.ts Removes interfaces relocated to types.ts.
data_grid/​keyboard_navigation/​types.ts Defines the shared DataGrid mixin base type.
data_grid/​keyboard_navigation/​m_group_panel_keyboard_navigation.ts Types group-panel navigation and augments the controller registry.
data_grid/​keyboard_navigation/​m_column_keyboard_navigation_mixin.ts Types grouping keyboard behavior and mixin methods.

🧠 Review effort: Balanced


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

@bit-byte0 bit-byte0 changed the title Editor factory, editing utils, keyboard navigation core, DataGrid keyboard navigation, adaptivity - type keyboard navigation Grids: type keyboard navigation controllers Oct 14, 2026

protected renderCompleted(e: any) {
protected renderCompleted(e?: unknown): void {
const { needToRestoreFocus } = this;

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.

lets use this.needToRestoreFocus inline

// eslint-disable-next-line @typescript-eslint/no-unused-vars
protected renderCompleted(e: any): void {
// eslint-disable-next-line @typescript-eslint/no-unused-vars -- overridable signature
protected renderCompleted(e?: unknown): void {

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.

lets type e from usage in packages/devextreme/js/__internal/grids/grid_core/keyboard_navigation/m_keyboard_navigation.ts

Copilot AI balanced review requested due to automatic review settings October 14, 2026 13:22

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.

🟢 Approval recommended

The type-focused changes are internally consistent and preserve existing navigation behavior.

0 open findings

🧠 Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings October 14, 2026 13:27

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.

🟡 Changes recommended

The render-completion callback introduces an incompatible strict-function type assignment.

1 open finding

🧠 Review effort: Balanced

anna-shakhova
anna-shakhova previously approved these changes Oct 15, 2026
Copilot AI balanced review requested due to automatic review settings October 15, 2026 09:56
@bit-byte0
bit-byte0 force-pushed the refactor/type-keyboard-navigation-main branch from cd122fa to 714e95d Compare October 15, 2026 09:56

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.

🟢 Approval recommended

Static review found no blocking issues in the typing refactor or affected callers; builds and tests were not run.

0 open findings

1 resolved since last review

🧠 Review effort: Balanced

@bit-byte0
bit-byte0 added this pull request to the merge queue Oct 15, 2026
Merged via the queue into DevExpress:main with commit d8aed98 Oct 15, 2026
154 of 207 checks passed
@bit-byte0
bit-byte0 deleted the refactor/type-keyboard-navigation-main branch October 15, 2026 12:42
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.

4 participants