Skip to content

Backport #29064 DataQuality and IncidentManager lazy-loading to 1.13 - #31041

Merged
shah-harshit merged 3 commits into
1.13from
ui/direct-1.13-seq23-29064-dataquality-incident-lazy-loading
Aug 6, 2026
Merged

Backport #29064 DataQuality and IncidentManager lazy-loading to 1.13#31041
shah-harshit merged 3 commits into
1.13from
ui/direct-1.13-seq23-29064-dataquality-incident-lazy-loading

Conversation

@shah-harshit

Copy link
Copy Markdown
Contributor

Summary

Tracking

Testing

  • git diff --check HEAD~1..HEAD

shah-harshit and others added 3 commits August 5, 2026 18:07
* feat(ui): split CustomizePageUtils.ts into 3 focused modules (#28937)

* feat(ui): split CustomizePageUtils.ts into 3 focused modules

Closes open-metadata/openmetadata-collate#4230

Splits 830-line CustomizePageUtils.ts (with 25 eager ClassBase imports)
into three focused files to eliminate unnecessary bundle weight on every
entity detail page:

- CustomizePageEntityTabUtils.ts  — tab display helpers (no ClassBase deps)
  sortTabs, getTabDisplayName, getTabLabelMapFromTabs,
  checkIfExpandViewSupported, getDetailsTabWithNewLabel

- CustomizePageDispatchUtils.ts   — dispatch/admin flow helpers (keeps all
  25 ClassBase singletons; only imported by admin/customize pages)
  getDefaultTabs, getDefaultWidgetForTab, getCustomizableWidgetByPage,
  getDummyDataByPage, getWidgetsFromKey, getWidgetHeight,
  getGlossaryTermDefaultTabs, getGlossaryDefaultTabs

- CustomizePageWidgetUtils.ts     — widget/layout helpers (no ClassBase deps)
  getAddWidgetHandler, updateWidgetHeightRecursively,
  getLayoutFromCustomizedPage, asyncNoop

CustomizePageUtils.ts deleted; all ~50 consumer files updated to import
directly from the correct split module. No re-export facade.

Test mocks updated: removed stale mock blocks on wrong paths (previously
mocking CustomizePageUtils which had no effect once consumers moved to
CustomizePagePureUtils); added correct mocks on CustomizePagePureUtils
for FileClassBase and DirectoryClassBase tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix checkstyle

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(ui): lazy-load tab-level and heavy components with withSuspenseFallback (#28830)

* feat(ui): lazy-load tab-level and heavy components with withSuspenseFallback

Convert 105 component/util files from eager imports to React.lazy() +
withSuspenseFallback() for heavy components: SchemaEditor, ActivityFeedTab,
ContractTab, CustomPropertyTable, TaskTabNew, EntitySummaryPanel,
ModalWithMarkdownEditor, BlockEditor, CodeEditor, and others.

Lazy constants are placed after all traditional imports. Removed eager
component imports are replaced with import type for props interfaces where
applicable. Zero TypeScript errors introduced.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix failing test

* fix failing test

* improve performance

* update

* address comments

* fix failing e2e tests

* fix failing tests

* Fix failing tests

* fix failing test

* address comments

* fix ui checkstyle

* fix query page import

* fix checkstyle

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(ui): use reachable my data loading state

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit 159cee8)
* feat(ui): split CustomizePageUtils.ts into 3 focused modules (#28937)

* feat(ui): split CustomizePageUtils.ts into 3 focused modules

Closes open-metadata/openmetadata-collate#4230

Splits 830-line CustomizePageUtils.ts (with 25 eager ClassBase imports)
into three focused files to eliminate unnecessary bundle weight on every
entity detail page:

- CustomizePageEntityTabUtils.ts  — tab display helpers (no ClassBase deps)
  sortTabs, getTabDisplayName, getTabLabelMapFromTabs,
  checkIfExpandViewSupported, getDetailsTabWithNewLabel

- CustomizePageDispatchUtils.ts   — dispatch/admin flow helpers (keeps all
  25 ClassBase singletons; only imported by admin/customize pages)
  getDefaultTabs, getDefaultWidgetForTab, getCustomizableWidgetByPage,
  getDummyDataByPage, getWidgetsFromKey, getWidgetHeight,
  getGlossaryTermDefaultTabs, getGlossaryDefaultTabs

- CustomizePageWidgetUtils.ts     — widget/layout helpers (no ClassBase deps)
  getAddWidgetHandler, updateWidgetHeightRecursively,
  getLayoutFromCustomizedPage, asyncNoop

CustomizePageUtils.ts deleted; all ~50 consumer files updated to import
directly from the correct split module. No re-export facade.

Test mocks updated: removed stale mock blocks on wrong paths (previously
mocking CustomizePageUtils which had no effect once consumers moved to
CustomizePagePureUtils); added correct mocks on CustomizePagePureUtils
for FileClassBase and DirectoryClassBase tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix checkstyle

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(ui): lazy-load tab-level and heavy components with withSuspenseFallback (#28830)

* feat(ui): lazy-load tab-level and heavy components with withSuspenseFallback

Convert 105 component/util files from eager imports to React.lazy() +
withSuspenseFallback() for heavy components: SchemaEditor, ActivityFeedTab,
ContractTab, CustomPropertyTable, TaskTabNew, EntitySummaryPanel,
ModalWithMarkdownEditor, BlockEditor, CodeEditor, and others.

Lazy constants are placed after all traditional imports. Removed eager
component imports are replaced with import type for props interfaces where
applicable. Zero TypeScript errors introduced.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix failing test

* fix failing test

* improve performance

* update

* address comments

* fix failing e2e tests

* fix failing tests

* Fix failing tests

* fix failing test

* address comments

* fix ui checkstyle

* fix query page import

* fix checkstyle

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(ui): extract pure utility functions and add lazy-loading infrastructure (#29061)

* feat(ui): extract pure utility functions and add lazy-loading infrastructure

Extracts pure (React-free) utility logic into dedicated *ClassBase.ts files for better code splitting and testability. Adds new utility files: ExploreFilterUtils.ts, GlossaryTreeUtils.ts, TagTransformUtils.ts, LazyTagComponents.tsx. Updates AppRouter to use lazy-loaded components with withSuspenseFallback for improved initial load performance. Adds test coverage for extracted utility functions.

Ref: open-metadata/openmetadata-collate#4230

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* address comments

* fix: apply ui-checkstyle fixes for feat/lazy-util-pr1-new-utils-infra

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix failing tests

* fix checkstyle

* address comments

* address comments

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(ui): address lazy foundation review comments

* test(ui): mock data quality pure helper

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit f26af1c)
…#30126)

* feat(ui): split CustomizePageUtils.ts into 3 focused modules (#28937)

* feat(ui): split CustomizePageUtils.ts into 3 focused modules

Closes open-metadata/openmetadata-collate#4230

Splits 830-line CustomizePageUtils.ts (with 25 eager ClassBase imports)
into three focused files to eliminate unnecessary bundle weight on every
entity detail page:

- CustomizePageEntityTabUtils.ts  — tab display helpers (no ClassBase deps)
  sortTabs, getTabDisplayName, getTabLabelMapFromTabs,
  checkIfExpandViewSupported, getDetailsTabWithNewLabel

- CustomizePageDispatchUtils.ts   — dispatch/admin flow helpers (keeps all
  25 ClassBase singletons; only imported by admin/customize pages)
  getDefaultTabs, getDefaultWidgetForTab, getCustomizableWidgetByPage,
  getDummyDataByPage, getWidgetsFromKey, getWidgetHeight,
  getGlossaryTermDefaultTabs, getGlossaryDefaultTabs

- CustomizePageWidgetUtils.ts     — widget/layout helpers (no ClassBase deps)
  getAddWidgetHandler, updateWidgetHeightRecursively,
  getLayoutFromCustomizedPage, asyncNoop

CustomizePageUtils.ts deleted; all ~50 consumer files updated to import
directly from the correct split module. No re-export facade.

Test mocks updated: removed stale mock blocks on wrong paths (previously
mocking CustomizePageUtils which had no effect once consumers moved to
CustomizePagePureUtils); added correct mocks on CustomizePagePureUtils
for FileClassBase and DirectoryClassBase tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix checkstyle

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(ui): lazy-load tab-level and heavy components with withSuspenseFallback (#28830)

* feat(ui): lazy-load tab-level and heavy components with withSuspenseFallback

Convert 105 component/util files from eager imports to React.lazy() +
withSuspenseFallback() for heavy components: SchemaEditor, ActivityFeedTab,
ContractTab, CustomPropertyTable, TaskTabNew, EntitySummaryPanel,
ModalWithMarkdownEditor, BlockEditor, CodeEditor, and others.

Lazy constants are placed after all traditional imports. Removed eager
component imports are replaced with import type for props interfaces where
applicable. Zero TypeScript errors introduced.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix failing test

* fix failing test

* improve performance

* update

* address comments

* fix failing e2e tests

* fix failing tests

* Fix failing tests

* fix failing test

* address comments

* fix ui checkstyle

* fix query page import

* fix checkstyle

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(ui): extract pure utility functions and add lazy-loading infrastructure (#29061)

* feat(ui): extract pure utility functions and add lazy-loading infrastructure

Extracts pure (React-free) utility logic into dedicated *ClassBase.ts files for better code splitting and testability. Adds new utility files: ExploreFilterUtils.ts, GlossaryTreeUtils.ts, TagTransformUtils.ts, LazyTagComponents.tsx. Updates AppRouter to use lazy-loaded components with withSuspenseFallback for improved initial load performance. Adds test coverage for extracted utility functions.

Ref: open-metadata/openmetadata-collate#4230

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* address comments

* fix: apply ui-checkstyle fixes for feat/lazy-util-pr1-new-utils-infra

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix failing tests

* fix checkstyle

* address comments

* address comments

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(ui): update DataQuality & IncidentManager components for lazy-load utility pattern (#29064)

* feat(ui): update DataQuality & IncidentManager components for lazy-load utility pattern

Updates DataQuality and IncidentManager components to import from extracted pure utility modules. Updates DataQualityUtils, TestCaseUtils imports. Updates dataQualityDashboardAPI for consistent utility usage.

Ref: open-metadata/openmetadata-collate#4230

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* address comments

* fix checkstyle, tests and build

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(ui): fix data quality backport unit tests

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit a0692c3)
@shah-harshit
shah-harshit requested a review from a team as a code owner August 5, 2026 13:26
@shah-harshit shah-harshit added UI UI specific issues safe to test Add this label to run secure Github workflows on PRs skip-pr-checks Bypass PR metadata validation check labels Aug 5, 2026
@shah-harshit shah-harshit self-assigned this Aug 5, 2026
@gitar-bot

gitar-bot Bot commented Aug 5, 2026

Copy link
Copy Markdown
Code Review ✅ Approved

Backports DataQuality and IncidentManager lazy-loading updates to the 1.13 branch as part of the stacked release sequence. No issues found.

Options

Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar | Powered by Gitar — free for open source

@shah-harshit
shah-harshit force-pushed the ui/direct-1.13-seq22-29061-lazy-load-utility-foundation branch 2 times, most recently from 39d2436 to e807b42 Compare August 6, 2026 04:09
Base automatically changed from ui/direct-1.13-seq22-29061-lazy-load-utility-foundation to 1.13 August 6, 2026 04:10
@shah-harshit
shah-harshit merged commit f20751f into 1.13 Aug 6, 2026
81 of 142 checks passed
@shah-harshit
shah-harshit deleted the ui/direct-1.13-seq23-29064-dataquality-incident-lazy-loading branch August 6, 2026 04:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

safe to test Add this label to run secure Github workflows on PRs skip-pr-checks Bypass PR metadata validation check UI UI specific issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant