feat: #241 ⚙️ Perf | Non-Blocking Global Layout Suspense Isolation#345
Merged
Sadeequ merged 5 commits intoJun 2, 2026
Merged
Conversation
…lation - Add StatsSkeleton fallback component for stats rows Suspense boundary - Add AdminStatsSkeleton fallback for admin telemetry rows - Wrap SystemStats + ModularStatsCard sections in Suspense in page.jsx - Export new skeletons from skeletons index Intensive admin/stats rows are now isolated in native React Suspense slots so the header and nav hydrate immediately without waiting for complex client telemetry summaries to resolve.
…lation - Add src/app/admin/page.tsx: wraps intensive AdminStatsRows in a Suspense boundary with AdminStatsSkeleton fallback so static header, nav, and tab bar are never blocked by telemetry resolution - Update layout.tsx: add SocketProvider to global layout tree so WebSocket context is available app-wide without re-mounting - Fix AdminTabBar.tsx: move export default outside function body and resolve undefined activeTab variable
- FloatingSidebar.tsx: remove duplicate handlePrefetch definition - nav.jsx: add missing usePathname import, remove duplicate onMouseEnter
|
@DammyAji Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
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
Closes #241
Resolves the issue where intensive client telemetry summaries were blocking initial server-side hydration pipelines for simple headers.
Changes
src/app/admin/page.tsx(new) — Admin dashboard with static header &AdminTabBarrendering immediately; intensiveAdminStatsRowsenclosed in a native React<Suspense>context slot withAdminStatsSkeletonas the static fallback cardsrc/components/skeletons/AdminStatsSkeleton.tsx(new) — Static fallback skeleton for admin stats rowssrc/components/skeletons/StatsSkeleton.tsx(new) — Static fallback skeleton for dashboard statssrc/app/layout.tsx— AddedSocketProviderto global layoutsrc/app/components/AdminTabBar.tsx— Fixed broken export and undefinedactiveTabsrc/app/components/FloatingSidebar.tsx— Fixed duplicatehandlePrefetchsrc/app/components/nav.jsx— Fixed missingusePathnameimport and duplicateonMouseEntersrc/app/hooks/useSocket.ts— Fixed WebSocket protocol to usewindow.location.protocolTechnical Requirements Met
<Suspense>)