import React, { Fragment, useState } from 'react';
import ElementorBanner from '../Common/ElementorBanner';
import UISpinner from '../../shared/UIComponents/UISpinner';
import ElementorMeetingWarning from './ElementorMeetingWarning';
import useMeetings, {
useSelectedMeetingCalendar,
} from '../../shared/Meeting/hooks/useMeetings';
import { __ } from '@wordpress/i18n';
import Raven from 'raven-js';
import {
BackgroudAppContext,
useBackgroundAppContext,
} from '../../iframe/useBackgroundApp';
import { refreshToken } from '../../constants/leadinConfig';
import { getOrCreateBackgroundApp } from '../../utils/backgroundAppUtils';
import { isRefreshTokenAvailable } from '../../utils/isRefreshTokenAvailable';
interface IElementorMeetingSelectProps {
url: string;
setAttributes: Function;
}
function ElementorMeetingSelect({
url,
setAttributes,
}: IElementorMeetingSelectProps) {
const {
mappedMeetings: meetings,
loading,
error,
reload,
connectCalendar,
} = useMeetings();
const selectedMeetingCalendar = useSelectedMeetingCalendar(url);
const [localUrl, setLocalUrl] = useState(url);
const handleConnectCalendar = () => {
return connectCalendar()
.then(() => {
reload();
})
.catch(error => {
Raven.captureMessage('Unable to connect calendar', {
extra: { error },
});
});
};
return (
{loading ? (
) : error ? (
{__(
'Please refresh your meetings or try again in a few minutes',
'leadin'
)}
) : (
{selectedMeetingCalendar && (
)}
{meetings.length > 1 && (
)}
)}
);
}
function ElementorMeetingSelectWrapper(props: IElementorMeetingSelectProps) {
const isBackgroundAppReady = useBackgroundAppContext();
return (
{!isBackgroundAppReady ? (
) : (
)}
);
}
export default function ElementorMeetingsSelectContainer(
props: IElementorMeetingSelectProps
) {
return (
);
}