Skip to content

Commit

Permalink
Easier extension method to blazor & maui installs
Browse files Browse the repository at this point in the history
  • Loading branch information
aritchie committed Oct 7, 2024
1 parent 2f3bbbc commit 9c03803
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 1 deletion.
29 changes: 29 additions & 0 deletions src/Shiny.Mediator.Blazor/BlazorExtensions.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System.Runtime.InteropServices;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Shiny.Mediator.Blazor.Infrastructure;
Expand All @@ -9,6 +10,34 @@ namespace Shiny.Mediator;

public static class BlazorExtensions
{
/// <summary>
/// Easier path to add Shiny Mediator to Blazor WebAssembly
/// </summary>
/// <param name="builder"></param>
/// <param name="configAction"></param>
/// <param name="includeStandardMiddleware"></param>
/// <returns></returns>
public static WebAssemblyHostBuilder AddShinyMediator(
this WebAssemblyHostBuilder builder,
Action<ShinyConfigurator>? configAction = null,
bool includeStandardMiddleware = true
)
{
builder.Services.AddShinyMediator(cfg =>
{
cfg.UseBlazor(includeStandardMiddleware);
configAction?.Invoke(cfg);
});
return builder;
}


/// <summary>
/// Add blazor internal services and component event collector
/// </summary>
/// <param name="cfg"></param>
/// <param name="includeStandardMiddleware"></param>
/// <returns></returns>
public static ShinyConfigurator UseBlazor(this ShinyConfigurator cfg, bool includeStandardMiddleware = true)
{
cfg.Services.AddSingletonAsImplementedInterfaces<BlazorEventCollector>();
Expand Down
2 changes: 1 addition & 1 deletion src/Shiny.Mediator.Blazor/Shiny.Mediator.Blazor.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components" Version="8.0.8" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.8" />
<PackageReference Include="Microsoft.JSInterop" Version="8.0.0" />
<ProjectReference Include="..\Shiny.Mediator.AppSupport\Shiny.Mediator.AppSupport.csproj" />
<ProjectReference Include="..\Shiny.Mediator\Shiny.Mediator.csproj"/>
Expand Down
21 changes: 21 additions & 0 deletions src/Shiny.Mediator.Maui/MauiExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,27 @@ namespace Shiny.Mediator;

public static class MauiExtensions
{
/// <summary>
/// Easier path to add Shiny Mediator to Maui
/// </summary>
/// <param name="builder"></param>
/// <param name="configAction"></param>
/// <param name="includeStandardMiddleware"></param>
/// <returns></returns>
public static MauiAppBuilder AddShinyMediator(
this MauiAppBuilder builder,
Action<ShinyConfigurator>? configAction = null,
bool includeStandardMiddleware = true
)
{
builder.Services.AddShinyMediator(cfg =>
{
cfg.UseMaui(includeStandardMiddleware);
configAction?.Invoke(cfg);
});
return builder;
}

/// <summary>
/// Adds Maui Event Collector to mediator
/// </summary>
Expand Down

0 comments on commit 9c03803

Please sign in to comment.