Files
grafana/e2e/test-plugins/grafana-extensionstest-app/components/QueryModal/QueryModal.tsx
T
Erik SundellandJack Westbrook d8ec95e9b1 E2E: Add support for building test plugins (#91873)
* build test apps with webpack

* add extensions test app

* update e2e tests

* remove non-build test apps using amd

* use @grafana/plugin-configs rather than create-plugin config

* Update e2e/plugin-e2e/plugin-e2e-api-tests/as-admin-user/extensions/usePluginComponents.spec.ts

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>

* Update package.json

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>

* use run dir variable instead of hardcoded path

* add dummy licence file

* add separate step for building test plugins

* support nested plugins

* remove react-router-dom from the externals array

* remove add_mode dev

* lint starlark

* pass license path as env variable

* fix the path

* chore(e2e-plugins): clean up dependencies to match core versions

* refactor(e2e-plugins): prefer extending webpack plugins-config

* docs(e2e-plugins): add basic info to extensions test plugin readme

* update readme

* change dir name from custom plugins to test plugins

* change root readme

* update lockfile

---------

Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
2024-08-23 09:00:03 +02:00

46 lines
1.3 KiB
TypeScript

import { DataQuery } from '@grafana/data';
import { Button, FilterPill, Modal, Stack } from '@grafana/ui';
import { testIds } from '../testIds';
import { ReactElement, useState } from 'react';
import { selectQuery } from '../../utils/utils';
type Props = {
targets: DataQuery[] | undefined;
onDismiss?: () => void;
};
export function QueryModal(props: Props): ReactElement {
const { targets = [], onDismiss } = props;
const [selected, setSelected] = useState(targets[0]);
return (
<div data-testid={testIds.modal.container}>
<p>Please select the query you would like to use to create &quot;something&quot; in the plugin.</p>
<Stack>
{targets.map((query) => (
<FilterPill
key={query.refId}
label={query.refId}
selected={query.refId === selected?.refId}
onClick={() => setSelected(query)}
/>
))}
</Stack>
<Modal.ButtonRow>
<Button variant="secondary" fill="outline" onClick={onDismiss}>
Cancel
</Button>
<Button
disabled={!Boolean(selected)}
onClick={() => {
onDismiss?.();
selectQuery(selected);
}}
>
OK
</Button>
</Modal.ButtonRow>
</div>
);
}