grafana/public/app/features/variables/inspect/NetworkGraphModal.tsx
Diana Payton e34b2c13d3
Variables UI text edits (#32523)
* Update formatRegistry.ts

* text edits

* Update adapter.ts

* Update adapter.ts

* text edits

* Update SelectionOptionsEditor.tsx

* Update CustomVariableEditor.tsx

* Update DataSourceVariableEditor.tsx

* Update IntervalVariableEditor.tsx

* Update VariableEditorList.tsx

* Update adapter.ts

* Update actions.ts

* Update NetworkGraphModal.tsx

* Update actions.ts

* Update operators.ts

* text edits
2021-04-01 18:17:39 +02:00

46 lines
1.2 KiB
TypeScript

import React, { useCallback, useState } from 'react';
import { Modal } from '@grafana/ui';
import { GraphEdge, GraphNode } from './utils';
import { NetworkGraph, Props as NetWorkGraphProps } from './NetworkGraph';
interface NetworkGraphModalApi {
showModal: () => void;
}
interface OwnProps extends Pick<NetWorkGraphProps, 'direction'> {
show: boolean;
title: string;
nodes: GraphNode[];
edges: GraphEdge[];
children: (api: NetworkGraphModalApi) => JSX.Element;
}
interface ConnectedProps {}
interface DispatchProps {}
type Props = OwnProps & ConnectedProps & DispatchProps;
export function NetworkGraphModal({ edges, nodes, show: propsShow, title, children }: Props): JSX.Element {
const [show, setShow] = useState(propsShow);
const showModal = useCallback(() => setShow(true), [setShow]);
const onClose = useCallback(() => setShow(false), [setShow]);
return (
<>
<Modal
isOpen={show}
title={title}
icon="info-circle"
iconTooltip="The graph can be moved, zoomed in, and zoomed out."
onClickBackdrop={onClose}
onDismiss={onClose}
>
<NetworkGraph nodes={nodes} edges={edges} />
</Modal>
{children({ showModal })}
</>
);
}