Skip to content

Commit e384f24

Browse files
Convert data table to new column layout
1 parent 2c5b1da commit e384f24

2 files changed

Lines changed: 26 additions & 62 deletions

File tree

extensions/ql-vscode/src/view/data-extensions-editor/MethodRow.tsx

Lines changed: 21 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import {
2+
VSCodeCheckbox,
23
VSCodeDataGridCell,
34
VSCodeDataGridRow,
45
VSCodeDropdown,
6+
VSCodeLink,
57
VSCodeOption,
68
} from "@vscode/webview-ui-toolkit/react";
79
import * as React from "react";
@@ -38,29 +40,18 @@ const SupportSpan = styled.span<SupportedUnsupportedSpanProps>`
3840
}};
3941
`;
4042

41-
type SupportedUnsupportedLinkProps = {
42-
supported: boolean;
43-
modeled: ModeledMethod | undefined;
44-
};
45-
46-
const SupportLink = styled.button<SupportedUnsupportedLinkProps>`
47-
color: ${(props) => {
48-
if (!props.supported && props.modeled && props.modeled?.type !== "none") {
49-
return "orange";
50-
} else {
51-
return props.supported ? "green" : "red";
52-
}
53-
}};
54-
background-color: transparent;
55-
border: none;
56-
cursor: pointer;
57-
padding: 0;
43+
const ApiOrMethodCell = styled(VSCodeDataGridCell)`
44+
display: flex;
45+
flex-direction: row;
46+
align-items: center;
47+
gap: 0.5em;
5848
`;
5949

6050
const UsagesButton = styled.button`
6151
color: var(--vscode-editor-foreground);
62-
background-color: transparent;
52+
background-color: var(--vscode-input-background);
6353
border: none;
54+
border-radius: 40%;
6455
cursor: pointer;
6556
`;
6657

@@ -171,43 +162,24 @@ export const MethodRow = ({
171162

172163
return (
173164
<VSCodeDataGridRow>
174-
<VSCodeDataGridCell gridColumn={1}>
165+
<ApiOrMethodCell gridColumn={1}>
166+
<VSCodeCheckbox />
175167
<SupportSpan
176168
supported={externalApiUsage.supported}
177169
modeled={modeledMethod}
178170
>
179-
{externalApiUsage.packageName}.{externalApiUsage.typeName}
171+
{externalApiUsage.packageName}.{externalApiUsage.typeName}.
172+
{externalApiUsage.methodName}
173+
{externalApiUsage.methodParameters}
180174
</SupportSpan>
181-
</VSCodeDataGridCell>
182-
<VSCodeDataGridCell gridColumn={2}>
183175
{mode === Mode.Application && (
184-
<SupportSpan
185-
supported={externalApiUsage.supported}
186-
modeled={modeledMethod}
187-
>
188-
{externalApiUsage.methodName}
189-
{externalApiUsage.methodParameters}
190-
</SupportSpan>
191-
)}
192-
{mode === Mode.Framework && (
193-
<SupportLink
194-
supported={externalApiUsage.supported}
195-
modeled={modeledMethod}
196-
onClick={jumpToUsage}
197-
>
198-
{externalApiUsage.methodName}
199-
{externalApiUsage.methodParameters}
200-
</SupportLink>
201-
)}
202-
</VSCodeDataGridCell>
203-
{mode === Mode.Application && (
204-
<VSCodeDataGridCell gridColumn={3}>
205176
<UsagesButton onClick={jumpToUsage}>
206177
{externalApiUsage.usages.length}
207178
</UsagesButton>
208-
</VSCodeDataGridCell>
209-
)}
210-
<VSCodeDataGridCell gridColumn={4}>
179+
)}
180+
<VSCodeLink onClick={jumpToUsage}>View</VSCodeLink>
181+
</ApiOrMethodCell>
182+
<VSCodeDataGridCell gridColumn={2}>
211183
{(!externalApiUsage.supported ||
212184
(modeledMethod && modeledMethod?.type !== "none")) && (
213185
<Dropdown
@@ -222,7 +194,7 @@ export const MethodRow = ({
222194
</Dropdown>
223195
)}
224196
</VSCodeDataGridCell>
225-
<VSCodeDataGridCell gridColumn={5}>
197+
<VSCodeDataGridCell gridColumn={3}>
226198
{modeledMethod?.type &&
227199
["sink", "summary"].includes(modeledMethod?.type) && (
228200
<Dropdown value={modeledMethod?.input} onInput={handleInputInput}>
@@ -235,7 +207,7 @@ export const MethodRow = ({
235207
</Dropdown>
236208
)}
237209
</VSCodeDataGridCell>
238-
<VSCodeDataGridCell gridColumn={6}>
210+
<VSCodeDataGridCell gridColumn={4}>
239211
{modeledMethod?.type &&
240212
["source", "summary"].includes(modeledMethod?.type) && (
241213
<Dropdown value={modeledMethod?.output} onInput={handleOutputInput}>
@@ -249,7 +221,7 @@ export const MethodRow = ({
249221
</Dropdown>
250222
)}
251223
</VSCodeDataGridCell>
252-
<VSCodeDataGridCell gridColumn={7}>
224+
<VSCodeDataGridCell gridColumn={5}>
253225
{predicate?.supportedKinds && (
254226
<KindInput
255227
kinds={predicate.supportedKinds}

extensions/ql-vscode/src/view/data-extensions-editor/ModeledMethodDataGrid.tsx

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,29 +33,21 @@ export const ModeledMethodDataGrid = ({
3333
);
3434

3535
return (
36-
<VSCodeDataGrid>
36+
<VSCodeDataGrid gridTemplateColumns="0.4fr 0.15fr 0.15fr 0.15fr 0.15fr">
3737
<VSCodeDataGridRow rowType="header">
3838
<VSCodeDataGridCell cellType="columnheader" gridColumn={1}>
39-
Type
39+
API or method
4040
</VSCodeDataGridCell>
4141
<VSCodeDataGridCell cellType="columnheader" gridColumn={2}>
42-
Method
43-
</VSCodeDataGridCell>
44-
{mode === Mode.Application && (
45-
<VSCodeDataGridCell cellType="columnheader" gridColumn={3}>
46-
Usages
47-
</VSCodeDataGridCell>
48-
)}
49-
<VSCodeDataGridCell cellType="columnheader" gridColumn={4}>
5042
Model type
5143
</VSCodeDataGridCell>
52-
<VSCodeDataGridCell cellType="columnheader" gridColumn={5}>
44+
<VSCodeDataGridCell cellType="columnheader" gridColumn={3}>
5345
Input
5446
</VSCodeDataGridCell>
55-
<VSCodeDataGridCell cellType="columnheader" gridColumn={6}>
47+
<VSCodeDataGridCell cellType="columnheader" gridColumn={4}>
5648
Output
5749
</VSCodeDataGridCell>
58-
<VSCodeDataGridCell cellType="columnheader" gridColumn={7}>
50+
<VSCodeDataGridCell cellType="columnheader" gridColumn={5}>
5951
Kind
6052
</VSCodeDataGridCell>
6153
</VSCodeDataGridRow>

0 commit comments

Comments
 (0)