@terasky/backstage-plugin-devpod
Version:
Automatically launch Devpod workspaces for your Backstage services
25 lines (22 loc) • 1.08 kB
JavaScript
import { jsx } from 'react/jsx-runtime';
import { createContext, useContext, useMemo } from 'react';
import { useApi, configApiRef } from '@backstage/core-plugin-api';
import { DevpodIDE } from '../../types.esm.js';
const defaultConfig = {
defaultIde: DevpodIDE.VSCODE
};
const ConfigContext = createContext(defaultConfig);
const useDevpodConfig = () => {
const configApi = useApi(configApiRef);
const contextConfig = useContext(ConfigContext);
const defaultIDE = configApi.getOptionalString("devpod.defaultIDE") || DevpodIDE.VSCODE;
return { ...contextConfig, defaultIde: defaultIDE };
};
const DevpodProvider = ({ children, config = {} }) => {
const configApi = useApi(configApiRef);
const defaultIDE = configApi.getOptionalString("devpod.defaultIDE") || defaultConfig.defaultIde;
const value = useMemo(() => ({ ...defaultConfig, ...config, defaultIde: defaultIDE }), [config, defaultIDE]);
return /* @__PURE__ */ jsx(ConfigContext.Provider, { value, children });
};
export { DevpodProvider, useDevpodConfig };
//# sourceMappingURL=DevpodProvider.esm.js.map