Backport #29064 DataQuality and IncidentManager lazy-loading to 1.13 - #31041
Merged
shah-harshit merged 3 commits intoAug 6, 2026
Merged
Conversation
* 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)
Code Review ✅ ApprovedBackports DataQuality and IncidentManager lazy-loading updates to the 1.13 branch as part of the stacked release sequence. No issues found. OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar | Powered by Gitar — free for open source |
shah-harshit
force-pushed
the
ui/direct-1.13-seq22-29061-lazy-load-utility-foundation
branch
2 times, most recently
from
August 6, 2026 04:09
39d2436 to
e807b42
Compare
Base automatically changed from
ui/direct-1.13-seq22-29061-lazy-load-utility-foundation
to
1.13
August 6, 2026 04:10
shah-harshit
deleted the
ui/direct-1.13-seq23-29064-dataquality-incident-lazy-loading
branch
August 6, 2026 04:11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Tracking
Testing