Add a discovery API

Signed-off-by: Karan Shah <karan.shah@simplybusiness.co.uk>
This commit is contained in:
Karan Shah
2022-02-11 14:44:05 +00:00
parent d9a4750d26
commit cb672b0502
11 changed files with 53 additions and 32 deletions
@@ -71,12 +71,6 @@ export const ApiBar = () => {
value.setProjectId?.(parseInt(e.target.value, 10) || undefined)
}
/>
<TextField
label="API Key"
variant="outlined"
defaultValue={value.apiKey}
onChange={e => value.setApiKey?.(e.target.value)}
/>
</MuiThemeProvider>
</div>
)}
@@ -23,23 +23,18 @@ import React, {
interface ContextInterface {
projectId?: number;
setProjectId?: Dispatch<SetStateAction<number | undefined>>;
apiKey?: string;
setApiKey?: Dispatch<SetStateAction<string>>;
}
export const Context = React.createContext<ContextInterface>({});
export const ContextProvider = ({ children }: PropsWithChildren<{}>) => {
const [projectId, setProjectId] = useState<number>();
const [apiKey, setApiKey] = useState<string>('');
return (
<Context.Provider
value={{
projectId,
setProjectId,
apiKey,
setApiKey,
}}
>
{children}
+6 -2
View File
@@ -19,13 +19,14 @@ import { TestApiProvider } from '@backstage/test-utils';
import { airbrakePlugin, EntityAirbrakeContent } from '../src';
import {
airbrakeApiRef,
localDiscoveryApi,
MockAirbrakeApi,
ProductionAirbrakeApi,
} from '../src/api';
import { ApiBar } from './components/ApiBar';
import { Content, Header, Page } from '@backstage/core-components';
import { EntityProvider } from '@backstage/plugin-catalog-react';
import { createEntity } from '../src/api/mock/MockEntity';
import { createEntity } from '../src/api';
import CloudOffIcon from '@material-ui/icons/CloudOff';
import CloudIcon from '@material-ui/icons/Cloud';
import { Context, ContextProvider } from './components/ContextProvider';
@@ -61,7 +62,10 @@ createDevApp()
{value => (
<TestApiProvider
apis={[
[airbrakeApiRef, new ProductionAirbrakeApi(value.apiKey)],
[
airbrakeApiRef,
new ProductionAirbrakeApi(localDiscoveryApi),
],
]}
>
<EntityProvider entity={createEntity(value.projectId)}>