@inherits ShadcnBlazor.Extras.Dialogs.DialogBase @using LucideBlazor @using ShadcnBlazor.Dialogs @using ShadcnBlazor.Extras.AlertDialogs @using ShadcnBlazor.Progresses @using ShadcnBlazor.Spinners @inject AlertDialogService AlertService Updating...
@for (var i = 0; i < Steps.Length; i++) { if (CurrentStep == i) {
@Steps[i]
} else { if (i < CurrentStep) {
@Steps[i]
} else {
@Steps[i]
} } }
@code { private int Progress = 0; private int CurrentStep; private string[] Steps = [ "Preparing", "Updating configuration files", "Building docker image", "Redeploying container instance", "Waiting for container instance to start up", "Update complete" ]; protected override async Task OnAfterRenderAsync(bool firstRender) { if (!firstRender) return; CurrentStep = 0; Progress = 0; await InvokeAsync(StateHasChanged); await Task.Delay(2000); CurrentStep = 1; Progress = 20; await InvokeAsync(StateHasChanged); await Task.Delay(6000); CurrentStep = 2; Progress = 40; await InvokeAsync(StateHasChanged); await Task.Delay(2000); CurrentStep = 3; Progress = 60; await InvokeAsync(StateHasChanged); await Task.Delay(4000); CurrentStep = 4; Progress = 80; await InvokeAsync(StateHasChanged); await Task.Delay(4000); CurrentStep = 5; Progress = 100; await InvokeAsync(StateHasChanged); await Task.Delay(1000); await AlertService.SuccessAsync( "Update completed", "Update successfully completed. Please refresh the page to load new frontend changes" ); await CloseAsync(); } }