diff --git a/EgwCoreLib.BlazorTest/Pages/TestDialog.razor b/EgwCoreLib.BlazorTest/Pages/TestDialog.razor index a78377c..314e809 100644 --- a/EgwCoreLib.BlazorTest/Pages/TestDialog.razor +++ b/EgwCoreLib.BlazorTest/Pages/TestDialog.razor @@ -10,13 +10,14 @@ +

@resultMessage

- + @code { private BootstrapModal? modal; @@ -28,6 +29,7 @@ private string cUserInput = ""; private bool cBigBtn = false; private Dictionary? cOpt = null; + private Dictionary? sOpt = null; private BootstrapModal.ModalMode cMode = BootstrapModal.ModalMode.ND; @@ -37,6 +39,7 @@ cMessage = "This is a standard message."; cMode = BootstrapModal.ModalMode.Message; cOpt = null; + sOpt = null; cBigBtn = false; await modal!.ShowAsync(); @@ -51,11 +54,13 @@ cOpt = new(); cOpt.Add(true, "Si"); cOpt.Add(false, "No"); + sOpt = null; cBigBtn = true; bool confirmed = await modal!.ShowAsync(); resultMessage = confirmed ? "User confirmed." : "User cancelled."; } + private async Task ShowPrompt() { cTitle = "Enter Name"; @@ -64,9 +69,30 @@ cUserInput = ""; cMode = BootstrapModal.ModalMode.Prompt; cOpt = null; + sOpt = null; cBigBtn = false; string? name = await modal!.ShowAsync(); resultMessage = name is null ? "User cancelled." : $"Hello, {name}!"; } + + private async Task ShowMulti() + { + cTitle = "Environment"; + cOpt = null; + sOpt = new(); + sOpt.Add("Window", "Finestre"); + sOpt.Add("Beam", "Travi"); + sOpt.Add("Wall", "Pareti"); + + cMessage = ""; + // cMessage = "Selezionare Envir desiderato (LUX)"; + // cPlaceholder = "Type your name..."; + // cUserInput = ""; + cMode = BootstrapModal.ModalMode.Select; + cBigBtn = false; + + string? name = await modal!.ShowAsync(); + resultMessage = name == null ? "User Canceled" : $"Selection: {name}"; + } } diff --git a/EgwCoreLib.Razor/BootstrapModal.razor b/EgwCoreLib.Razor/BootstrapModal.razor index 047338a..5f5da52 100644 --- a/EgwCoreLib.Razor/BootstrapModal.razor +++ b/EgwCoreLib.Razor/BootstrapModal.razor @@ -9,28 +9,45 @@ - + @if (Mode != ModalMode.Select) + { + + } @@ -51,9 +68,15 @@ [Parameter] public string Placeholder { get; set; } = ""; + [Parameter] + public string ClassSelBtn { get; set; } = "btn-dark"; + [Parameter] public Dictionary UserOptions { get; set; } = new(); + [Parameter] + public Dictionary SelectOptions { get; set; } = new(); + [Parameter] public ModalMode Mode { get; set; } = ModalMode.Message; @@ -137,6 +160,12 @@ tcs?.TrySetResult(UserInput); } + private async Task OnSelectOpt(string selValue) + { + await JS.InvokeVoidAsync("bootstrapModalHelper.hide", $"#{ModalId}"); + tcs?.TrySetResult(selValue); + } + private async Task OnCancel() { await JS.InvokeVoidAsync("bootstrapModalHelper.hide", $"#{ModalId}"); @@ -171,7 +200,8 @@ ND, Message, Confirm, - Prompt + Prompt, + Select } ///