diff --git a/src/Shiny.Mediator.AppSupport/AppSupportExtensions.cs b/src/Shiny.Mediator.AppSupport/AppSupportExtensions.cs index fc22de3..fba1159 100644 --- a/src/Shiny.Mediator.AppSupport/AppSupportExtensions.cs +++ b/src/Shiny.Mediator.AppSupport/AppSupportExtensions.cs @@ -3,9 +3,35 @@ namespace Shiny.Mediator; - public static class AppSupportExtensions { + /// + /// Adds standard app support middleware - offline, replay stream, & user notification + /// + /// + /// + public static ShinyConfigurator AddStandardAppSupportMiddleware(this ShinyConfigurator cfg) + { + cfg.AddUserNotificationExceptionMiddleware(); + cfg.AddOfflineAvailabilityMiddleware(); + cfg.AddReplayStreamMiddleware(); + return cfg; + } + + + /// + /// Allows you to mark [UserNotify] on your request handlers which logs an error & displays an alert to the user + /// to show a customized message + /// + /// + /// + public static ShinyConfigurator AddUserNotificationExceptionMiddleware(this ShinyConfigurator cfg) + { + cfg.AddOpenRequestMiddleware(typeof(UserExceptionRequestMiddleware<,>)); + return cfg; + } + + /// /// Allows your request /w result handlers to return a stored value when offline is detected /// diff --git a/src/Shiny.Mediator.Blazor/BlazorExtensions.cs b/src/Shiny.Mediator.Blazor/BlazorExtensions.cs index 42fb3ca..75de40a 100644 --- a/src/Shiny.Mediator.Blazor/BlazorExtensions.cs +++ b/src/Shiny.Mediator.Blazor/BlazorExtensions.cs @@ -9,7 +9,7 @@ namespace Shiny.Mediator; public static class BlazorExtensions { - public static ShinyConfigurator UseBlazor(this ShinyConfigurator cfg) + public static ShinyConfigurator UseBlazor(this ShinyConfigurator cfg, bool includeStandardMiddleware = true) { cfg.Services.AddSingletonAsImplementedInterfaces(); if (RuntimeInformation.IsOSPlatform(OSPlatform.Create("Browser"))) @@ -17,6 +17,9 @@ public static ShinyConfigurator UseBlazor(this ShinyConfigurator cfg) cfg.Services.TryAddSingleton(); cfg.Services.TryAddSingleton(); cfg.Services.TryAddSingleton(); + + if (includeStandardMiddleware) + cfg.AddStandardAppSupportMiddleware(); } return cfg; } diff --git a/src/Shiny.Mediator.Maui/MauiExtensions.cs b/src/Shiny.Mediator.Maui/MauiExtensions.cs index d942fff..27b2a90 100644 --- a/src/Shiny.Mediator.Maui/MauiExtensions.cs +++ b/src/Shiny.Mediator.Maui/MauiExtensions.cs @@ -28,9 +28,7 @@ public static ShinyConfigurator UseMaui(this ShinyConfigurator cfg, bool include if (includeStandardMiddleware) { cfg.AddMainThreadMiddleware(); - cfg.AddUserNotificationExceptionMiddleware(); - cfg.AddOfflineAvailabilityMiddleware(); - cfg.AddReplayStreamMiddleware(); + cfg.AddStandardAppSupportMiddleware(); } return cfg; } @@ -83,17 +81,4 @@ public static ShinyConfigurator AddMainThreadMiddleware(this ShinyConfigurator c return cfg; } - - - /// - /// Allows you to mark [UserNotify] on your request handlers which logs an error & displays an alert to the user - /// to show a customized message - /// - /// - /// - public static ShinyConfigurator AddUserNotificationExceptionMiddleware(this ShinyConfigurator cfg) - { - cfg.AddOpenRequestMiddleware(typeof(UserExceptionRequestMiddleware<,>)); - return cfg; - } } \ No newline at end of file