feat(ui): lazy load home page widgets to improve initial load performance#28079
Conversation
…ance Replace static widget imports with React.lazy() in CustomizeMyDataPageClassBase and wrap widget renders in Suspense with a skeleton fallback in CustomizableLandingPageUtils. Each widget now loads as a separate JS chunk, reducing the initial bundle size of the home page. Closes open-metadata/openmetadata-collate#4075 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
🟡 Playwright Results — all passed (13 flaky)✅ 4135 passed · ❌ 0 failed · 🟡 13 flaky · ⏭️ 86 skipped
🟡 13 flaky test(s) (passed on retry)
How to debug locally# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip # view trace |
…ataQuality tests - Use `.first()` with `expect().toBeVisible()` instead of `.waitFor()` on multi-match locator `[data-testid="status-data-widget"]` (8 elements) - Add `page.mouse.move(0, 0)` before sidebar hover in `sidebarClick` to dismiss tooltips that intercept pointer events - Wrap all test bodies in `test.step()` for readability and granular failure reporting Fixes open-metadata/openmetadata-collate#4132 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ept in DataQuality tests" This reverts commit 644900b.
Code Review ✅ Approved 1 resolved / 1 findingsLazy loads home page widgets using React.lazy and Suspense to improve initial bundle size, while reverting lodash-es to resolve compatibility issues and removing unused project artifacts. No issues found. ✅ 1 resolved✅ Edge Case: Missing per-widget error boundary for chunk load failures
OptionsDisplay: compact → Showing less information. Comment with these commands to change:
Was this helpful? React with 👍 / 👎 | Gitar |
|



Summary
React.lazy()inCustomizeMyDataPageClassBaseSuspensewith a skeleton fallback inCustomizableLandingPageUtilsTest Plan
Closes https://github.com/open-metadata/openmetadata-collate/issues/4075
Summary by Gitar
lodash-estolodashacross multiple utility files to resolve bundling compatibility issues.vite.config.tsto aliaslodashtolodash-es, enabling tree-shaking while maintaining runtime stability.This will update automatically on new commits.