Skip to content

Commit dc5826a

Browse files
Rearrange functions so they are defined earlier in the file from where they are called
1 parent c00adc0 commit dc5826a

File tree

1 file changed

+91
-91
lines changed

1 file changed

+91
-91
lines changed

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

Lines changed: 91 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,59 @@ export class ResultsApp extends React.Component<
8787
};
8888
}
8989

90+
private updateStateWithNewResultsInfo(resultsInfo: ResultsInfo): void {
91+
this.setState((prevState) => {
92+
if (resultsInfo === null && prevState.isExpectingResultsUpdate) {
93+
// Display loading message
94+
return {
95+
displayedResults: {
96+
resultsInfo: null,
97+
results: null,
98+
errorMessage: "Loading results…",
99+
},
100+
isExpectingResultsUpdate: prevState.isExpectingResultsUpdate,
101+
nextResultsInfo: resultsInfo,
102+
};
103+
} else if (resultsInfo === null) {
104+
// No results to display
105+
return {
106+
displayedResults: {
107+
resultsInfo: null,
108+
results: null,
109+
errorMessage: "No results to display",
110+
},
111+
isExpectingResultsUpdate: prevState.isExpectingResultsUpdate,
112+
nextResultsInfo: resultsInfo,
113+
};
114+
}
115+
116+
let results: Results | null = null;
117+
let statusText = "";
118+
try {
119+
const resultSets = getResultSets(resultsInfo);
120+
results = {
121+
resultSets,
122+
database: resultsInfo.database,
123+
sortStates: getSortStates(resultsInfo),
124+
};
125+
} catch (e) {
126+
const errorMessage = getErrorMessage(e);
127+
128+
statusText = `Error loading results: ${errorMessage}`;
129+
}
130+
131+
return {
132+
displayedResults: {
133+
resultsInfo,
134+
results,
135+
errorMessage: statusText,
136+
},
137+
nextResultsInfo: null,
138+
isExpectingResultsUpdate: false,
139+
};
140+
});
141+
}
142+
90143
handleMessage(msg: IntoResultsViewMsg): void {
91144
switch (msg.t) {
92145
case "setState":
@@ -160,85 +213,23 @@ export class ResultsApp extends React.Component<
160213
}
161214
}
162215

163-
private updateStateWithNewResultsInfo(resultsInfo: ResultsInfo): void {
164-
this.setState((prevState) => {
165-
if (resultsInfo === null && prevState.isExpectingResultsUpdate) {
166-
// Display loading message
167-
return {
168-
displayedResults: {
169-
resultsInfo: null,
170-
results: null,
171-
errorMessage: "Loading results…",
172-
},
173-
isExpectingResultsUpdate: prevState.isExpectingResultsUpdate,
174-
nextResultsInfo: resultsInfo,
175-
};
176-
} else if (resultsInfo === null) {
177-
// No results to display
178-
return {
179-
displayedResults: {
180-
resultsInfo: null,
181-
results: null,
182-
errorMessage: "No results to display",
183-
},
184-
isExpectingResultsUpdate: prevState.isExpectingResultsUpdate,
185-
nextResultsInfo: resultsInfo,
186-
};
187-
}
188-
189-
let results: Results | null = null;
190-
let statusText = "";
191-
try {
192-
const resultSets = this.getResultSets(resultsInfo);
193-
results = {
194-
resultSets,
195-
database: resultsInfo.database,
196-
sortStates: this.getSortStates(resultsInfo),
197-
};
198-
} catch (e) {
199-
const errorMessage = getErrorMessage(e);
200-
201-
statusText = `Error loading results: ${errorMessage}`;
202-
}
203-
204-
return {
205-
displayedResults: {
206-
resultsInfo,
207-
results,
208-
errorMessage: statusText,
209-
},
210-
nextResultsInfo: null,
211-
isExpectingResultsUpdate: false,
212-
};
213-
});
216+
private vscodeMessageHandler(evt: MessageEvent) {
217+
// sanitize origin
218+
const origin = evt.origin.replace(/\n|\r/g, "");
219+
evt.origin === window.origin
220+
? this.handleMessage(evt.data as IntoResultsViewMsg)
221+
: console.error(`Invalid event origin ${origin}`);
214222
}
215223

216-
private getResultSets(resultsInfo: ResultsInfo): readonly ResultSet[] {
217-
const parsedResultSets = resultsInfo.parsedResultSets;
218-
const resultSet = parsedResultSets.resultSet;
219-
if (
220-
resultSet.t !== "InterpretedResultSet" &&
221-
resultSet.t !== "RawResultSet"
222-
) {
223-
throw new Error(
224-
`Invalid result set type. Should be either "InterpretedResultSet" or "RawResultSet", but got "${
225-
(resultSet as { t: string }).t
226-
}".`,
227-
);
228-
}
229-
return [resultSet];
224+
componentDidMount(): void {
225+
this.vscodeMessageHandler = this.vscodeMessageHandler.bind(this);
226+
window.addEventListener("message", this.vscodeMessageHandler);
230227
}
231228

232-
private getSortStates(
233-
resultsInfo: ResultsInfo,
234-
): Map<string, RawResultsSortState> {
235-
const entries = Array.from(resultsInfo.sortedResultsMap.entries());
236-
return new Map(
237-
entries.map(([key, sortedResultSetInfo]) => [
238-
key,
239-
sortedResultSetInfo.sortState,
240-
]),
241-
);
229+
componentWillUnmount(): void {
230+
if (this.vscodeMessageHandler) {
231+
window.removeEventListener("message", this.vscodeMessageHandler);
232+
}
242233
}
243234

244235
render(): JSX.Element {
@@ -286,23 +277,32 @@ export class ResultsApp extends React.Component<
286277
return <span>{displayedResults.errorMessage}</span>;
287278
}
288279
}
280+
}
289281

290-
componentDidMount(): void {
291-
this.vscodeMessageHandler = this.vscodeMessageHandler.bind(this);
292-
window.addEventListener("message", this.vscodeMessageHandler);
293-
}
294-
295-
componentWillUnmount(): void {
296-
if (this.vscodeMessageHandler) {
297-
window.removeEventListener("message", this.vscodeMessageHandler);
298-
}
299-
}
282+
function getSortStates(
283+
resultsInfo: ResultsInfo,
284+
): Map<string, RawResultsSortState> {
285+
const entries = Array.from(resultsInfo.sortedResultsMap.entries());
286+
return new Map(
287+
entries.map(([key, sortedResultSetInfo]) => [
288+
key,
289+
sortedResultSetInfo.sortState,
290+
]),
291+
);
292+
}
300293

301-
private vscodeMessageHandler(evt: MessageEvent) {
302-
// sanitize origin
303-
const origin = evt.origin.replace(/\n|\r/g, "");
304-
evt.origin === window.origin
305-
? this.handleMessage(evt.data as IntoResultsViewMsg)
306-
: console.error(`Invalid event origin ${origin}`);
294+
function getResultSets(resultsInfo: ResultsInfo): readonly ResultSet[] {
295+
const parsedResultSets = resultsInfo.parsedResultSets;
296+
const resultSet = parsedResultSets.resultSet;
297+
if (
298+
resultSet.t !== "InterpretedResultSet" &&
299+
resultSet.t !== "RawResultSet"
300+
) {
301+
throw new Error(
302+
`Invalid result set type. Should be either "InterpretedResultSet" or "RawResultSet", but got "${
303+
(resultSet as { t: string }).t
304+
}".`,
305+
);
307306
}
307+
return [resultSet];
308308
}

0 commit comments

Comments
 (0)