/// <summary> /// Shows the modal with the component type using the specified <paramref name="title"/>, /// passing the specified <paramref name="parameters"/> and setting a custom CSS style. /// </summary> /// <param name="title">Modal title.</param> /// <param name="parameters">Key/Value collection of parameters to pass to component being displayed.</param> /// <param name="options">Options to configure the modal.</param> public ModalReference Show(Type contentComponent, string title, ModalParameters parameters, ModalOptions options) { if (!typeof(ComponentBase).IsAssignableFrom(contentComponent)) { throw new ArgumentException($"{contentComponent.FullName} must be a Blazor Component"); } var modalInstanceId = Guid.NewGuid(); var modalContent = new RenderFragment(builder => { var i = 0; builder.OpenComponent(i++, contentComponent); foreach (var parameter in parameters._parameters) { builder.AddAttribute(i++, parameter.Key, parameter.Value); } builder.CloseComponent(); }); var modalInstance = new RenderFragment(builder => { builder.OpenComponent <BlazoredModalInstance>(0); builder.AddAttribute(1, "Options", options); builder.AddAttribute(2, "Title", title); builder.AddAttribute(3, "Content", modalContent); builder.AddAttribute(4, "Id", modalInstanceId); builder.CloseComponent(); }); var modalReference = new ModalReference(modalInstanceId, modalInstance); OnModalInstanceAdded?.Invoke(modalReference); return(modalReference); }
internal void Close(ModalReference modal, ModalResult result) { OnModalCloseRequested?.Invoke(modal, result); }
internal void Close(ModalReference modal) { Close(modal, ModalResult.Ok <object>(null)); }