using WPFluent.Controls; namespace WPFluent; /// /// A service that provides methods related to displaying the . /// public class SnackbarService : ISnackbarService { private SnackbarPresenter? _presenter; private Snackbar? _snackbar; /// public SnackbarPresenter? GetSnackbarPresenter() { return _presenter; } /// public void SetSnackbarPresenter(SnackbarPresenter contentPresenter) { _presenter = contentPresenter; } /// public void Show(string title, string message, ControlAppearance appearance, IconElement? icon, TimeSpan timeout) { if (_presenter is null) { throw new InvalidOperationException($"The SnackbarPresenter was never set"); } _snackbar ??= new Snackbar(_presenter); _snackbar.SetCurrentValue(Snackbar.TitleProperty, title); _snackbar.SetCurrentValue(System.Windows.Controls.ContentControl.ContentProperty, message); _snackbar.SetCurrentValue(Snackbar.AppearanceProperty, appearance); _snackbar.SetCurrentValue(Snackbar.IconProperty, icon); _snackbar.SetCurrentValue(Snackbar.TimeoutProperty, timeout.TotalSeconds == 0 ? DefaultTimeOut : timeout); _snackbar.Show(true); } /// public TimeSpan DefaultTimeOut { get; set; } = TimeSpan.FromSeconds(5); }