Skip to content

Commit efc2606

Browse files
committed
Move problems-view selected state into ResultsApp
1 parent ff6f56e commit efc2606

File tree

2 files changed

+18
-40
lines changed

2 files changed

+18
-40
lines changed

extensions/ql-vscode/src/view/results/ResultTables.tsx

Lines changed: 13 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import type {
77
InterpretedResultsSortState,
88
ResultSet,
99
ParsedResultSets,
10-
IntoResultsViewMsg,
1110
UserSettings,
1211
} from "../../common/interface-types";
1312
import {
@@ -43,6 +42,8 @@ interface ResultTablesProps {
4342
isLoadingNewResults: boolean;
4443
queryName: string;
4544
queryPath: string;
45+
problemsViewSelected: boolean;
46+
onProblemsViewSelectedChange: (selected: boolean) => void;
4647
}
4748

4849
const UPDATING_RESULTS_TEXT_CLASS_NAME =
@@ -101,48 +102,14 @@ export function ResultTables(props: ResultTablesProps) {
101102
origResultsPaths,
102103
isLoadingNewResults,
103104
sortStates,
105+
problemsViewSelected,
106+
onProblemsViewSelectedChange,
104107
} = props;
105108

106109
const [selectedTable, setSelectedTable] = useState(
107110
parsedResultSets.selectedTable ||
108111
getDefaultResultSet(getResultSets(rawResultSets, interpretation)),
109112
);
110-
const [problemsViewSelected, setProblemsViewSelected] = useState(false);
111-
112-
const handleMessage = useCallback((msg: IntoResultsViewMsg): void => {
113-
switch (msg.t) {
114-
case "untoggleShowProblems":
115-
setProblemsViewSelected(false);
116-
break;
117-
118-
default:
119-
// noop
120-
}
121-
}, []);
122-
123-
const vscodeMessageHandler = useCallback(
124-
(evt: MessageEvent): void => {
125-
// sanitize origin
126-
const origin = evt.origin.replace(/\n|\r/g, "");
127-
if (evt.origin === window.origin) {
128-
handleMessage(evt.data as IntoResultsViewMsg);
129-
} else {
130-
console.error(`Invalid event origin ${origin}`);
131-
}
132-
},
133-
[handleMessage],
134-
);
135-
136-
// TODO: Duplicated from ResultsApp.tsx consider a way to
137-
// avoid this duplication
138-
useEffect(() => {
139-
window.addEventListener("message", vscodeMessageHandler);
140-
141-
return () => {
142-
window.removeEventListener("message", vscodeMessageHandler);
143-
};
144-
}, [vscodeMessageHandler]);
145-
146113
useEffect(() => {
147114
const resultSetExists =
148115
parsedResultSets.resultSetNames.some((v) => selectedTable === v) ||
@@ -178,7 +145,7 @@ export function ResultTables(props: ResultTablesProps) {
178145
// no change
179146
return;
180147
}
181-
setProblemsViewSelected(e.target.checked);
148+
onProblemsViewSelectedChange(e.target.checked);
182149
if (e.target.checked) {
183150
sendTelemetry("local-results-show-results-in-problems-view");
184151
}
@@ -192,7 +159,14 @@ export function ResultTables(props: ResultTablesProps) {
192159
});
193160
}
194161
},
195-
[database, metadata, origResultsPaths, problemsViewSelected, resultsPath],
162+
[
163+
database,
164+
metadata,
165+
onProblemsViewSelectedChange,
166+
origResultsPaths,
167+
problemsViewSelected,
168+
resultsPath,
169+
],
196170
);
197171

198172
const offset = parsedResultSets.pageNumber * parsedResultSets.pageSize;

extensions/ql-vscode/src/view/results/ResultsApp.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ export function ResultsApp() {
8484
DEFAULT_USER_SETTINGS,
8585
);
8686

87+
const [problemsViewSelected, setProblemsViewSelected] = useState(false);
88+
8789
const updateStateWithNewResultsInfo = useCallback(
8890
(resultsInfo: ResultsInfo): void => {
8991
let results: Results | null = null;
@@ -180,7 +182,7 @@ export function ResultsApp() {
180182
break;
181183

182184
case "untoggleShowProblems":
183-
// noop
185+
setProblemsViewSelected(false);
184186
break;
185187

186188
default:
@@ -230,6 +232,8 @@ export function ResultsApp() {
230232
}
231233
queryName={displayedResults.resultsInfo.queryName}
232234
queryPath={displayedResults.resultsInfo.queryPath}
235+
problemsViewSelected={problemsViewSelected}
236+
onProblemsViewSelectedChange={setProblemsViewSelected}
233237
/>
234238
);
235239
} else {

0 commit comments

Comments
 (0)