SILENT KILLERPanel

Current Path: > home > transcarter > public_html > wp-content > plugins > leadin > scripts > shared > Meeting >


Operation   : Linux host59.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64
Software     : Apache
Server IP    : 198.54.126.42 | Your IP: 216.73.216.135
Domains      : 1034 Domain(s)
Permission   : [ 0755 ]

Files and Folders in: /home/transcarter/public_html/wp-content/plugins/leadin/scripts/shared/Meeting/

NameTypeSizeLast ModifiedActions
hooks Directory - -
MeetingController.tsx File 2582 bytes July 17 2025 21:06:25.
MeetingEdit.tsx File 2015 bytes July 17 2025 21:06:25.
MeetingSelector.tsx File 840 bytes July 17 2025 21:06:25.
MeetingWarning.tsx File 1273 bytes July 17 2025 21:06:25.
MeetingsContext.tsx File 2329 bytes July 17 2025 21:06:25.
PreviewMeeting.tsx File 887 bytes July 17 2025 21:06:25.
constants.ts File 152 bytes July 17 2025 21:06:25.

Reading File: /home/transcarter/public_html/wp-content/plugins/leadin/scripts/shared/Meeting//MeetingsContext.tsx

import React, { useEffect, useState, useCallback } from 'react';
import useCurrentUserFetch from './hooks/useCurrentUserFetch';
import useMeetingsFetch from './hooks/useMeetingsFetch';
import LoadState from '../enums/loadState';

interface IMeetingsContextWrapperState {
  loading: boolean;
  error: any;
  meetings: any[];
  currentUser: any;
  meetingUsers: any;
  selectedMeeting: string;
}

interface IMeetingsContext extends IMeetingsContextWrapperState {
  reload: Function;
}

interface IMeetingsContextWrapperProps {
  url: string;
}

export const MeetingsContext = React.createContext<IMeetingsContext>({
  loading: true,
  error: null,
  meetings: [],
  currentUser: null,
  meetingUsers: {},
  selectedMeeting: '',
  reload: () => {},
});

export default function MeetingsContextWrapper({
  url,
  children,
}: React.PropsWithChildren<IMeetingsContextWrapperProps>) {
  const [state, setState] = useState<IMeetingsContextWrapperState>({
    loading: true,
    error: null,
    meetings: [],
    currentUser: null,
    meetingUsers: {},
    selectedMeeting: url,
  });

  const {
    meetings,
    meetingUsers,
    loadMeetingsState,
    error: errorMeeting,
    reload: reloadMeetings,
  } = useMeetingsFetch();

  const {
    user: currentUser,
    loadUserState,
    error: errorUser,
    reload: reloadUser,
  } = useCurrentUserFetch();

  const reload = useCallback(() => {
    reloadUser();
    reloadMeetings();
  }, [reloadUser, reloadMeetings]);

  useEffect(() => {
    if (
      !state.loading &&
      !state.error &&
      state.currentUser &&
      state.meetings.length === 0
    ) {
      reloadMeetings();
    }
  }, [state, reloadMeetings]);

  useEffect(() => {
    setState(previous => ({
      ...previous,
      loading:
        loadUserState === LoadState.Loading ||
        loadMeetingsState === LoadState.Loading,
      currentUser,
      meetings,
      meetingUsers: meetingUsers.reduce((p, c) => ({ ...p, [c.id]: c }), {}),
      error: errorMeeting || errorUser,
      selectedMeeting: url,
    }));
  }, [
    loadUserState,
    loadMeetingsState,
    currentUser,
    meetings,
    meetingUsers,
    errorMeeting,
    errorUser,
    url,
    setState,
  ]);

  return (
    <MeetingsContext.Provider value={{ ...state, reload }}>
      {children}
    </MeetingsContext.Provider>
  );
}

SILENT KILLER Tool