Proporciona IDialogService métodos para mostrar diálogos modales al usuario, incluyendo indicaciones de confirmación, mensajes de error, avisos informativos, notificaciones de éxito y advertencias, así como diálogos con contenido propio.
Accede al servicio de diálogo desde cualquier componente. En React, la llamada useDialogService() desde dentro del árbol envuelta por el proveedor de diálogo del framework; en Blazor inyecta el servicio mediante inyección de propiedades. Ten en cuenta que el servicio de diálogo PowerPortalsPro es distinto del servicio de diálogo subyacente de FluentUI.
// useDialogService() devuelve la API de diálogo del framework. Disponible en cualquiera
// Componente de función debajo del <FluentDialogProvider> montado en la app
// raíz. El objeto devuelto expone métodos asíncronos de show* para confirmaciones,
// Baras de información / éxito / advertencia / mensajes de error, y renderizado personalizado de diálogos.
import { useDialogService } from '@powerportalspro/react-fluent';
function MyComponent() {
const dialogs = useDialogService();
// ...
}using IDialogService = PowerPortalsPro.Web.Blazor.Services.IDialogService;
[Inject]
private IDialogService _dialogService { get; set; } = null!;Úsalo ShowConfirmationAsync para preguntar al usuario con un sí o no. La propiedad devuelta DialogResult.Cancelled es true cuando el usuario selecciona la opción secundaria (negativa).
const result = await dialogs.showConfirmationAsync(
'¿Estás seguro de que quieres borrar este registro?',
{
title: 'Confirmar Eliminar',
primaryText: 'Sí',
secondaryText: 'No',
},
);
if (!result.cancelled) {
// Usuario confirmado — proceder con la eliminación
}var result = await _dialogService.ShowConfirmationAsync(
"¿Estás seguro de que quieres borrar este registro?",
title: "Confirmar Eliminar",
primaryText: "Sí",
secondaryText: "No");
if (!result.Cancelled)
{
// Usuario confirmado — proceder con la eliminación
}Utiliza los siguientes métodos para mostrar diálogos de mensajes de un solo botón con diferentes estilos visuales:
ShowInfoAsync — Mensaje informativo con un icono neutral.ShowSuccessAsync — Mensaje de éxito con un icono verde de verificación de verificación.ShowWarningAsync — Mensaje de advertencia con un icono amarillo de advertencia.ShowErrorAsync — Mensaje de error con un icono de error rojo.await dialogs.showInfoAsync('La operación se completó.', 'Información');
await dialogs.showSuccessAsync('Registro guardado con éxito.', 'Éxito');
await dialogs.showWarningAsync('Esta acción no puede deshacerse.', 'Advertencia');
await dialogs.showErrorAsync('Se produjo un error mientras guardaba.', 'Error');await _dialogService.ShowInfoAsync("La operación se completó.", "Información");
await _dialogService.ShowSuccessAsync("Registro guardado con éxito.", "Éxito");
await _dialogService.ShowWarningAsync("Esta acción no puede deshacerse.", "Advertencia");
await _dialogService.ShowErrorAsync("Se produjo un error mientras guardaba.", "Error");ShowDialogAsync muestra contenido propio, como un formulario, un selector o una vista previa, y devuelve lo que termina el diálogo. En Blazor, pasa un componente (o un RenderFragment); en React, pasa una función que muestre el contenido. Establece PrimaryText y SecondaryText para botones que el servicio dibuja, o deja ambos fuera para contenido que dibuja el suyo propio.
El contenido recibe el diálogo en el que se muestra: un IDialogContext en Blazor, recibido como parámetro en cascada, y un DialogHandle en React, pasado a la función de renderizado y disponible en cualquier parte dentro de . useDialogHandle()Úsalo para cerrar con un valor, cancelar, activar o desactivar el botón principal, o establecer qué hace el botón principal. Lo que esa acción devuelve es lo que devuelve el diálogo. Return KeepOpen (KEEP_OPEN en React) para mantener el diálogo abierto, por ejemplo, mientras la entrada aún no es válida.
// El contenido se muestra donde se alojan los diálogos, no desde donde se abrió. Puede usar los servicios de la app, pero no el contexto propio de la página, así que pasa lo que necesita.
const result = await dialogs.showDialogAsync<string>(
(dialog) => <RenameForm initialName={name} dialog={dialog} />,
{
title: 'Renombración',
primaryText: 'Salvar',
secondaryText: 'Cancelar',
},
);
if (!result.cancelled && result.data !== undefined) {
// El diálogo se guardó: usa el nombre que devolvió
}
// RenameForm
function RenameForm({ initialName, dialog }: { initialName: string; dialog: DialogHandle<string> }) {
const [name, setName] = useState(initialName);
dialog.onPrimary(async () =>
name.trim() ? name.trim() : KEEP_OPEN); // Aún no es válido: di por qué y mantén el diálogo abierto
return <Input value={name} onChange={(_, d) => setName(d.value)} />;
}// El contenido se muestra donde se alojan los diálogos, no desde donde se abrió. Puede usar los servicios de la app, pero no el contexto propio de la página, así que pasa lo que necesita.
var result = await _dialogService.ShowDialogAsync<RenameDialog>(
options =>
{
options.Title = "Renombración";
options.PrimaryText = "Salvar";
options.SecondaryText = "Cancelar";
},
new Dictionary<string, object?> { [nameof(RenameDialog.InitialName)] = name });
if (result.GetData<string>() is { } newName)
{
// El diálogo se guardó: usa el nombre que devolvió
}
// RenameDialog.razor: <FluentTextInput @bind-Value="_name" />
[CascadingParameter] public IDialogContext Dialog { get; set; } = default!;
[Parameter] public string? InitialName { get; set; }
private string? _name;
protected override void OnInitialized()
{
_name = InitialName;
Dialog.OnPrimary = () => Task.FromResult<object?>(string.IsNullOrWhiteSpace(_name)
? IDialogContext.KeepOpen // Aún no es válido: di por qué y mantén el diálogo abierto
: _name.Trim());
}Abre un diálogo con un formulario. Guardar mantiene el diálogo abierto hasta que se introduce un nombre, luego lo devuelve a la página; Cancelar no devuelve nada.
Todos los métodos de diálogo aceptan parámetros opcionales title primaryText y de parámetros. Si se omiten, se utilizan valores predeterminados localizados. El diálogo de confirmación también acepta un secondaryText parámetro para la etiqueta del botón de cancelar.
Todos los métodos devuelven un DialogResult objeto. Para los diálogos de confirmación, comprueba la Cancelled propiedad para determinar la elección del usuario. En los diálogos de mensajes, el resultado indica que el diálogo fue descartado.
Utiliza los controles de abajo para personalizar el título y el mensaje del diálogo, luego haz clic en cualquier botón para ver el tipo de diálogo correspondiente.
Nombre | Tipo | Default | Descripción |
|---|---|---|---|
OpenDialogCount | int | ¿Cuántos diálogos tiene actualmente abiertos este servicio? |
OpenDialogCountNombre | Parámetros | Tipo | Descripción |
|---|---|---|---|
ShowConfirmationAsync | string message string title string primaryText string secondaryText | Task<DialogResult> | Muestra un diálogo de confirmación con los botones de acción y dos suministrados message , y luego espera a que el usuario debe elegir uno. El regreso Services.DialogResult se DialogResult.Cancelled ha establecido en |
ShowDialogAsync<TComponent> | Action<CustomDialogOptions> configure IDictionary<string, Object> parameters | Task<DialogResult> | Se muestra |
ShowErrorAsync | string message string title string primaryText | Task<DialogResult> | Muestra un diálogo de error con el código suministrado message y espera a que el usuario lo descarte. |
ShowInfoAsync | string message string title string primaryText | Task<DialogResult> | Muestra un diálogo informativo con el proporcionado message y espera a que el usuario lo descarte. |
ShowSuccessAsync | string message string title string primaryText | Task<DialogResult> | Muestra un diálogo de éxito con el proporcionado message y espera a que el usuario lo descarte. |
ShowWarningAsync | string message string title string primaryText | Task<DialogResult> | Muestra un diálogo de advertencia con el proporcionado message y espera a que el usuario lo descarte. |
ShowConfirmationAsyncmessage , y luego espera a que el usuario debe elegir uno. El regreso Services.DialogResult se DialogResult.Cancelled ha establecido en ShowDialogAsync<TComponent>ShowErrorAsyncmessage y espera a que el usuario lo descarte.ShowInfoAsyncmessage y espera a que el usuario lo descarte.ShowSuccessAsyncmessage y espera a que el usuario lo descarte.ShowWarningAsyncmessage y espera a que el usuario lo descarte.Nombre | Tipo | Default | Descripción |
|---|---|---|---|
Cancelled | bool | False | Obtiene un valor que indica si el diálogo fue cancelado (por ejemplo, el usuario lo descartó sin confirmarlo). |
Data | Object? | Carga útil de datos opcional devuelto por el diálogo cuando estaba cerrado. |
CancelledDataNombre | Parámetros | Tipo | Descripción |
|---|---|---|---|
Cancel | Object data | DialogResult | Crea un Services.DialogResult que representa un resultado cancelado, opcionalmente transportando una carga útil de datos. |
GetData<T> | T? | El valor con el que cerraba el diálogo, como | |
Ok<T> | T result | DialogResult | Crea un Services.DialogResult que representa un resultado confirmado, llevándose result como carga útil de datos. |
TryGetData<T> | out T value | bool | Lee el valor con el que se cerró el diálogo, como |
CancelServices.DialogResult que representa un resultado cancelado, opcionalmente transportando una carga útil de datos.GetData<T>Ok<T>Services.DialogResult que representa un resultado confirmado, llevándose result como carga útil de datos.TryGetData<T>Nombre | Tipo | Default | Descripción |
|---|---|---|---|
PreventDismissOnEscape | bool | False | Si Escape no puede cerrar el diálogo. Por defecto false. |
PrimaryText | string? | La etiqueta del botón principal. El servicio dibuja el botón cuando esto está activado; deja ambos y CustomDialogOptions.SecondaryText no configurado para contenido que dibuja sus propios botones. ¿Qué botón es el botón hace es hasta IDialogContext.OnPrimary. | |
SecondaryText | string? | La etiqueta del botón secundario. El servicio dibuja el botón cuando esto está activado y cancela El diálogo. | |
ShowDismiss | bool | True | Si el encabezado muestra un botón de cierre. Por defecto true. |
Title | string? | El título del diálogo, que aparece en el encabezado. Omitítelo en un diálogo sin uno. | |
Width | string? | El ancho del diálogo como longitud CSS, por ejemplo, |
PreventDismissOnEscapefalse.PrimaryTextCustomDialogOptions.SecondaryText no configurado para contenido que dibuja sus propios botones. ¿Qué botón es el botón hace es hasta IDialogContext.OnPrimary.SecondaryTextShowDismisstrue.TitleWidthNombre | Tipo | Default | Descripción |
|---|---|---|---|
OnPrimary | Func<Task<Object>>? | Se ejecuta cuando se pulsa el botón primario dibujado por servicio. Su resultado es lo que devuelve el diálogo, en DialogResult.Data; volver IDialogContext.KeepOpen para mantener abierto el diálogo en su lugar. Desactivado, el botón cierra el diálogo sin datos. Mientras se ejecuta, los botones son desactivado y Escape no cancela el diálogo (en el servidor Blazor, desde un momento después del Haz clic: el bloque llega al navegador una ida y vuelta después). Si se lanza, el error se registra, el diálogo permanece abierto y se muestra un mensaje de error general sobre él; para fallos que un usuario puede arreglar, decir tú mismo qué salió mal y devolverlo IDialogContext.KeepOpen. | |
PrimaryEnabled | bool | Si el botón primario dibujado por servicio puede pulsarse, por ejemplo, solo una vez que se requiere una elección hecho. Por defecto true. |
OnPrimaryDialogResult.Data; volver IDialogContext.KeepOpen para mantener abierto el diálogo en su lugar. Desactivado, el botón cierra el diálogo sin datos. Mientras se ejecuta, los botones son desactivado y Escape no cancela el diálogo (en el servidor Blazor, desde un momento después del Haz clic: el bloque llega al navegador una ida y vuelta después). Si se lanza, el error se registra, el diálogo permanece abierto y se muestra un mensaje de error general sobre él; para fallos que un usuario puede arreglar, decir tú mismo qué salió mal y devolverlo IDialogContext.KeepOpen.PrimaryEnabledtrue.Nombre | Parámetros | Tipo | Descripción |
|---|---|---|---|
CancelAsync | Task | Cierra el diálogo como cancelado, lo que devuelve Cancel(System.Object). | |
CloseAsync | Object data | Task | Cierra el diálogo, que devuelve DialogResult.Ok`<T>(`<U>) con data. |
CancelAsyncCancel(System.Object).CloseAsyncDialogResult.Ok`<T>(`<U>) con data.