Frequency navigation WIP

This commit is contained in:
2023-02-24 22:05:13 +01:00
parent 188b9593ce
commit 3d057f947a
34 changed files with 576 additions and 42 deletions

View File

@@ -1,20 +1,31 @@
using DynamicData;
using FileTime.App.Core.Services;
using FileTime.App.Core.ViewModels;
using Microsoft.Extensions.DependencyInjection;
namespace FileTime.GuiApp.Services;
public class ModalService : IModalService
{
private readonly IServiceProvider _serviceProvider;
private readonly SourceList<IModalViewModel> _openModals = new();
public IObservable<IChangeSet<IModalViewModel>> OpenModals { get; }
public ModalService()
public ModalService(IServiceProvider serviceProvider)
{
_serviceProvider = serviceProvider;
OpenModals = _openModals.Connect().StartWithEmpty();
}
public void OpenModal(IModalViewModel modalToOpen) => _openModals.Add(modalToOpen);
public void CloseModal(IModalViewModel modalToClose) => _openModals.Remove(modalToClose);
public T OpenModal<T>() where T : IModalViewModel
{
var modal = _serviceProvider.GetRequiredService<T>();
OpenModal(modal);
return modal;
}
}