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 ( ); } const ConnectCalendarButton = ({ text }) => ( ); if (calendarSettings.status === "NOT_CONNECTED") { return ( } /> ); } if (calendarSettings.status === "PENDING") { return ( } /> ); } if (calendarSettings.status === "NOPERM") { return ( } /> ); } if (calendarSettings.status === "ERROR") { return ( } /> ); } // status OK return ( <> {notificationContextHolder}

{t("calendar.pageTitle")}

{calendarSettings.storeSettings && ( )} ); } function CalendarFrameCard({ storeId }) { const { t } = useTranslation(); const [isLoading, setIsLoading] = useState(true); return ( } > {isLoading && (
)}