Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion ClientSideBlazorWithPrerendering.Client/Shared/MainLayout.razor
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
@inherits LayoutComponentBase

@inject IJSRuntime jsRuntime
@inject IComponentContext context
<div class="sidebar">
<NavMenu />
</div>
Expand All @@ -13,3 +14,14 @@
@Body
</div>
</div>

@code {

protected override async Task OnAfterRenderAsync()
{
if (context.IsConnected)
{
await jsRuntime.InvokeAsync<object>("loadingOverlay.hide");
}
}
}
38 changes: 38 additions & 0 deletions ClientSideBlazorWithPrerendering.Client/wwwroot/css/loading.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
.loading {
width: 100%;
height: 100%;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: rgba(0,0,0,.5);
}

.loading-wheel {
width: 20px;
height: 20px;
margin-top: -40px;
margin-left: -40px;
position: absolute;
top: 50%;
left: 50%;
border-width: 30px;
border-radius: 50%;
-webkit-animation: spin 1s linear infinite;
}

.style-2 .loading-wheel {
border-style: double;
border-color: #ccc transparent;
}

@-webkit-keyframes spin {
0% {
-webkit-transform: rotate(0);
}

100% {
-webkit-transform: rotate(-360deg);
}
}
22 changes: 22 additions & 0 deletions ClientSideBlazorWithPrerendering.Client/wwwroot/loadingOverlay.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
var loadingOverlay = (function () {
var loadingOverlay = {};

loadingOverlay.show = function () {
var loadingDiv = document.createElement("div");
loadingDiv.className = "loading style-2";
loadingDiv.id = "loading-container";
var wheelDiv = document.createElement("div");
wheelDiv.className = "loading-wheel";
loadingDiv.appendChild(wheelDiv);
document.body.appendChild(loadingDiv);
}

loadingOverlay.hide = function () {
var loadingContainer = document.getElementById("loading-container");
if (loadingContainer) {
loadingContainer.remove();
}
}

return loadingOverlay;
})();
9 changes: 6 additions & 3 deletions ClientSideBlazorWithPrerendering.Server/Pages/_Host.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,13 @@
integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" />
</environment>
<link href="css/site.css" rel="stylesheet" />
<link href="css/loading.css" rel="stylesheet" />
</head>
<body>
<app>@(await Html.RenderStaticComponentAsync<App>())</app>

<script src="_framework/blazor.webassembly.js"></script>
<app>
@(await Html.RenderStaticComponentAsync<App>())</App>
<script src="loadingOverlay.js" ></script>
<script>loadingOverlay.show();</script>
<script src="_framework/blazor.webassembly.js"></script>
</body>
</html>