refactor(GlobalStateStore): 🔄 remove unused ProgramDataWrapper component

This commit is contained in:
Hein
2026-02-02 13:18:40 +02:00
parent 29d56980b2
commit a81d59f3ba

View File

@@ -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 ?? (
<Center>
<Notification withCloseButton={false} color='red' title='Program URL not set'>
Please make sure your app was correctly installed. If this problem persists, reset your
page cache and go to the login page.
</Notification>
</Center>
)
)
}
return props.children
}
export { ProgramDataWrapper }