@namespace Oqtane.Modules.Controls
@inherits ModuleControlBase
@inject NavigationManager NavigationManager
@if (!string.IsNullOrEmpty(Message))
{
@if (_style == MessageStyle.Alert)
{
@((MarkupString)Message)
@if (Type == MessageType.Error && PageState != null && UserSecurity.IsAuthorized(PageState.User, RoleNames.Host))
{
View Details
}
}
@if (_style == MessageStyle.Toast)
{
@((MarkupString)Message)
@if (Type == MessageType.Error && PageState != null && UserSecurity.IsAuthorized(PageState.User, RoleNames.Host))
{
View Details
}
}
}
@code {
private string _message = string.Empty;
private string _classname = string.Empty;
private MessageStyle _style;
[Parameter]
public string Message { get; set; }
[Parameter]
public MessageType Type { get; set; }
[Parameter]
public MessageStyle Style { get; set; } = MessageStyle.Alert;
[Parameter]
public RenderModeBoundary Parent { get; set; }
protected override void OnParametersSet()
{
_message = Message;
if (!string.IsNullOrEmpty(_message))
{
_classname = GetMessageType(Type);
_style = Style;
if (Type == MessageType.Error)
{
_style = MessageStyle.Alert; // errors should always be displayed as alerts
}
}
}
private string GetMessageType(MessageType type)
{
string classname = string.Empty;
switch (type)
{
case MessageType.Success:
classname = "alert alert-success";
break;
case MessageType.Info:
classname = "alert alert-info";
break;
case MessageType.Warning:
classname = "alert alert-warning";
break;
case MessageType.Error:
classname = "alert alert-danger";
break;
}
return classname;
}
private void CloseMessage()
{
if (Parent != null)
{
Parent.DismissMessage();
}
else
{
NavigationManager.NavigateTo(NavigationManager.Uri);
}
}
}