@@ -7,7 +7,6 @@ import type {
77 InterpretedResultsSortState ,
88 ResultSet ,
99 ParsedResultSets ,
10- IntoResultsViewMsg ,
1110 UserSettings ,
1211} from "../../common/interface-types" ;
1312import {
@@ -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
4849const 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 ;
0 commit comments