import {createRoot} from "react-dom/client";
import "./index.scss";
import DataProvider from "./Shared/Contexts/DataProvider/DataProvider";
import {ThemeProvider} from "@material-tailwind/react";
import "tailwindcss/tailwind.css";
import {LocalizationProvider} from "@mui/x-date-pickers/LocalizationProvider";
import {AdapterDateFns} from "@mui/x-date-pickers/AdapterDateFns";
import {ptBR} from "@mui/x-date-pickers/locales";
import {ptBR as dateFnsLocale} from "date-fns/locale";
import AppRouter from "./routes";
import moment from "moment";
import {ToastContainer} from "react-toastify";
import "moment/locale/pt-br";
import MaterialTheme from "./Shared/Theme/MaterialTheme";
import {RecoilRoot} from "recoil";

moment.updateLocale("pt-br", {
	months: [
		"Janeiro",
		"Fevereiro",
		"Março",
		"Abril",
		"Maio",
		"Junho",
		"Julho",
		"Agosto",
		"Setembro",
		"Outubro",
		"Novembro",
		"Dezembro"
	],
	monthsShort: [
		"Jan",
		"Fev",
		"Mar",
		"Abr",
		"Mai",
		"Jun",
		"Jul",
		"Ago",
		"Set",
		"Out",
		"Nov",
		"Dez"
	]
});

createRoot(document.getElementById("root")!).render(
	<RecoilRoot>
		<ThemeProvider value={MaterialTheme}>
			<LocalizationProvider
				dateAdapter={AdapterDateFns}
				adapterLocale={dateFnsLocale}
				localeText={ptBR.components.MuiLocalizationProvider.defaultProps.localeText}
			>
				<DataProvider>
					<AppRouter/>
					<ToastContainer stacked/>
				</DataProvider>
			</LocalizationProvider>
		</ThemeProvider>
	</RecoilRoot>
);
