Files
pybricks-code/src/notifications/actions.ts
T
David Lechner 9641898a75 actions: refactor actions
The pattern we were using for actions required actions to be defined in
three places, an enum member containing the type string, an type
definition and a function. This combines all three of these into one by
using a helper function based on the ideas from [1].

[1]: https://phryneas.de/redux-typescript-no-discriminating-union
2022-02-25 17:58:30 -06:00

22 lines
583 B
TypeScript

// SPDX-License-Identifier: MIT
// Copyright (c) 2020-2022 The Pybricks Authors
import { createAction } from '../actions';
export type NotificationLevel = 'error' | 'warning' | 'info';
/**
* Action to add a notification to the list.
* @param level The severity level
* @param message The message to display to the user
* @param helpUrl An optional URL for more info
*/
export const add = createAction(
(level: NotificationLevel, message: string, helpUrl?: string) => ({
type: 'notification.action.add',
level,
message,
helpUrl,
}),
);