Fix UI Suspense loader fallbacks#29746
Conversation
Code Review ✅ Approved 6 resolved / 6 findingsRefactors UI Suspense boundaries to use silent fallbacks for background lazy chunks and introduces ✅ 6 resolved✅ Bug: Global null Suspense default removes loaders on full-page route loads
✅ Quality: breadcrumb useMemo omits testCaseFQN/activeTab deps
✅ Edge Case: ApplicationsProvider renders children before app list loads
✅ Edge Case: Feed right panel shows empty-state placeholder during load
✅ Bug: Top-level auth route chunks now render blank while loading
...and 1 more resolved from earlier reviews OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
Code Review ✅ Approved 6 resolved / 6 findingsRefactors UI Suspense boundaries to use silent fallbacks for background lazy chunks and introduces ✅ 6 resolved✅ Bug: Global null Suspense default removes loaders on full-page route loads
✅ Quality: breadcrumb useMemo omits testCaseFQN/activeTab deps
✅ Edge Case: ApplicationsProvider renders children before app list loads
✅ Edge Case: Feed right panel shows empty-state placeholder during load
✅ Bug: Top-level auth route chunks now render blank while loading
...and 1 more resolved from earlier reviews OptionsDisplay: compact → Showing less information. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Gitar |
|



Describe your changes:
Fixes excessive loading indicators caused by lazy chunk fallbacks on already-rendered UI.
nullso background lazy chunks do not show page-level loaders.LazyTabContentto keep inactive entity tabs unmounted while preserving one active-tab loader.Type of change:
High-level design:
Use a silent default Suspense fallback for generic lazy components, and opt into a visible loader only where the active content is actually waiting on a chunk. Entity detail lineage and knowledge graph tabs use
LazyTabContentso inactive tabs do not render fallback UI.Tests:
Use cases covered
Unit tests
src/components/AppRouter/withSuspenseFallback.test.tsxsrc/components/common/LazyTabContent/LazyTabContent.test.tsxBackend integration tests
Ingestion integration tests
Playwright (UI) tests
Manual testing performed
./node_modules/.bin/organize-imports-cli <changed UI files>./node_modules/.bin/eslint --no-error-on-unmatched-pattern --fix <changed UI files>./node_modules/.bin/prettier --write <changed UI files>./node_modules/.bin/jest src/components/AppRouter/withSuspenseFallback.test.tsx src/components/common/LazyTabContent/LazyTabContent.test.tsx --runInBandgit diff --checkUI screen recording / screenshots:
Not attached.
Checklist:
Fixes <issue-number>: <short explanation>Fixes #<issue-number>above.Greptile Summary
This PR adjusts Suspense loading behavior for lazy UI chunks. The main changes are:
Confidence Score: 5/5
This looks safe to merge.
Important Files Changed
Reviews (13): Last reviewed commit: "address comments" | Re-trigger Greptile
Context used (3)