@@ -47,6 +47,11 @@ interface WebviewMessage {
4747 start ?: number ;
4848 end ?: number ;
4949}
50+
51+ interface PanelWithFetchFlag {
52+ _hasFetchHandler ?: boolean ;
53+ }
54+
5055export let workspaceData : WorkspaceData ;
5156let resDir : string ;
5257export let requestFile : string ;
@@ -361,7 +366,7 @@ export async function showDataView(source: string, type: string, title: string,
361366 panel . title = title ;
362367 panel . reveal ( ViewColumn [ viewer as keyof typeof ViewColumn ] ) ;
363368
364- panel . webview . postMessage ( { command : 'refreshDataview' } ) ;
369+ await panel ? .webview . postMessage ( { command : 'refreshDataview' } ) ;
365370
366371 } catch ( e ) {
367372 console . log ( `Panel was disposed, creating new one: ${ String ( e ) } ` ) ;
@@ -410,7 +415,8 @@ export async function showDataView(source: string, type: string, title: string,
410415 }
411416
412417 // Register the message handler after panel is created or retrieved, but only once per panel
413- if ( panel && ! ( panel as any ) . _hasFetchHandler ) {
418+ const p = panel as PanelWithFetchFlag ;
419+ if ( panel && ! p . _hasFetchHandler ) {
414420 panel . webview . onDidReceiveMessage ( async ( message : WebviewMessage & {
415421 requestId ?: string ;
416422 sortModel ?: Array < { colId : string ; sort : 'asc' | 'desc' } > ;
@@ -420,13 +426,13 @@ export async function showDataView(source: string, type: string, title: string,
420426 try {
421427 const { start, end, sortModel, filterModel, requestId } = message ;
422428
423- console . log ( " [fetchRows] Sending to R:" , { varname : title , start, end, sortModel, filterModel} ) ;
429+ console . log ( ' [fetchRows] Sending to R:' , { varname : title , start, end, sortModel, filterModel} ) ;
424430
425431 if ( ! server ) {
426432 throw new Error ( 'R server not available' ) ;
427433 }
428434
429- const response = await sessionRequest ( server , {
435+ const response : unknown = await sessionRequest ( server , {
430436 type : 'dataview_fetch_rows' ,
431437 varname : title ,
432438 start,
@@ -470,14 +476,14 @@ export async function showDataView(source: string, type: string, title: string,
470476 }
471477 }
472478 } ) ;
473- ( panel as any ) . _hasFetchHandler = true ;
479+ p . _hasFetchHandler = true ;
474480 }
475481
476482 if ( panel ) {
477483 if ( source === 'table' ) {
478484 const content = await getTableHtml ( panel . webview , file ) ;
479485 panel . webview . html = content ;
480- panel . webview . postMessage ( { command : 'initAgGridRequestMap' } ) ;
486+ await panel ? .webview . postMessage ( { command : 'initAgGridRequestMap' } ) ;
481487 } else if ( source === 'list' ) {
482488 const content = await getListHtml ( panel . webview , file ) ;
483489 panel . webview . html = content ;
@@ -490,13 +496,13 @@ export async function showDataView(source: string, type: string, title: string,
490496export async function getTableHtml ( webview : Webview , file : string ) : Promise < string > {
491497 try {
492498 resDir = isGuestSession ? guestResDir : resDir ;
493- const pageSize = config ( ) . get < number > ( 'session.data.pageSize' , 500 ) ;
499+ // const pageSize = config().get<number>('session.data.pageSize', 500);
494500 const content = await readContent ( file , 'utf8' ) ;
495501 if ( ! content ) {
496502 console . error ( '[getTableHtml] Empty content' ) ;
497503 throw new Error ( 'Empty content in getTableHtml' ) ;
498504 }
499- const data = JSON . parse ( content ) ;
505+ // const data = JSON.parse(content);
500506 return `
501507<!DOCTYPE html>
502508<html lang="en">
0 commit comments