Plan/Plan/react/dashboard/src/hooks/serverExtensionDataContext.js

27 lines
1.0 KiB
JavaScript

import {createContext, useContext, useEffect, useState} from "react";
import {useDataRequest} from "./dataFetchHook";
import {fetchExtensionData} from "../service/serverService";
const ServerExtensionContext = createContext({});
export const ServerExtensionContextProvider = ({identifier, children}) => {
const [extensionData, setExtensionData] = useState(undefined);
const [extensionDataLoadingError, setExtensionDataLoadingError] = useState(undefined);
const {data, loadingError} = useDataRequest(fetchExtensionData, [identifier]);
useEffect(() => {
setExtensionData(data);
setExtensionDataLoadingError(loadingError);
}, [data, loadingError, setExtensionData, setExtensionDataLoadingError])
const sharedState = {extensionData, extensionDataLoadingError}
return (<ServerExtensionContext.Provider value={sharedState}>
{children}
</ServerExtensionContext.Provider>
)
}
export const useServerExtensionContext = () => {
return useContext(ServerExtensionContext);
}