import { useCallback, useState } from 'react'; import { createContext, useContext } from "react"; import * as React from "react"; import { AssetsApi } from '../../../types'; type UseAssetManagerResult = ReturnType; const AssetContext = createContext({ api: {} as AssetsApi, setAssetsApi: () => { } }); function useAssetsManager(): { api: AssetsApi; // eslint-disable-next-line no-unused-vars setAssetsApi: (api: AssetsApi) => void; } { const [api, setApi] = useState({} as AssetsApi); const setAssetsApi = useCallback((api: AssetsApi) => { setApi(api); }, []); return { api, setAssetsApi }; } export const AssetsProvider: React.FunctionComponent<{ children?: React.ReactNode }> = ({ children }) => ( {children} ); export const useAssetApi = (): AssetsApi => { const { api } = useContext(AssetContext); return api; }; export const useSetAssetApi = (): UseAssetManagerResult["setAssetsApi"] => { const { setAssetsApi } = useContext(AssetContext); return setAssetsApi; }