@page "/"
@inject IJSRuntime JSRuntime
Home - Beau Findlay
@if (!hasPreviouslyRendered)
{
}
else
{
Hi, I'm Beau.
I'm a UK-based software engineer and I love building cool stuff.
A bit about me
I mostly specialise in back-end C#/.NET development and I've built systems that scale for hundreds-of-thousands of global users.
I've worked with businesses at all sizes and stages and I'm currently heading up the tech as CTO at a cool startup called un:hurd.
}
@code {
private const string ComponentKey = "ComponentRendered_Home";
private bool hasPreviouslyRendered;
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
var renderedBeforeAsString = await JSRuntime.InvokeAsync("localStorage.getItem", ComponentKey);
var previousValue = hasPreviouslyRendered;
hasPreviouslyRendered = !string.IsNullOrEmpty(renderedBeforeAsString) && bool.Parse(renderedBeforeAsString);
if (!hasPreviouslyRendered)
{
await JSRuntime.InvokeVoidAsync("localStorage.setItem", ComponentKey, "true");
}
if (previousValue != hasPreviouslyRendered)
{
StateHasChanged();
}
}
}
}