From 013c841bf30771b04173cfeefe4e1d16d1127dea Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Wed, 6 Sep 2023 12:22:27 +1000 Subject: Added DialogService to manage dialog z-indexes --- Pages/Component/Dialog.razor | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) (limited to 'Pages/Component') diff --git a/Pages/Component/Dialog.razor b/Pages/Component/Dialog.razor index f479368..e71ddc6 100644 --- a/Pages/Component/Dialog.razor +++ b/Pages/Component/Dialog.razor @@ -1,6 +1,8 @@ -@implements IDialog +@inject IDialogService dialogService +@implements IDialog +@implements IDisposable -
+
@if(Title is not null) {

@Title


@@ -24,20 +26,49 @@ get => visible; set { visible = value; + if(value) + Bump(); StateHasChanged(); } } - public void Show() => Visible = true; - public void Hide() => Visible = false; + public int? ZIndex { + get => zIndex; + set { + zIndex = value; + StateHasChanged(); + } + } private bool visible = false; + private int? zIndex; + private string? height; + protected override void OnInitialized() => + dialogService.Register(this); + + public void Show() => Visible = true; + public void Hide() => Visible = false; + + private void Bump() => + dialogService.BumpZIndex(this); + + private string style => + zIndexStyle + + heightStyle + + visiblilityStyle; + + private string zIndexStyle => + zIndex is null ? "display:none;" : $"z-index:{zIndex};"; + private string heightStyle => $"{(height is null ? "" : $"max-height:{height};")}"; private string visiblilityStyle => Visible ? "opacity:1;visibility:visible;" : "opacity:0;visibility:hidden;"; + + public void Dispose() => + dialogService.Unregister(this); } -- cgit v1.3