diff --git a/src/GlobalStateStore/GlobalStateStoreWrapper.tsx b/src/GlobalStateStore/GlobalStateStoreWrapper.tsx index 9660ee4..e69de29 100644 --- a/src/GlobalStateStore/GlobalStateStoreWrapper.tsx +++ b/src/GlobalStateStore/GlobalStateStoreWrapper.tsx @@ -1,117 +0,0 @@ -import React, { useEffect } from 'react' -import { setDefaultAPIOption } from '@bitechdev/utils' -import axios from 'axios' -import { Center, Notification } from '@mantine/core' -import { programDataStore, useProgramDataStore } from './store/ProgramDataStore.store' -import { ProgramDataStoreState, ProgramWrapperProps, SessionDetail } from './types' - -/** - * Fetches program data and updates session details. - * - * @param {ProgramWrapperProps} props - Props for the ProgramDataWrapper component - * @return {ReactNode} The children of the component - */ -const ProgramDataWrapper = (props: ProgramWrapperProps) => { - const { fetchData, updateSession, connected, session, setState } = useProgramDataStore( - (state: ProgramDataStoreState) => ({ - fetchData: state.fetchData, - updateSession: state.updateSession, - connected: state.connected, - session: state.session, - setState: state.setState, - }) - ) - - useEffect(() => { - if (props.version) { - const program = programDataStore.getState()?.program - if (program) { - setState('program', { ...program, version: props.version }) - } - } - }, [props.version]) - - useEffect(() => { - if (session?.apiURL && session?.apiURL !== '') { - fetchData(props.apiURL) - .catch((e) => { - console.error('Error fetching data:', e) - }) - .finally(() => { - //Set the default API options - setDefaultAPIOption({ - getAPIProvider: () => { - const s = programDataStore.getState() - if (s.session?.authtoken && s.session?.authtoken !== '') { - return { provider: undefined, providerKey: undefined } - } - return { - provider: s.session?.provider, - providerKey: s.session?.providerKey, - } - }, - getAuthToken: () => { - const s = programDataStore.getState() - return s.session?.authtoken - }, - }) - }) - } - }, [session?.apiURL, session?.authtoken]) - - useEffect(() => { - try { - updateSession?.((state: SessionDetail) => ({ - apiURL: state.apiURL !== props.apiURL || !state.apiURL ? props.apiURL : state.apiURL, - debugMode: props.debugMode ?? state.debugMode, - testMode: props.testMode ?? state.testMode, - authtoken: - props.testMode && (!state.authtoken || state.authtoken === '') ? 'test' : state.authtoken, - provider: - props.testMode && (!state.provider || state.provider === '') ? 'bitech' : state.provider, - providerKey: - props.testMode && (!state.providerKey || state.providerKey === '') - ? 'test' - : state.providerKey, - })) - - axios.defaults.headers.common = { - 'X-Program-API': 'bitechcore', - Authorization: `Bearer ${session?.authtoken}`, - } - - if (session?.provider !== '') { - axios.defaults.headers.common['x-api-provider'] = session?.provider - } - if (session?.providerKey !== '') { - axios.defaults.headers.common['x-api-key'] = session?.providerKey - } - } catch (e) { - console.error('Error in ProgramDataWrapper useEffect:', e) - } - }, [ - session.authtoken, - session.provider, - session.providerKey, - props.apiURL, - props.debugMode, - props.testMode, - ]) - - if (props.renderFallback && !connected) { - return ( - props.fallback ?? ( -