Files
omni-tools/src/contexts/CustomSnackBarContext.tsx
Ibrahima G. Coulibaly 94aa86e4db fix: text split try catch
2024-06-21 22:35:56 +01:00

36 lines
956 B
TypeScript

import { createContext, FC, ReactNode } from 'react';
import { Zoom } from '@mui/material';
import { useSnackbar } from 'notistack';
type CustomSnackBarContext = {
showSnackBar: (message: string, type: 'error' | 'success') => void;
};
// eslint-disable-next-line @typescript-eslint/no-redeclare
export const CustomSnackBarContext = createContext<CustomSnackBarContext>(
{} as CustomSnackBarContext
);
interface Props {
children: ReactNode;
}
export const CustomSnackBarProvider: FC<Props> = ({ children }) => {
const { enqueueSnackbar } = useSnackbar();
const showSnackBar = (message: string, type: 'error' | 'success') => {
enqueueSnackbar(message, {
variant: type,
anchorOrigin: {
vertical: 'top',
horizontal: 'right'
},
TransitionComponent: Zoom
});
};
return (
<CustomSnackBarContext.Provider value={{ showSnackBar }}>
{children}
</CustomSnackBarContext.Provider>
);
};