Backport #29061 lazy-load utility foundation to 1.13 - #31040
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> * 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)
8a6ef88 to
535e151
Compare
❌ UI Checkstyle Failed❌ ESLint + Prettier + Organise Imports (src)One or more source files have linting or formatting issues. ❌ Tailwind AuditHardcoded Tailwind values found. Use a design-system utility (run ❌ Antd + Less Deprecation GuardA new Affected filesat Function._resolveFilename (node:internal/modules/cjs/loader:1401:15) Fix locally (fast - only checks files changed in this branch): make ui-checkstyle-changed |
39d2436 to
e807b42
Compare
Code Review ✅ ApprovedBackports the lazy-load utility foundation to the 1.13 branch to maintain feature parity with upstream changes. 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 |
|



Summary
Tracking
Testing