Exemplo n.º 1
0
        public Snackbar Add(string message, Severity severity = Severity.Normal, Action <SnackbarOptions> configure = null)
        {
            if (message.IsEmpty())
            {
                return(null);
            }

            message = message.Trimmed();

            var options = new SnackbarOptions(severity, Configuration);

            configure?.Invoke(options);

            var snackbar = new Snackbar(message, options);

            SnackBarLock.EnterWriteLock();
            try
            {
                if (Configuration.PreventDuplicates && SnackbarAlreadyPresent(snackbar))
                {
                    return(null);
                }
                snackbar.OnClose += Remove;
                SnackBarList.Add(snackbar);
            }
            finally
            {
                SnackBarLock.ExitWriteLock();
            }

            OnSnackbarsUpdated?.Invoke();

            return(snackbar);
        }
Exemplo n.º 2
0
        public void Add(SnackbarType type, string message, Action <SnackbarOptions> configure)
        {
            if (message.IsEmpty())
            {
                return;
            }

            message = message.Trimmed();

            var options = new SnackbarOptions(type, Configuration);

            configure?.Invoke(options);

            var toast = new Snackbar(message, options);

            SnackBarLock.EnterWriteLock();
            try
            {
                if (Configuration.PreventDuplicates && ToastAlreadyPresent(toast))
                {
                    return;
                }
                toast.OnClose += Remove;
                SnackBarList.Add(toast);
            }
            finally
            {
                SnackBarLock.ExitWriteLock();
            }

            OnSnackbarsUpdated?.Invoke();
        }
Exemplo n.º 3
0
 public State(SnackbarOptions options)
 {
     Options       = options;
     AnimationId   = $"snackbar-{Guid.NewGuid()}";
     SnackbarState = SnackbarState.Init;
 }
Exemplo n.º 4
0
 internal Snackbar(string message, SnackbarOptions options)
 {
     Message = message;
     State   = new SnackBarMessageState(options);
     Timer   = new Timer(TimerElapsed, null, Timeout.Infinite, Timeout.Infinite);
 }