create-plume-react-project
Version:
CLI to create Plume React Project
48 lines (38 loc) • 1.28 kB
text/typescript
import useMessages from '@i18n/hooks/messagesHook';
import NotificationEngine from '@lib/plume-notification/NotificationEngine';
import { getGlobalInstance } from 'plume-ts-di';
import { HttpError } from 'simple-http-rest-client';
export type PlumeNotification = {
notifyHttpError: (error: HttpError) => void,
notifyError: (text: string) => void,
notifySuccess: (text: string) => void,
notify: (text: string) => void,
notifyWarning: (text: string) => void,
};
function useNotification(): PlumeNotification {
const notificationEngine: NotificationEngine = getGlobalInstance(NotificationEngine);
const { httpError } = useMessages();
const notifyHttpError = (error: HttpError): void => {
notificationEngine.addDanger(httpError(error));
};
const notifyError = (text: string): void => {
notificationEngine.addDanger(text);
};
const notifySuccess = (text: string): void => {
notificationEngine.addSuccess(text);
};
const notify = (text: string): void => {
notificationEngine.addInfo(text);
};
const notifyWarning = (text: string): void => {
notificationEngine.addWarning(text);
};
return {
notifyHttpError,
notifyError,
notifySuccess,
notify,
notifyWarning,
};
}
export default useNotification;