import {
Button,
Card,
Col,
Flex,
Form,
Grid,
QRCode,
Result,
Row,
Space,
Spin,
Switch,
Typography,
notification,
} from "antd";
import { useTranslation } from "react-i18next";
import {
Constants,
EncodeStringToBase64,
getUserSessionFromLocalStorage,
myFetch,
showInputsInvalidNotification,
showPasswordIncorrectNotification,
} from "../../../utils";
import { useEffect, useRef, useState } from "react";
import MyCenteredContainer from "../../../Components/MyContainer";
import {
MyCalendarMaxFutureBookingDaysFormInput,
MyCalendarMinEarliestBookingTimeFormInput,
MyPasswordFormInput,
} from "../../../Components/MyFormInputs";
import {
RequestState,
RequestStateItem,
} from "../../../Components/MyRequestStateItem";
import MyModal, {
MyModalCloseConfirmButtonFooter,
MyModalOnlyCloseButtonFooter,
} from "../../../Components/MyModal";
import { useParams } from "react-router-dom";
import {
DownloadOutlined,
MailOutlined,
ShareAltOutlined,
WhatsAppOutlined,
} from "@ant-design/icons";
import Paragraph from "antd/es/typography/Paragraph";
import { useSideBarContext } from "../../../Contexts/SideBarContext";
const { useBreakpoint } = Grid;
export default function StoreCalendar() {
const { t } = useTranslation();
const [notificationApi, notificationContextHolder] =
notification.useNotification();
const { storeId } = useParams();
const [calendarSettings, setCalendarSettings] = useState({});
const [isRequesting, setIsRequesting] = useState(true);
const timer = useRef();
useEffect(() => {
// delete session cookie
document.cookie = `session=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;`;
myFetch({
url: "/calendar/settings",
method: "GET",
notificationApi: notificationApi,
t: t,
})
.then((res) => {
setIsRequesting(false);
setCalendarSettings(res);
})
.catch(() => {});
}, []);
useEffect(() => {
// if status is pending, check again after
if (calendarSettings.status === "PENDING") {
timer.current = setTimeout(() => {
myFetch({
url: "/calendar/settings",
method: "GET",
notificationApi: notificationApi,
t: t,
})
.then((res) => setCalendarSettings(res))
.catch(() => {});
}, 2000);
}
return () => {
clearTimeout(timer.current);
};
}, [calendarSettings]);
if (isRequesting) {
return (