Skip to content

fix(styling): reserve page loading-bar height on all pages - #3468

Merged
baktun14 merged 3 commits into
mainfrom
fix/styling-always-reserve-loading-bar-height
Jul 21, 2026
Merged

fix(styling): reserve page loading-bar height on all pages#3468
baktun14 merged 3 commits into
mainfrom
fix/styling-always-reserve-loading-bar-height

Conversation

@baktun14

@baktun14 baktun14 commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Why

Navigating between pages shifts all page content vertically by 4px. The layout only rendered the top loading bar when a page passed the isLoading prop: the ~9 pages that pass it (deployments, providers, home, etc.) always reserve a 4px strip, while the ~18 pages that omit it (alerts, billing, sdl-builder, faq, etc.) reserve 0px, so the content top jumps depending on which page you land on.

What

Always render LinearLoadingSkeleton in the deploy-web Layout, defaulting isLoading to false. The skeleton is already shift-free on its own (4px LinearProgress when loading, 4px placeholder when idle), so every page now reserves the same 4px strip whether or not it has a loading state. No page call-site changes needed.

Verified against a local dev server on /faq (a page that does not pass isLoading):

first child of content wrapper content top
before page container directly (no strip) 57px
after 4px skeleton placeholder 61px (matches pages that pass isLoading)

Summary by CodeRabbit

  • Bug Fixes
    • Improved loading-state handling so the loading indicator behaves consistently when no loading status is provided.
    • Ensured the loading indicator correctly reflects whether content is loading.
  • Tests
    • Added coverage to verify loading-state behavior and that provided page content renders correctly.

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 4d2c28b7-b950-4d16-ae50-db5c8d83e60e

📥 Commits

Reviewing files that changed from the base of the PR and between d185b63 and 3c8f66e.

📒 Files selected for processing (2)
  • apps/deploy-web/src/components/layout/Layout.spec.tsx
  • apps/deploy-web/src/components/layout/Layout.tsx

📝 Walkthrough

Walkthrough

Layout now supports dependency injection through an exported default bundle. LayoutApp normalizes omitted isLoading values to false, always renders the loading skeleton, and adds tests for loading and child rendering behavior.

Changes

Layout dependency injection and loading behavior

Layer / File(s) Summary
Inject Layout dependencies
apps/deploy-web/src/components/layout/Layout.tsx
Exports DEPENDENCIES, accepts an optional dependencies prop, forwards it to LayoutApp, and resolves injected components and hooks.
Normalize and validate loading rendering
apps/deploy-web/src/components/layout/Layout.tsx, apps/deploy-web/src/components/layout/Layout.spec.tsx
Defaults omitted isLoading to false, always passes it to LinearLoadingSkeleton, and tests loading states plus child rendering.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: ygrishajev

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/styling-always-reserve-loading-bar-height

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install timed out. The project may have too many dependencies for the sandbox.


Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Jul 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 72.18%. Comparing base (857104c) to head (3c8f66e).
⚠️ Report is 7 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3468      +/-   ##
==========================================
- Coverage   73.05%   72.18%   -0.87%     
==========================================
  Files        1175     1085      -90     
  Lines       29797    27543    -2254     
  Branches     7404     6953     -451     
==========================================
- Hits        21769    19883    -1886     
+ Misses       7062     6727     -335     
+ Partials      966      933      -33     
Flag Coverage Δ *Carryforward flag
api 85.93% <ø> (ø) Carriedforward from d185b63
deploy-web 62.74% <100.00%> (+0.38%) ⬆️
log-collector ?
notifications 91.44% <ø> (ø) Carriedforward from d185b63
provider-console 81.38% <ø> (ø) Carriedforward from d185b63
provider-inventory ?
provider-proxy 86.42% <ø> (ø) Carriedforward from d185b63
tx-signer ?

*This pull request uses carry forward flags. Click here to find out more.

Files with missing lines Coverage Δ
apps/deploy-web/src/components/layout/Layout.tsx 85.18% <100.00%> (+71.18%) ⬆️

... and 103 files with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions github-actions Bot added size: S and removed size: XS labels Jul 20, 2026
@baktun14
baktun14 added this pull request to the merge queue Jul 21, 2026
Merged via the queue into main with commit 3f8c761 Jul 21, 2026
57 checks passed
@baktun14
baktun14 deleted the fix/styling-always-reserve-loading-bar-height branch July 21, 2026 09:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants