mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2025-12-23 20:31:57 -05:00
46 lines
1.1 KiB
TypeScript
46 lines
1.1 KiB
TypeScript
import { IconButton, styled } from "@material-ui/core";
|
|
import { Close } from "@material-ui/icons";
|
|
import {
|
|
MaterialDesignContent,
|
|
SnackbarKey,
|
|
SnackbarProvider,
|
|
useSnackbar,
|
|
} from "notistack";
|
|
import { ReactNode } from "react";
|
|
|
|
const StyledMaterialDesignContent = styled(MaterialDesignContent)(() => ({
|
|
"&.notistack-MuiContent": {
|
|
maxWidth: "50vw",
|
|
},
|
|
}));
|
|
|
|
function CloseSnackbarButton({ snackbarId }: { snackbarId: SnackbarKey }) {
|
|
const { closeSnackbar } = useSnackbar();
|
|
|
|
return (
|
|
<IconButton onClick={() => closeSnackbar(snackbarId)}>
|
|
<Close />
|
|
</IconButton>
|
|
);
|
|
}
|
|
|
|
export default function GlobalSnackbarManager({
|
|
children,
|
|
}: {
|
|
children: ReactNode;
|
|
}) {
|
|
return (
|
|
<SnackbarProvider
|
|
action={(snackbarId) => <CloseSnackbarButton snackbarId={snackbarId} />}
|
|
Components={{
|
|
success: StyledMaterialDesignContent,
|
|
error: StyledMaterialDesignContent,
|
|
default: StyledMaterialDesignContent,
|
|
info: StyledMaterialDesignContent,
|
|
warning: StyledMaterialDesignContent,
|
|
}}
|
|
>
|
|
{children}
|
|
</SnackbarProvider>
|
|
);
|
|
}
|