Files
Toolkit2/Toolkit.Foundation/NavigateHandler.cs
T
2024-05-09 22:37:36 +01:00

22 lines
734 B
C#

using Microsoft.Extensions.DependencyInjection;
namespace Toolkit.Foundation;
public class NavigateHandler(NamedComponent scope,
IComponentScopeProvider provider) :
INotificationHandler<Navigate>
{
public async Task Handle(Navigate args,
CancellationToken cancellationToken)
{
if (provider.Get(args.Scope ?? scope.Name)
is ComponentScopeDescriptor descriptor)
{
if (descriptor?.Services?.GetService<INavigationScope>() is INavigationScope navigationScope)
{
await navigationScope.NavigateAsync(args.Route, args.Sender,
args.Context, args.Navigated, args.Parameters, cancellationToken);
}
}
}
}