/// <summary> /// show a confirm dialog like MessageBox of Windows /// </summary> /// <param name="content">the content of dialog</param> /// <param name="title">the title of dialog</param> /// <param name="confirmButtons">the buttons of dialog</param> /// <param name="confirmIcon">the icon of dialog</param> /// <param name="options">the configuration options for dialog</param> /// <param name="autoFocusButton">the autofocus button</param> /// <returns></returns> public async Task <ConfirmResult> Show( OneOf <string, RenderFragment> content, OneOf <string, RenderFragment> title, ConfirmButtons confirmButtons, ConfirmIcon confirmIcon, ConfirmButtonOptions options, ConfirmAutoFocusButton?autoFocusButton = ConfirmAutoFocusButton.Ok) { if (options == null) { throw new ArgumentNullException(nameof(options)); } ConfirmOptions confirmOptions = new ConfirmOptions() { Content = content, ConfirmButtons = confirmButtons, ConfirmIcon = confirmIcon, }; if (autoFocusButton != null) { confirmOptions.AutoFocusButton = (ConfirmAutoFocusButton)autoFocusButton; } if (title.IsT0) { confirmOptions.Title = title.AsT0; } else { confirmOptions.TitleTemplate = title.AsT1; } #region config button default properties if (options.Button1Props != null) { confirmOptions.Button1Props = options.Button1Props; } if (options.Button2Props != null) { confirmOptions.Button2Props = options.Button2Props; } if (options.Button3Props != null) { confirmOptions.Button3Props = options.Button3Props; } #endregion var confirmRef = new ConfirmRef(confirmOptions) { TaskCompletionSource = new TaskCompletionSource <ConfirmResult>() }; if (OnOpenEvent != null) { await OnOpenEvent.Invoke(confirmRef); } return(await confirmRef.TaskCompletionSource.Task); }
/// <summary> /// show a confirm dialog like MessageBox of Windows /// </summary> /// <param name="content">the content of dialog</param> /// <param name="title">the title of dialog</param> /// <param name="confirmButtons">the buttons of dialog</param> /// <param name="confirmIcon">the icon of dialog</param> /// <param name="options">the configuration options for dialog</param> /// <returns></returns> public async Task <ConfirmResult> Show( OneOf <string, RenderFragment> content, OneOf <string, RenderFragment> title, ConfirmButtons confirmButtons, ConfirmIcon confirmIcon, ConfirmButtonOptions options) { if (options == null) { throw new ArgumentNullException(nameof(options)); } ConfirmOptions confirmOptions = new ConfirmOptions() { Title = title, Content = content, ConfirmButtons = confirmButtons, ConfirmIcon = confirmIcon, }; #region config button default properties if (options.Button1Props != null) { confirmOptions.Button1Props = options.Button1Props; } if (options.Button2Props != null) { confirmOptions.Button2Props = options.Button2Props; } if (options.Button3Props != null) { confirmOptions.Button3Props = options.Button3Props; } #endregion var modalRef = new ConfirmRef(confirmOptions) { TaskCompletionSource = new TaskCompletionSource <ConfirmResult>() }; if (OnOpenEvent != null) { await OnOpenEvent.Invoke(modalRef); } return(await modalRef.TaskCompletionSource.Task); }