11import { Component , Element , Event , EventEmitter , h , Method , Prop , State , Watch } from '@stencil/core' ;
22
3- import { Subscription } from 'rxjs' ;
4-
53// Types
64import {
75 DeckdeckgoDrawAction ,
@@ -12,20 +10,22 @@ import {
1210 DeckdeckgoSlideAction ,
1311 DeckdeckgoDeckDefinition ,
1412 DeckdeckgoSlideDefinition ,
15- ConnectionState
13+ ConnectionState ,
1614} from '@deckdeckgo/types' ;
1715
1816import { isMobile } from '@deckdeckgo/utils' ;
1917
2018import { Arrow , Circle , Drawable , Pencil } from '@deckdeckgo/remote-utils' ;
2119
20+ import store from '../../stores/remote.store' ;
21+
2222// Services
2323import { CommunicationService } from '../../services/communication/communication.service' ;
2424
2525@Component ( {
2626 tag : 'deckgo-remote' ,
2727 styleUrl : 'deckdeckgo-remote.scss' ,
28- shadow : true
28+ shadow : true ,
2929} )
3030export class DeckdeckgoRemote {
3131 @Element ( ) el : HTMLElement ;
@@ -46,8 +46,8 @@ export class DeckdeckgoRemote {
4646 @Event ( ) state : EventEmitter < ConnectionState > ;
4747 @Event ( ) event : EventEmitter < DeckdeckgoEvent > ;
4848
49- private subscriptionState : Subscription ;
50- private subscriptionEvent : Subscription ;
49+ private destroyStateListener ;
50+ private destroyEventListener ;
5151
5252 private ctx : CanvasRenderingContext2D ;
5353 private drawables : Drawable [ ] = [ ] ;
@@ -64,26 +64,26 @@ export class DeckdeckgoRemote {
6464 }
6565
6666 async componentDidLoad ( ) {
67- this . subscriptionState = this . communicationService . watchState ( ) . subscribe ( ( state : ConnectionState ) => {
67+ this . destroyStateListener = store . onChange ( 'state' , ( state : ConnectionState ) => {
6868 this . state . emit ( state ) ;
6969 } ) ;
7070
71- this . subscriptionEvent = this . communicationService . watchEvent ( ) . subscribe ( async ( event : DeckdeckgoEvent ) => {
72- if ( event . emitter === DeckdeckgoEventEmitter . APP ) {
73- if ( event . type === DeckdeckgoEventType . SLIDES_REQUEST ) {
71+ this . destroyEventListener = store . onChange ( '$event' , async ( $ event : DeckdeckgoEvent ) => {
72+ if ( $ event. emitter === DeckdeckgoEventEmitter . APP ) {
73+ if ( $ event. type === DeckdeckgoEventType . SLIDES_REQUEST ) {
7474 // If app is asking for the deck length, how many slides, we answer directly
7575 await this . sendSlidesToApp ( DeckdeckgoEventType . SLIDES_ANSWER ) ;
76- } else if ( event . type === DeckdeckgoEventType . CLEAR_SLIDE ) {
76+ } else if ( $ event. type === DeckdeckgoEventType . CLEAR_SLIDE ) {
7777 await this . clear ( ) ;
78- } else if ( event . type === DeckdeckgoEventType . START_DRAWING ) {
79- await this . startDrawing ( event as DeckdeckgoEventDraw ) ;
80- } else if ( event . type === DeckdeckgoEventType . END_DRAWING ) {
81- await this . endDrawing ( event as DeckdeckgoEventDraw ) ;
82- } else if ( event . type === DeckdeckgoEventType . DRAW ) {
83- await this . draw ( event as DeckdeckgoEventDraw ) ;
78+ } else if ( $ event. type === DeckdeckgoEventType . START_DRAWING ) {
79+ await this . startDrawing ( $ event as DeckdeckgoEventDraw ) ;
80+ } else if ( $ event. type === DeckdeckgoEventType . END_DRAWING ) {
81+ await this . endDrawing ( $ event as DeckdeckgoEventDraw ) ;
82+ } else if ( $ event. type === DeckdeckgoEventType . DRAW ) {
83+ await this . draw ( $ event as DeckdeckgoEventDraw ) ;
8484 } else {
8585 // Else it's a command to apply on the deck, we propagate
86- this . event . emit ( event ) ;
86+ this . event . emit ( $ event) ;
8787 }
8888 }
8989 } ) ;
@@ -106,12 +106,12 @@ export class DeckdeckgoRemote {
106106 async componentDidUnload ( ) {
107107 await this . communicationService . disconnect ( ) ;
108108
109- if ( this . subscriptionState ) {
110- this . subscriptionState . unsubscribe ( ) ;
109+ if ( this . destroyStateListener ) {
110+ this . destroyStateListener ( ) ;
111111 }
112112
113- if ( this . subscriptionEvent ) {
114- this . subscriptionEvent . unsubscribe ( ) ;
113+ if ( this . destroyEventListener ) {
114+ this . destroyEventListener ( ) ;
115115 }
116116 }
117117
@@ -210,7 +210,7 @@ export class DeckdeckgoRemote {
210210 { x : this . startX , y : this . startY } ,
211211 {
212212 x : this . startX ,
213- y : this . startY
213+ y : this . startY ,
214214 } ,
215215 event . color
216216 )
@@ -245,7 +245,7 @@ export class DeckdeckgoRemote {
245245 { x : this . startX , y : this . startY } ,
246246 {
247247 x : toX ,
248- y : toY
248+ y : toY ,
249249 } ,
250250 event . color
251251 ) ;
@@ -277,7 +277,7 @@ export class DeckdeckgoRemote {
277277 { x : this . startX , y : this . startY } ,
278278 {
279279 x : toX ,
280- y : toY
280+ y : toY ,
281281 } ,
282282 event . color
283283 ) ;
@@ -308,7 +308,7 @@ export class DeckdeckgoRemote {
308308 emitter : DeckdeckgoEventEmitter . DECK ,
309309 length : this . length ,
310310 deck : this . deck ,
311- mobile : isMobile ( )
311+ mobile : isMobile ( ) ,
312312 } ) ;
313313
314314 resolve ( ) ;
@@ -339,7 +339,7 @@ export class DeckdeckgoRemote {
339339 type : DeckdeckgoEventType . SLIDE_UPDATE ,
340340 emitter : DeckdeckgoEventEmitter . DECK ,
341341 index : index ,
342- slide : slide
342+ slide : slide ,
343343 } ) ;
344344
345345 resolve ( ) ;
@@ -351,7 +351,7 @@ export class DeckdeckgoRemote {
351351 return new Promise < void > ( ( resolve ) => {
352352 this . communicationService . emit ( {
353353 type : DeckdeckgoEventType . DELETE_SLIDE ,
354- emitter : DeckdeckgoEventEmitter . DECK
354+ emitter : DeckdeckgoEventEmitter . DECK ,
355355 } ) ;
356356
357357 resolve ( ) ;
@@ -364,7 +364,7 @@ export class DeckdeckgoRemote {
364364 this . communicationService . emit ( {
365365 type : DeckdeckgoEventType . DECK_REVEAL_UPDATE ,
366366 emitter : DeckdeckgoEventEmitter . DECK ,
367- reveal : reveal
367+ reveal : reveal ,
368368 } ) ;
369369
370370 resolve ( ) ;
@@ -406,7 +406,7 @@ export class DeckdeckgoRemote {
406406 type : DeckdeckgoEventType . SLIDE_TO ,
407407 emitter : DeckdeckgoEventEmitter . DECK ,
408408 index : index ,
409- speed : speed
409+ speed : speed ,
410410 } ) ;
411411 }
412412
@@ -415,7 +415,7 @@ export class DeckdeckgoRemote {
415415 this . communicationService . emit ( {
416416 type : DeckdeckgoEventType . SLIDE_ACTION ,
417417 emitter : DeckdeckgoEventEmitter . DECK ,
418- action : DeckdeckgoSlideAction . PLAY
418+ action : DeckdeckgoSlideAction . PLAY ,
419419 } ) ;
420420 }
421421
@@ -424,7 +424,7 @@ export class DeckdeckgoRemote {
424424 this . communicationService . emit ( {
425425 type : DeckdeckgoEventType . SLIDE_ACTION ,
426426 emitter : DeckdeckgoEventEmitter . DECK ,
427- action : DeckdeckgoSlideAction . PAUSE
427+ action : DeckdeckgoSlideAction . PAUSE ,
428428 } ) ;
429429 }
430430
0 commit comments