import { Configuration, DebugApi, UnittestApi, ChatApi, } from "../../../src/client"; import { useSelector } from "react-redux"; import { useEffect, useState } from "react"; import { RootStore } from "../redux/store"; export function useApi() { const apiUrl = useSelector((state: RootStore) => state.config.apiUrl); const vscMachineId = useSelector( (state: RootStore) => state.config.vscMachineId ); const [debugApi, setDebugApi] = useState(); const [unittestApi, setUnittestApi] = useState(); const [chatApi, setChatApi] = useState(); useEffect(() => { if (apiUrl && vscMachineId) { let config = new Configuration({ basePath: apiUrl, fetchApi: fetch, middleware: [ { pre: async (context) => { context.init.headers = { ...context.init.headers, "x-vsc-machine-id": vscMachineId, }; }, }, ], }); setDebugApi(new DebugApi(config)); setUnittestApi(new UnittestApi(config)); setChatApi(new ChatApi(config)); } }, [apiUrl, vscMachineId]); return { debugApi, unittestApi, chatApi }; }