Skip to content

Commit

Permalink
Registration improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
aritchie committed Sep 21, 2024
1 parent 54f5634 commit 6c53e59
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 18 deletions.
28 changes: 27 additions & 1 deletion src/Shiny.Mediator.AppSupport/AppSupportExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,35 @@
namespace Shiny.Mediator;



public static class AppSupportExtensions
{
/// <summary>
/// Adds standard app support middleware - offline, replay stream, & user notification
/// </summary>
/// <param name="cfg"></param>
/// <returns></returns>
public static ShinyConfigurator AddStandardAppSupportMiddleware(this ShinyConfigurator cfg)
{
cfg.AddUserNotificationExceptionMiddleware();
cfg.AddOfflineAvailabilityMiddleware();
cfg.AddReplayStreamMiddleware();
return cfg;
}


/// <summary>
/// Allows you to mark [UserNotify] on your request handlers which logs an error & displays an alert to the user
/// to show a customized message
/// </summary>
/// <param name="cfg"></param>
/// <returns></returns>
public static ShinyConfigurator AddUserNotificationExceptionMiddleware(this ShinyConfigurator cfg)
{
cfg.AddOpenRequestMiddleware(typeof(UserExceptionRequestMiddleware<,>));
return cfg;
}


/// <summary>
/// Allows your request /w result handlers to return a stored value when offline is detected
/// </summary>
Expand Down
5 changes: 4 additions & 1 deletion src/Shiny.Mediator.Blazor/BlazorExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,17 @@ 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<BlazorEventCollector>();
if (RuntimeInformation.IsOSPlatform(OSPlatform.Create("Browser")))
{
cfg.Services.TryAddSingleton<IStorageService, StorageService>();
cfg.Services.TryAddSingleton<IInternetService, InternetService>();
cfg.Services.TryAddSingleton<IAlertDialogService, AlertDialogService>();

if (includeStandardMiddleware)
cfg.AddStandardAppSupportMiddleware();
}
return cfg;
}
Expand Down
17 changes: 1 addition & 16 deletions src/Shiny.Mediator.Maui/MauiExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand Down Expand Up @@ -83,17 +81,4 @@ public static ShinyConfigurator AddMainThreadMiddleware(this ShinyConfigurator c

return cfg;
}


/// <summary>
/// Allows you to mark [UserNotify] on your request handlers which logs an error & displays an alert to the user
/// to show a customized message
/// </summary>
/// <param name="cfg"></param>
/// <returns></returns>
public static ShinyConfigurator AddUserNotificationExceptionMiddleware(this ShinyConfigurator cfg)
{
cfg.AddOpenRequestMiddleware(typeof(UserExceptionRequestMiddleware<,>));
return cfg;
}
}

0 comments on commit 6c53e59

Please sign in to comment.