Skip to content

Backport #29061 lazy-load utility foundation to 1.13 - #31040

Merged
shah-harshit merged 1 commit into
1.13from
ui/direct-1.13-seq22-29061-lazy-load-utility-foundation
Aug 6, 2026
Merged

Backport #29061 lazy-load utility foundation to 1.13#31040
shah-harshit merged 1 commit into
1.13from
ui/direct-1.13-seq22-29061-lazy-load-utility-foundation

Conversation

@shah-harshit

Copy link
Copy Markdown
Contributor

Summary

Tracking

Testing

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

@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
Base automatically changed from ui/backport-28830-lazy-load-tabs-1.13 to 1.13 August 5, 2026 15:00
* 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)
@shah-harshit
shah-harshit force-pushed the ui/direct-1.13-seq22-29061-lazy-load-utility-foundation branch from 8a6ef88 to 535e151 Compare August 5, 2026 15:12
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

❌ UI Checkstyle Failed

❌ ESLint + Prettier + Organise Imports (src)

One or more source files have linting or formatting issues.

❌ Tailwind Audit

Hardcoded Tailwind values found. Use a design-system utility (run yarn tw-audit:report for the token each value maps to).

❌ Antd + Less Deprecation Guard

A new antd import or new .less file was added. Use UntitledUI + Tailwind for new work.

Affected files

at Function._resolveFilename (node:internal/modules/cjs/loader:1401:15)
at defaultResolveImpl (node:internal/modules/cjs/loader:1057:19)
at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1062:22)
at Function._load (node:internal/modules/cjs/loader:1211:37)
at TracingChannel.traceSync (node:diagnostics_channel:322:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:235:24)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
at node:internal/main/run_main_module:36:49 {


Fix locally (fast - only checks files changed in this branch):

make ui-checkstyle-changed

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Jest test Coverage

UI tests summary

Lines Statements Branches Functions
Coverage: 63%
63.84% (61961/97050) 44.69% (33498/74956) 47.02% (10370/22053)

@shah-harshit
shah-harshit force-pushed the ui/direct-1.13-seq22-29061-lazy-load-utility-foundation branch from 39d2436 to e807b42 Compare August 6, 2026 04:09
@shah-harshit
shah-harshit merged commit f915fbc into 1.13 Aug 6, 2026
58 of 59 checks passed
@gitar-bot

gitar-bot Bot commented Aug 6, 2026

Copy link
Copy Markdown
Code Review ✅ Approved

Backports the lazy-load utility foundation to the 1.13 branch to maintain feature parity with upstream changes. 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

@sonarqubecloud

sonarqubecloud Bot commented Aug 6, 2026

Copy link
Copy Markdown

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