1
1
import { Widget } from './Widget' ;
2
2
import { Ubidots as UJL } from '@ubidots/ubidots-javascript-library' ;
3
3
4
+ const EventsTypes = {
5
+ IS_REALTIME_ACTIVE : 'isRealTimeActive' ,
6
+ OPEN_DRAWER : 'openDrawer' ,
7
+ RECEIVED_HEADERS : 'receivedHeaders' ,
8
+ RECEIVED_JWT_TOKEN : 'receivedJWTToken' ,
9
+ RECEIVED_TOKEN : 'receivedToken' ,
10
+ REFRESH_DASHBOARD : 'refreshDashboard' ,
11
+ SELECTED_DASHBOARD_DATE_RANGE : 'selectedDashboardDateRange' ,
12
+ SELECTED_DASHBOARD_OBJECT : 'selectedDashboardObject' ,
13
+ SELECTED_DEVICE : 'selectedDevice' ,
14
+ SELECTED_DEVICES : 'selectedDevices' ,
15
+ SELECTED_DEVICE_OBJECT : 'selectedDeviceObject' ,
16
+ SELECTED_DEVICE_OBJECTS : 'selectedDeviceObjects' ,
17
+ SET_DASHBOARD_DATE_RANGE : 'setDashboardDateRange' ,
18
+ SET_DASHBOARD_DEVICE : 'setDashboardDevice' ,
19
+ SET_DASHBOARD_MULTIPLE_DEVICES : 'setDashboardMultipleDevices' ,
20
+ SET_FULL_SCREEN : 'setFullScreen' ,
21
+ SET_REAL_TIME : 'setRealTime' ,
22
+ } ;
23
+
4
24
/**
5
25
* Create a listener to be able to listen to the Ubidots messages.
6
26
* @class Ubidots
@@ -47,7 +67,7 @@ class Ubidots {
47
67
* @memberOf Ubidots
48
68
*/
49
69
setDashboardDevice ( deviceId ) {
50
- this . _sendPostMessage ( { event : 'setDashboardDevice' , payload : deviceId } ) ;
70
+ this . _sendPostMessage ( { event : EventsTypes . SET_DASHBOARD_DEVICE , payload : deviceId } ) ;
51
71
}
52
72
53
73
/**
@@ -56,7 +76,7 @@ class Ubidots {
56
76
* @memberOf Ubidots
57
77
*/
58
78
setDashboardMultipleDevices ( deviceIds ) {
59
- this . _sendPostMessage ( { event : 'setDashboardMultipleDevices' , payload : deviceIds } ) ;
79
+ this . _sendPostMessage ( { event : EventsTypes . SET_DASHBOARD_MULTIPLE_DEVICES , payload : deviceIds } ) ;
60
80
}
61
81
62
82
/**
@@ -67,10 +87,7 @@ class Ubidots {
67
87
* @memberOf Ubidots
68
88
*/
69
89
setDashboardDateRange ( range ) {
70
- this . _sendPostMessage ( {
71
- event : 'setDashboardDateRange' ,
72
- payload : range ,
73
- } ) ;
90
+ this . _sendPostMessage ( { event : EventsTypes . SET_DASHBOARD_DATE_RANGE , payload : range } ) ;
74
91
}
75
92
76
93
/**
@@ -79,15 +96,15 @@ class Ubidots {
79
96
* @memberOf Ubidots
80
97
*/
81
98
setRealTime ( enableRealTime ) {
82
- this . _sendPostMessage ( { event : 'setRealTime' , payload : enableRealTime } ) ;
99
+ this . _sendPostMessage ( { event : EventsTypes . SET_REAL_TIME , payload : enableRealTime } ) ;
83
100
}
84
101
85
102
/**
86
103
* Refresh the Dashboard
87
104
* @memberOf Ubidots
88
105
*/
89
106
refreshDashboard ( ) {
90
- this . _sendPostMessage ( { event : 'refreshDashboard' } ) ;
107
+ this . _sendPostMessage ( { event : EventsTypes . REFRESH_DASHBOARD } ) ;
91
108
}
92
109
93
110
/**
@@ -96,10 +113,7 @@ class Ubidots {
96
113
* @memberOf Ubidots
97
114
*/
98
115
setFullScreen ( fullScreenAction ) {
99
- this . _sendPostMessage ( {
100
- event : 'setFullScreen' ,
101
- payload : fullScreenAction ,
102
- } ) ;
116
+ this . _sendPostMessage ( { event : EventsTypes . SET_FULL_SCREEN , payload : fullScreenAction } ) ;
103
117
}
104
118
105
119
/**
@@ -110,7 +124,7 @@ class Ubidots {
110
124
* @memberOf Ubidots
111
125
*/
112
126
openDrawer ( drawerInfo ) {
113
- this . _sendPostMessage ( { event : 'openDrawer' , payload : { drawerInfo, id : this . widget . getId ( ) } } ) ;
127
+ this . _sendPostMessage ( { event : EventsTypes . OPEN_DRAWER , payload : { drawerInfo, id : this . widget . getId ( ) } } ) ;
114
128
}
115
129
116
130
/**
@@ -356,7 +370,7 @@ class Ubidots {
356
370
*
357
371
* @memberOf Ubidots
358
372
*/
359
- on = ( eventName , callback = undefined ) => {
373
+ on = ( eventName , callback ) => {
360
374
if ( Object . keys ( this . _eventsCallback ) . includes ( eventName ) ) {
361
375
this . _eventsCallback [ eventName ] = callback ;
362
376
}
@@ -371,26 +385,25 @@ class Ubidots {
371
385
* @memberOf Ubidots
372
386
*/
373
387
_listenMessage = event => {
374
- if ( event . origin !== window . location . origin || ! Object . keys ( this . _eventsCallback ) . includes ( event . data . event ) )
375
- return ;
376
-
377
- const eventsData = {
378
- isRealTimeActive : this . _setRealTime ,
379
- receivedHeaders : this . _setHeaders ,
380
- receivedJWTToken : this . _setJWTToken ,
381
- receivedToken : this . _setToken ,
382
- selectedDashboardDateRange : this . _setDashboardDateRange ,
383
- selectedDashboardObject : this . _setDashboardObject ,
384
- selectedDevice : this . _setSelectedDevice ,
385
- selectedDeviceObject : this . _setDeviceObject ,
386
- selectedDevices : this . _setSelectedDevices ,
387
- selectedDeviceObjects : this . _setSelectedDeviceObjects ,
388
- selectedFilters : this . _setSelectedFilters ,
388
+ if ( event . origin !== window . location . origin ) return ;
389
+ const { event : eventName , payload } = event . data ;
390
+
391
+ const eventHandlers = {
392
+ [ EventsTypes . IS_REALTIME_ACTIVE ] : this . _setRealTime ,
393
+ [ EventsTypes . RECEIVED_HEADERS ] : this . _setHeaders ,
394
+ [ EventsTypes . RECEIVED_JWT_TOKEN ] : this . _setJWTToken ,
395
+ [ EventsTypes . RECEIVED_TOKEN ] : this . _setToken ,
396
+ [ EventsTypes . SELECTED_DASHBOARD_DATE_RANGE ] : this . _setDashboardDateRange ,
397
+ [ EventsTypes . SELECTED_DASHBOARD_OBJECT ] : this . _setDashboardObject ,
398
+ [ EventsTypes . SELECTED_DEVICE ] : this . _setSelectedDevice ,
399
+ [ EventsTypes . SELECTED_DEVICE_OBJECT ] : this . _setDeviceObject ,
400
+ [ EventsTypes . SELECTED_DEVICES ] : this . _setSelectedDevices ,
401
+ [ EventsTypes . SELECTED_DEVICE_OBJECTS ] : this . _setSelectedDeviceObjects ,
402
+ [ EventsTypes . SELECTED_FILTERS ] : this . _setSelectedFilters ,
389
403
} ;
390
404
391
- if ( Object . keys ( eventsData ) . includes ( event . data . event ) ) {
392
- eventsData [ event . data . event ] ( event . data . payload ) ;
393
- }
405
+ const handler = eventHandlers [ eventName ] ;
406
+ if ( handler ) handler ( payload ) ;
394
407
395
408
if ( typeof this . _eventsCallback [ event . data . event ] === 'function' ) {
396
409
this . _eventsCallback [ event . data . event ] ( event . data . payload ) ;
0 commit comments