File tree Expand file tree Collapse file tree 2 files changed +14
-7
lines changed Expand file tree Collapse file tree 2 files changed +14
-7
lines changed Original file line number Diff line number Diff line change @@ -35,6 +35,11 @@ export async function showPanel(
35
35
} ,
36
36
) ;
37
37
38
+ // Reset stored panel when the user closes it
39
+ messageHandler . panel . onDidDispose ( ( ) => {
40
+ messageHandler . panel = null ;
41
+ } ) ;
42
+
38
43
messageHandler . panel . webview . onDidReceiveMessage (
39
44
( message : MessageType ) => messageHandler . handleMessage ( context , message ) ,
40
45
undefined ,
@@ -68,13 +73,16 @@ export async function showPanel(
68
73
messageHandler . panel . iconPath = SOURCE_ACADEMY_ICON_URI ;
69
74
}
70
75
71
- export async function sendToFrontendWrapped ( message : MessageType ) {
72
- sendToFrontend ( messageHandler . panel , message ) ;
73
- // TODO: This returning of status code shouldn't be necessary after refactor
76
+ export function sendToFrontendWrapped ( message : MessageType ) : boolean {
74
77
if ( ! messageHandler . panel ) {
75
- console . error ( "ERROR: panel is not set" ) ;
76
78
return false ;
77
79
}
78
- sendToFrontend ( messageHandler . panel , message ) ;
79
- return true ;
80
+ try {
81
+ sendToFrontend ( messageHandler . panel , message ) ;
82
+ return true ;
83
+ } catch ( err ) {
84
+ console . error ( "Failed to send message to webview" , err ) ;
85
+ messageHandler . panel = null ;
86
+ return false ;
87
+ }
80
88
}
Original file line number Diff line number Diff line change @@ -60,7 +60,6 @@ const SourceAcademy: React.FC = () => {
60
60
setRetryCount ( ( c ) => c + 1 ) ;
61
61
} , [ retryCount ] ) ;
62
62
63
- // Show overlay if frontend handshake never completes within 5 s.
64
63
// Re-runs whenever retryCount increments.
65
64
useEffect ( ( ) => {
66
65
const timer = window . setTimeout ( ( ) => {
You can’t perform that action at this time.
0 commit comments