From af26bd8efc3fbc0c28b4a8ad41a6db0bf673166a Mon Sep 17 00:00:00 2001 From: shati-patel <42641846+shati-patel@users.noreply.github.com> Date: Thu, 24 Aug 2023 11:45:45 +0100 Subject: [PATCH 1/3] Add a "result format" dropdown component --- .../shared/variant-analysis-result-format.ts | 4 ++ .../RepositoriesResultFormat.tsx | 40 +++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 extensions/ql-vscode/src/variant-analysis/shared/variant-analysis-result-format.ts create mode 100644 extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx diff --git a/extensions/ql-vscode/src/variant-analysis/shared/variant-analysis-result-format.ts b/extensions/ql-vscode/src/variant-analysis/shared/variant-analysis-result-format.ts new file mode 100644 index 00000000000..03ace454885 --- /dev/null +++ b/extensions/ql-vscode/src/variant-analysis/shared/variant-analysis-result-format.ts @@ -0,0 +1,4 @@ +export enum ResultFormat { + Alerts = "Alerts", + RawResults = "Raw results", +} diff --git a/extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx new file mode 100644 index 00000000000..d3dedcc241d --- /dev/null +++ b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx @@ -0,0 +1,40 @@ +import * as React from "react"; +import { useCallback } from "react"; +import { styled } from "styled-components"; +import { VSCodeDropdown, VSCodeOption } from "@vscode/webview-ui-toolkit/react"; +import { Codicon } from "../common"; +import { ResultFormat } from "../../variant-analysis/shared/variant-analysis-result-format"; + +const Dropdown = styled(VSCodeDropdown)` + width: 100%; +`; + +type Props = { + value: ResultFormat; + onChange: (value: ResultFormat) => void; + + className?: string; +}; + +export const RepositoriesResultFormat = ({ + value, + onChange, + className, +}: Props) => { + const handleInput = useCallback( + (e: InputEvent) => { + const target = e.target as HTMLSelectElement; + + onChange(target.value as ResultFormat); + }, + [onChange], + ); + + return ( + + + Alerts + Raw results + + ); +}; From 7ac9ea0c451750e20ab8bc56005f2a301782934d Mon Sep 17 00:00:00 2001 From: shati-patel <42641846+shati-patel@users.noreply.github.com> Date: Thu, 24 Aug 2023 11:59:53 +0100 Subject: [PATCH 2/3] Add storybook component for "result format" dropdown --- .../RepositoriesResultFormat.stories.tsx | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 extensions/ql-vscode/src/stories/variant-analysis/RepositoriesResultFormat.stories.tsx diff --git a/extensions/ql-vscode/src/stories/variant-analysis/RepositoriesResultFormat.stories.tsx b/extensions/ql-vscode/src/stories/variant-analysis/RepositoriesResultFormat.stories.tsx new file mode 100644 index 00000000000..6c73042c7b0 --- /dev/null +++ b/extensions/ql-vscode/src/stories/variant-analysis/RepositoriesResultFormat.stories.tsx @@ -0,0 +1,27 @@ +import * as React from "react"; +import { useState } from "react"; + +import { Meta } from "@storybook/react"; + +import { RepositoriesResultFormat as RepositoriesResultFormatComponent } from "../../view/variant-analysis/RepositoriesResultFormat"; +import { ResultFormat } from "../../variant-analysis/shared/variant-analysis-result-format"; + +export default { + title: "Variant Analysis/Repositories Result Format", + component: RepositoriesResultFormatComponent, + argTypes: { + value: { + control: { + disable: true, + }, + }, + }, +} as Meta; + +export const RepositoriesResultFormat = () => { + const [value, setValue] = useState(ResultFormat.Alerts); + + return ( + + ); +}; From 0ce2eedd05d24d13143d9802e48d1da18fe77c33 Mon Sep 17 00:00:00 2001 From: shati-patel <42641846+shati-patel@users.noreply.github.com> Date: Thu, 24 Aug 2023 15:20:06 +0100 Subject: [PATCH 3/3] Use enum for display values too --- .../view/variant-analysis/RepositoriesResultFormat.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx index d3dedcc241d..2bffdfe0916 100644 --- a/extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx +++ b/extensions/ql-vscode/src/view/variant-analysis/RepositoriesResultFormat.tsx @@ -33,8 +33,12 @@ export const RepositoriesResultFormat = ({ return ( - Alerts - Raw results + + {ResultFormat.Alerts} + + + {ResultFormat.RawResults} + ); };