@@ -105,7 +105,7 @@ class CloseRequestedEvent {
105105 id : number
106106 private _preventDefault = false
107107
108- constructor ( event : Event < null > ) {
108+ constructor ( event : Event < unknown > ) {
109109 this . event = event . event
110110 this . id = event . id
111111 }
@@ -373,11 +373,11 @@ class Window {
373373 handler : EventCallback < T >
374374 ) : Promise < UnlistenFn > {
375375 if ( this . _handleTauriEvent ( event , handler ) ) {
376- return Promise . resolve ( ( ) => {
376+ return ( ) => {
377377 // eslint-disable-next-line security/detect-object-injection
378378 const listeners = this . listeners [ event ]
379379 listeners . splice ( listeners . indexOf ( handler ) , 1 )
380- } )
380+ }
381381 }
382382 return listen ( event , handler , {
383383 target : { kind : 'Window' , label : this . label }
@@ -403,13 +403,16 @@ class Window {
403403 * @returns A promise resolving to a function to unlisten to the event.
404404 * Note that removing the listener is required if your listener goes out of scope e.g. the component is unmounted.
405405 */
406- async once < T > ( event : string , handler : EventCallback < T > ) : Promise < UnlistenFn > {
406+ async once < T > (
407+ event : EventName ,
408+ handler : EventCallback < T >
409+ ) : Promise < UnlistenFn > {
407410 if ( this . _handleTauriEvent ( event , handler ) ) {
408- return Promise . resolve ( ( ) => {
411+ return ( ) => {
409412 // eslint-disable-next-line security/detect-object-injection
410413 const listeners = this . listeners [ event ]
411414 listeners . splice ( listeners . indexOf ( handler ) , 1 )
412- } )
415+ }
413416 }
414417 return once ( event , handler , {
415418 target : { kind : 'Window' , label : this . label }
@@ -437,7 +440,7 @@ class Window {
437440 payload
438441 } )
439442 }
440- return Promise . resolve ( )
443+ return
441444 }
442445 return emit ( event , payload )
443446 }
@@ -460,15 +463,15 @@ class Window {
460463 payload ?: unknown
461464 ) : Promise < void > {
462465 if ( localTauriEvents . includes ( event ) ) {
463- // eslint-disable-next-line
466+ // eslint-disable-next-line security/detect-object-injection
464467 for ( const handler of this . listeners [ event ] || [ ] ) {
465468 handler ( {
466469 event,
467470 id : - 1 ,
468471 payload
469472 } )
470473 }
471- return Promise . resolve ( )
474+ return
472475 }
473476 return emitTo ( target , event , payload )
474477 }
@@ -1710,13 +1713,13 @@ class Window {
17101713 async onCloseRequested (
17111714 handler : ( event : CloseRequestedEvent ) => void | Promise < void >
17121715 ) : Promise < UnlistenFn > {
1713- return this . listen < null > ( TauriEvent . WINDOW_CLOSE_REQUESTED , ( event ) => {
1716+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
1717+ return this . listen ( TauriEvent . WINDOW_CLOSE_REQUESTED , async ( event ) => {
17141718 const evt = new CloseRequestedEvent ( event )
1715- void Promise . resolve ( handler ( evt ) ) . then ( ( ) => {
1716- if ( ! evt . isPreventDefault ( ) ) {
1717- return this . destroy ( )
1718- }
1719- } )
1719+ await handler ( evt )
1720+ if ( ! evt . isPreventDefault ( ) ) {
1721+ await this . destroy ( )
1722+ }
17201723 } )
17211724 }
17221725
0 commit comments