You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

55 lines
1.3 KiB

import { AppNotification, AppNotificationSeverity, AppNotificationTimeout } from 'app/types';
import { getMessageFromError } from 'app/core/utils/errors';
import { v4 as uuidv4 } from 'uuid';
const defaultSuccessNotification = {
title: '',
text: '',
severity: AppNotificationSeverity.Success,
icon: 'check',
timeout: AppNotificationTimeout.Success,
};
const defaultWarningNotification = {
title: '',
text: '',
severity: AppNotificationSeverity.Warning,
icon: 'exclamation-triangle',
timeout: AppNotificationTimeout.Warning,
};
const defaultErrorNotification = {
title: '',
text: '',
severity: AppNotificationSeverity.Error,
icon: 'exclamation-triangle',
timeout: AppNotificationTimeout.Error,
};
export const createSuccessNotification = (title: string, text = ''): AppNotification => ({
...defaultSuccessNotification,
title: title,
text: text,
id: uuidv4(),
});
export const createErrorNotification = (
title: string,
text: string | Error = '',
component?: React.ReactElement
): AppNotification => {
return {
...defaultErrorNotification,
text: getMessageFromError(text),
title,
id: uuidv4(),
component,
};
};
export const createWarningNotification = (title: string, text = ''): AppNotification => ({
...defaultWarningNotification,
title: title,
text: text,
id: uuidv4(),
});