Skip to content

Commit 04a858a

Browse files
Jami CogswellJami Cogswell
authored andcommitted
canary: use separate message for the user settings for the variant analysis view
1 parent 4e089e7 commit 04a858a

File tree

11 files changed

+45
-48
lines changed

11 files changed

+45
-48
lines changed

extensions/ql-vscode/src/common/interface-types.ts

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,13 +151,10 @@ interface SetStateMsg {
151151
export interface UserSettings {
152152
/** Whether to display links to the dataflow models that generated particular nodes in a flow path. */
153153
shouldShowProvenance: boolean;
154-
/** Whether to display the "View Autofixes" button. */
155-
shouldShowViewAutofixesBtn: boolean;
156154
}
157155

158156
export const DEFAULT_USER_SETTINGS: UserSettings = {
159157
shouldShowProvenance: false,
160-
shouldShowViewAutofixesBtn: false,
161158
};
162159

163160
/** Message indicating that the user's configuration settings have changed. */
@@ -166,6 +163,25 @@ interface SetUserSettingsMsg {
166163
userSettings: UserSettings;
167164
}
168165

166+
export interface VariantAnalysisUserSettings {
167+
/** Whether to display the "View Autofixes" button. */
168+
shouldShowViewAutofixesButton: boolean;
169+
}
170+
171+
export const DEFAULT_VARIANT_ANALYSIS_USER_SETTINGS: VariantAnalysisUserSettings =
172+
{
173+
shouldShowViewAutofixesButton: false,
174+
};
175+
176+
/**
177+
* Message indicating that the user's variant analysis configuration
178+
* settings have changed.
179+
*/
180+
interface SetVariantAnalysisUserSettingsMsg {
181+
t: "setVariantAnalysisUserSettings";
182+
variantAnalysisUserSettings: VariantAnalysisUserSettings;
183+
}
184+
169185
/**
170186
* Message indicating that the results view should display interpreted
171187
* results.
@@ -563,7 +579,7 @@ export type ToVariantAnalysisMessage =
563579
| SetFilterSortStateMessage
564580
| SetRepoResultsMessage
565581
| SetRepoStatesMessage
566-
| SetUserSettingsMsg;
582+
| SetVariantAnalysisUserSettingsMsg;
567583

568584
export type FromVariantAnalysisMessage =
569585
| CommonFromViewMessages

extensions/ql-vscode/src/compare/compare-view.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,6 @@ export class CompareView extends AbstractWebview<
119119
t: "setUserSettings",
120120
userSettings: {
121121
shouldShowProvenance: isCanary(),
122-
// "View Autofixes" button is not supported in compare view
123-
shouldShowViewAutofixesBtn: false,
124122
},
125123
});
126124

extensions/ql-vscode/src/local-queries/results-view.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -550,8 +550,6 @@ export class ResultsView extends AbstractWebview<
550550
userSettings: {
551551
// Only show provenance info in canary mode for now.
552552
shouldShowProvenance: isCanary(),
553-
// "View Autofixes" button is not supported in results view
554-
shouldShowViewAutofixesBtn: false,
555553
},
556554
});
557555

extensions/ql-vscode/src/stories/results/AlertTable.stories.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,5 @@ WithCodeFlows.args = {
433433
),
434434
userSettings: {
435435
shouldShowProvenance: true,
436-
shouldShowViewAutofixesBtn: false, // Not supported in AlertTable
437436
},
438437
};

extensions/ql-vscode/src/variant-analysis/variant-analysis-view.ts

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -49,29 +49,18 @@ export class VariantAnalysisView
4949
this.dataFlowPathsView = new DataFlowPathsView(app);
5050
}
5151

52-
private async updateUserSettings(): Promise<void> {
53-
if (!this.isShowingPanel) {
54-
return;
55-
}
56-
57-
await this.postMessage({
58-
t: "setUserSettings",
59-
userSettings: {
60-
// Provenance is not supported in variant analysis view
61-
shouldShowProvenance: false,
62-
// Only show "View Autofixes" button in canary mode.
63-
shouldShowViewAutofixesBtn: isCanary(),
64-
},
65-
});
66-
}
67-
6852
public async openView() {
6953
const panel = await this.getPanel();
7054
panel.reveal(undefined, true);
7155

7256
await this.waitForPanelLoaded();
7357

74-
await this.updateUserSettings();
58+
await this.postMessage({
59+
t: "setVariantAnalysisUserSettings",
60+
variantAnalysisUserSettings: {
61+
shouldShowViewAutofixesButton: isCanary(),
62+
},
63+
});
7564
}
7665

7766
public async updateView(variantAnalysis: VariantAnalysis): Promise<void> {

extensions/ql-vscode/src/view/results/__tests__/AlertTablePathRow.spec.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ describe(AlertTablePathRow.name, () => {
2424
sourceLocationPrefix="src"
2525
userSettings={{
2626
shouldShowProvenance: false,
27-
shouldShowViewAutofixesBtn: false,
2827
}}
2928
updateSelectionCallback={jest.fn()}
3029
toggleExpanded={jest.fn()}

extensions/ql-vscode/src/view/results/__tests__/AlertTableResultRow.spec.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ describe(AlertTableResultRow.name, () => {
1919
sourceLocationPrefix="src"
2020
userSettings={{
2121
shouldShowProvenance: false,
22-
shouldShowViewAutofixesBtn: false,
2322
}}
2423
updateSelectionCallback={jest.fn()}
2524
toggleExpanded={jest.fn()}

extensions/ql-vscode/src/view/variant-analysis/VariantAnalysis.tsx

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ import { VariantAnalysisOutcomePanels } from "./VariantAnalysisOutcomePanels";
1111
import { VariantAnalysisLoading } from "./VariantAnalysisLoading";
1212
import type {
1313
ToVariantAnalysisMessage,
14-
UserSettings,
14+
VariantAnalysisUserSettings,
1515
} from "../../common/interface-types";
1616
import { vscode } from "../vscode-api";
1717
import { defaultFilterSortState } from "../../variant-analysis/shared/variant-analysis-filter-sort";
1818
import { sendTelemetry, useTelemetryOnChange } from "../common/telemetry";
1919
import { useMessageFromExtension } from "../common/useMessageFromExtension";
20-
import { DEFAULT_USER_SETTINGS } from "../../common/interface-types";
20+
import { DEFAULT_VARIANT_ANALYSIS_USER_SETTINGS } from "../../common/interface-types";
2121

2222
export type VariantAnalysisProps = {
2323
variantAnalysis?: VariantAnalysisDomainModel;
@@ -81,9 +81,10 @@ export function VariantAnalysis({
8181
useTelemetryOnChange(filterSortState, "variant-analysis-filter-sort-state", {
8282
debounceTimeoutMillis: 1000,
8383
});
84-
const [userSettings, setUserSettings] = useState<UserSettings>(
85-
DEFAULT_USER_SETTINGS,
86-
);
84+
const [variantAnalysisUserSettings, setVariantAnalysisUserSettings] =
85+
useState<VariantAnalysisUserSettings>(
86+
DEFAULT_VARIANT_ANALYSIS_USER_SETTINGS,
87+
);
8788

8889
useMessageFromExtension<ToVariantAnalysisMessage>((msg) => {
8990
if (msg.t === "setVariantAnalysis") {
@@ -109,8 +110,8 @@ export function VariantAnalysis({
109110
...msg.repoStates,
110111
];
111112
});
112-
} else if (msg.t === "setUserSettings") {
113-
setUserSettings(msg.userSettings);
113+
} else if (msg.t === "setVariantAnalysisUserSettings") {
114+
setVariantAnalysisUserSettings(msg.variantAnalysisUserSettings);
114115
}
115116
}, []);
116117

@@ -172,7 +173,7 @@ export function VariantAnalysis({
172173
onCopyRepositoryListClick={copyRepositoryList}
173174
onExportResultsClick={exportResults}
174175
onViewLogsClick={onViewLogsClick}
175-
userSettings={userSettings}
176+
variantAnalysisUserSettings={variantAnalysisUserSettings}
176177
/>
177178
<VariantAnalysisOutcomePanels
178179
variantAnalysis={variantAnalysis}

extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisActions.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { styled } from "styled-components";
22
import { VariantAnalysisStatus } from "../../variant-analysis/shared/variant-analysis";
33
import { VscodeButton } from "@vscode-elements/react-elements";
4-
import type { UserSettings } from "../../common/interface-types";
54

65
export type VariantAnalysisActionsProps = {
76
variantAnalysisStatus: VariantAnalysisStatus;
@@ -20,7 +19,7 @@ export type VariantAnalysisActionsProps = {
2019
hasSelectedRepositories?: boolean;
2120
hasFilteredRepositories?: boolean;
2221

23-
userSettings: UserSettings;
22+
showViewAutofixesButton: boolean;
2423
};
2524

2625
const Container = styled.div`
@@ -68,13 +67,13 @@ export const VariantAnalysisActions = ({
6867
exportResultsDisabled,
6968
hasSelectedRepositories,
7069
hasFilteredRepositories,
71-
userSettings,
70+
showViewAutofixesButton,
7271
}: VariantAnalysisActionsProps) => {
7372
return (
7473
<Container>
7574
{showResultActions && (
7675
<>
77-
{userSettings.shouldShowViewAutofixesBtn && (
76+
{showViewAutofixesButton && (
7877
<Button
7978
secondary
8079
onClick={onViewAutofixesClick}

extensions/ql-vscode/src/view/variant-analysis/VariantAnalysisHeader.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import {
2222
filterAndSortRepositoriesWithResults,
2323
} from "../../variant-analysis/shared/variant-analysis-filter-sort";
2424
import { ViewTitle } from "../common";
25-
import type { UserSettings } from "../../common/interface-types";
25+
import type { VariantAnalysisUserSettings } from "../../common/interface-types";
2626

2727
type VariantAnalysisHeaderProps = {
2828
variantAnalysis: VariantAnalysis;
@@ -41,7 +41,7 @@ type VariantAnalysisHeaderProps = {
4141

4242
onViewLogsClick?: () => void;
4343

44-
userSettings: UserSettings;
44+
variantAnalysisUserSettings: VariantAnalysisUserSettings;
4545
};
4646

4747
const Container = styled.div`
@@ -90,7 +90,7 @@ export const VariantAnalysisHeader = ({
9090
onCopyRepositoryListClick,
9191
onExportResultsClick,
9292
onViewLogsClick,
93-
userSettings,
93+
variantAnalysisUserSettings,
9494
}: VariantAnalysisHeaderProps) => {
9595
const totalScannedRepositoryCount = useMemo(() => {
9696
return variantAnalysis.scannedRepos?.length ?? 0;
@@ -170,7 +170,9 @@ export const VariantAnalysisHeader = ({
170170
hasSelectedRepositories={
171171
selectedRepositoryIds && selectedRepositoryIds.length > 0
172172
}
173-
userSettings={userSettings}
173+
showViewAutofixesButton={
174+
variantAnalysisUserSettings.shouldShowViewAutofixesButton
175+
}
174176
/>
175177
</Row>
176178
<VariantAnalysisStats

0 commit comments

Comments
 (0)