mirror of
https://git.mirrors.martin98.com/https://github.com/SigNoz/signoz
synced 2025-10-14 14:11:31 +08:00

* chore: added jsx-runtime plugin in eslint tsconfig Signed-off-by: GermaVinsmoke <vaibhav1180@gmail.com> * chore: updated react imports Signed-off-by: GermaVinsmoke <vaibhav1180@gmail.com> * chore: renamed redux dispatch Signed-off-by: GermaVinsmoke <vaibhav1180@gmail.com> * fix: build is fixed --------- Signed-off-by: GermaVinsmoke <vaibhav1180@gmail.com> Co-authored-by: Palash Gupta <palashgdev@gmail.com>
44 lines
1.0 KiB
TypeScript
44 lines
1.0 KiB
TypeScript
import { notification } from 'antd';
|
|
import { NotificationInstance } from 'antd/es/notification/interface';
|
|
import { createContext, useContext, useMemo } from 'react';
|
|
|
|
type Notification = {
|
|
notifications: NotificationInstance;
|
|
};
|
|
|
|
const defaultNotification: Notification = {
|
|
notifications: {
|
|
success: (): void => {},
|
|
error: (): void => {},
|
|
info: (): void => {},
|
|
warning: (): void => {},
|
|
open: (): void => {},
|
|
destroy: (): void => {},
|
|
},
|
|
};
|
|
|
|
export const NotificationContext = createContext<Notification>(
|
|
defaultNotification,
|
|
);
|
|
|
|
export function NotificationProvider({
|
|
children,
|
|
}: {
|
|
children: JSX.Element;
|
|
}): JSX.Element {
|
|
const [notificationApi, NotificationElement] = notification.useNotification();
|
|
const notifications = useMemo(() => ({ notifications: notificationApi }), [
|
|
notificationApi,
|
|
]);
|
|
|
|
return (
|
|
<NotificationContext.Provider value={notifications}>
|
|
{NotificationElement}
|
|
{children}
|
|
</NotificationContext.Provider>
|
|
);
|
|
}
|
|
|
|
export const useNotifications = (): Notification =>
|
|
useContext(NotificationContext);
|