feat: enqueueSnackbar close logic

This commit is contained in:
IlyaDoronin 2024-02-20 11:04:32 +03:00
parent 635e485740
commit 3a21410b97

@ -1,11 +1,11 @@
import { CssBaseline, ThemeProvider } from "@mui/material"; import { CssBaseline, ThemeProvider, Button } from "@mui/material";
import { LocalizationProvider } from "@mui/x-date-pickers"; import { LocalizationProvider } from "@mui/x-date-pickers";
import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs"; import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs";
import { ruRU } from "@mui/x-date-pickers/locales"; import { ruRU } from "@mui/x-date-pickers/locales";
import App from "./App"; import App from "./App";
import dayjs from "dayjs"; import dayjs from "dayjs";
import "dayjs/locale/ru"; import "dayjs/locale/ru";
import { SnackbarProvider } from "notistack"; import { SnackbarProvider, closeSnackbar } from "notistack";
import { DndProvider } from "react-dnd"; import { DndProvider } from "react-dnd";
import { HTML5Backend } from "react-dnd-html5-backend"; import { HTML5Backend } from "react-dnd-html5-backend";
import { createRoot } from "react-dom/client"; import { createRoot } from "react-dom/client";
@ -14,6 +14,10 @@ import lightTheme from "./utils/themes/light";
import { SWRConfig } from "swr"; import { SWRConfig } from "swr";
import { BrowserRouter } from "react-router-dom"; import { BrowserRouter } from "react-router-dom";
import moment from "moment"; import moment from "moment";
import CloseIcon from "@icons/CloseBold";
import type { HTMLAttributes } from "react";
import type { SnackbarKey } from "notistack";
dayjs.locale("ru"); dayjs.locale("ru");
moment.locale("ru"); moment.locale("ru");
@ -21,6 +25,23 @@ moment.locale("ru");
const localeText = const localeText =
ruRU.components.MuiLocalizationProvider.defaultProps.localeText; ruRU.components.MuiLocalizationProvider.defaultProps.localeText;
const snackbarProps: HTMLAttributes<HTMLDivElement> = {
onTouchStart: () => closeSnackbar(),
};
const snackbarAction = (snackbarId: SnackbarKey) => (
<Button
onClick={() => closeSnackbar(snackbarId)}
sx={{
minWidth: "auto",
padding: "0px",
"&:hover": { backgroundColor: "transparent" },
}}
>
<CloseIcon />
</Button>
);
const root = createRoot(document.getElementById("root")!); const root = createRoot(document.getElementById("root")!);
root.render( root.render(
@ -39,6 +60,8 @@ root.render(
<ThemeProvider theme={lightTheme}> <ThemeProvider theme={lightTheme}>
<BrowserRouter> <BrowserRouter>
<SnackbarProvider <SnackbarProvider
SnackbarProps={snackbarProps}
action={snackbarAction}
preventDuplicate={true} preventDuplicate={true}
style={{ backgroundColor: lightTheme.palette.brightPurple.main }} style={{ backgroundColor: lightTheme.palette.brightPurple.main }}
> >