$89 GRAYBYTE WORDPRESS FILE MANAGER $67

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.43.35 | ADMIN IP 216.73.216.180
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/home/bravrvjk/kigalix.com/wp-content/plugins/leadin/scripts/shared/Meeting/

HOME
Current File : /home/bravrvjk/kigalix.com/wp-content/plugins/leadin/scripts/shared/Meeting//MeetingController.tsx
import React, { Fragment, useEffect } from 'react';
import LoadingBlock from '../Common/LoadingBlock';
import MeetingSelector from './MeetingSelector';
import MeetingWarning from './MeetingWarning';
import useMeetings, {
  useSelectedMeeting,
  useSelectedMeetingCalendar,
} from './hooks/useMeetings';
import HubspotWrapper from '../Common/HubspotWrapper';
import ErrorHandler from '../Common/ErrorHandler';
import { pluginPath } from '../../constants/leadinConfig';
import { __ } from '@wordpress/i18n';
import Raven from 'raven-js';

interface IMeetingControllerProps {
  url: string;
  handleChange: Function;
}

export default function MeetingController({
  handleChange,
  url,
}: IMeetingControllerProps) {
  const {
    mappedMeetings: meetings,
    loading,
    error,
    reload,
    connectCalendar,
  } = useMeetings();
  const selectedMeetingOption = useSelectedMeeting(url);
  const selectedMeetingCalendar = useSelectedMeetingCalendar(url);

  useEffect(() => {
    if (!url && meetings.length > 0) {
      handleChange(meetings[0].value);
    }
  }, [meetings, url, handleChange]);

  const handleLocalChange = (option: { value: string }) => {
    handleChange(option.value);
  };

  const handleConnectCalendar = () => {
    return connectCalendar()
      .then(() => {
        reload();
      })
      .catch(error => {
        Raven.captureMessage('Unable to connect calendar', {
          extra: { error },
        });
      });
  };

  return (
    <Fragment>
      {loading ? (
        <LoadingBlock />
      ) : error ? (
        <ErrorHandler
          status={(error && error.status) || error}
          resetErrorState={() => reload()}
          errorInfo={{
            header: __(
              'There was a problem retrieving your meetings',
              'leadin'
            ),
            message: __(
              'Please refresh your meetings or try again in a few minutes',
              'leadin'
            ),
            action: __('Refresh meetings', 'leadin'),
          }}
        />
      ) : (
        <HubspotWrapper padding="90px 32px 24px" pluginPath={pluginPath}>
          {selectedMeetingCalendar && (
            <MeetingWarning
              status={selectedMeetingCalendar}
              onConnectCalendar={handleConnectCalendar}
            />
          )}
          {meetings.length > 1 && (
            <MeetingSelector
              onChange={handleLocalChange}
              options={meetings}
              value={selectedMeetingOption}
            />
          )}
        </HubspotWrapper>
      )}
    </Fragment>
  );
}


Current_dir [ WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
8 May 2025 7.51 AM
bravrvjk / bravrvjk
0755
hooks
--
8 May 2025 7.51 AM
bravrvjk / bravrvjk
0755
MeetingController.tsx
2.521 KB
28 Apr 2025 7.44 AM
bravrvjk / bravrvjk
0644
MeetingEdit.tsx
1.968 KB
28 Apr 2025 7.44 AM
bravrvjk / bravrvjk
0644
MeetingSelector.tsx
0.82 KB
28 Apr 2025 7.44 AM
bravrvjk / bravrvjk
0644
MeetingWarning.tsx
1.243 KB
28 Apr 2025 7.44 AM
bravrvjk / bravrvjk
0644
MeetingsContext.tsx
2.274 KB
28 Apr 2025 7.44 AM
bravrvjk / bravrvjk
0644
PreviewMeeting.tsx
0.866 KB
28 Apr 2025 7.44 AM
bravrvjk / bravrvjk
0644
constants.ts
0.148 KB
28 Apr 2025 7.44 AM
bravrvjk / bravrvjk
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF