<!--Prompt to be displayed, can be used for various action-->
<div class="modal fade show" id="myModal" style="display:block; background-color: rgba(10, 10, 10, 0.5);" aria-modal="true" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">@Title</h5>
<button type="button" class="close" @onclick="@ModalCancel">×</button>
</div>
<div class="modal-body">
<p>@Text</p>
@if (PromptType == ModalType.Shopping)
{
<iframe src=@ShopURL height=500 width=465></iframe>
}
</div>
<div class="modal-footer">
@switch (PromptType)
{
case ModalType.Ok:
<button type="button" class="btn btn-primary" @onclick="@ModalOk">OK</button>
break;
case ModalType.DeleteCancel:
<button type="button" class="btn btn-secondary" @onclick="@ModalCancel">Cancel</button>
<button type="button" class="btn btn-danger" @onclick="@ModalOk">Delete</button>
break;
case ModalType.UnsubscribeCancel:
<button type="button" class="btn btn-secondary" @onclick="@ModalCancel">Cancel</button>
<button type="button" class="btn btn-danger" @onclick="@ModalOk">Unsubscribe</button>
break;
case ModalType.Shopping:
<button type="button" class="btn btn-secondary" @onclick="@ModalOk">Close</button>
break;
}
</div>
</div>
</div>
</div>
@code {
[Parameter]
public string Title { get; set; }
[Parameter]
public string ShopURL { get; set; }
[Parameter]
public string Text { get; set; }
[Parameter]
public EventCallback<bool> OnClose { get; set; }
[Parameter]
public ModalType PromptType { get; set; }
private Task ModalCancel()
{
return OnClose.InvokeAsync(false);
}
private Task ModalOk()
{
return OnClose.InvokeAsync(true);
}
public enum ModalType
{
Ok,
DeleteCancel,
UnsubscribeCancel,
Shopping
}
}