Line data Source code
1 : import * as React from 'react';
2 :
3 : import {
4 : getQueryTarget,
5 : QueryHistoryViewer,
6 : type QueryEntry,
7 : } from '../query/query_history_viewer.js';
8 : import { QueryType } from '../query/query_execution_state.js';
9 : import { useConnectionRegistry } from './connection_registry.js';
10 :
11 1 : export function QueryViewer(props: {
12 : onClose: () => void;
13 1 : }) {
14 1 : const [connReg] = useConnectionRegistry();
15 1 : const entries = React.useMemo(() => {
16 1 : const next: QueryEntry[] = [];
17 1 : for (const [connectionId, conn] of connReg.connections) {
18 1 : const connectorName = conn.connectorInfo.names.displayShort;
19 1 : for (const queryIds of [conn.queriesFinishedOrdered, conn.queriesActiveOrdered]) {
20 1 : for (const queryId of queryIds) {
21 1 : const query = conn.queriesActive.get(queryId) ?? conn.queriesFinished.get(queryId);
22 1 : if (query == null) continue;
23 1 : const sourceName = query.queryMetadata.queryType == QueryType.INTERNAL_SQLFRAME
24 1 : ? 'SQLFrame'
25 1 : : connectorName;
26 1 : next.push({
27 1 : connectionId,
28 1 : sourceName,
29 1 : target: getQueryTarget(query),
30 1 : queryId,
31 1 : query,
32 1 : });
33 1 : }
34 : }
35 1 : }
36 1 : return next;
37 1 : }, [connReg]);
38 :
39 1 : return <QueryHistoryViewer entries={entries} onClose={props.onClose} />;
40 1 : }
|