Skip to content

Commit e74abc3

Browse files
committedJan 21, 2025·
♻️ [OP-3163] refactor: create constants
1 parent cc76033 commit e74abc3

File tree

1 file changed

+45
-32
lines changed

1 file changed

+45
-32
lines changed
 

‎src/Ubidots.js

+45-32
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,26 @@
11
import { Widget } from './Widget';
22
import { Ubidots as UJL } from '@ubidots/ubidots-javascript-library';
33

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+
424
/**
525
* Create a listener to be able to listen to the Ubidots messages.
626
* @class Ubidots
@@ -47,7 +67,7 @@ class Ubidots {
4767
* @memberOf Ubidots
4868
*/
4969
setDashboardDevice(deviceId) {
50-
this._sendPostMessage({ event: 'setDashboardDevice', payload: deviceId });
70+
this._sendPostMessage({ event: EventsTypes.SET_DASHBOARD_DEVICE, payload: deviceId });
5171
}
5272

5373
/**
@@ -56,7 +76,7 @@ class Ubidots {
5676
* @memberOf Ubidots
5777
*/
5878
setDashboardMultipleDevices(deviceIds) {
59-
this._sendPostMessage({ event: 'setDashboardMultipleDevices', payload: deviceIds });
79+
this._sendPostMessage({ event: EventsTypes.SET_DASHBOARD_MULTIPLE_DEVICES, payload: deviceIds });
6080
}
6181

6282
/**
@@ -67,10 +87,7 @@ class Ubidots {
6787
* @memberOf Ubidots
6888
*/
6989
setDashboardDateRange(range) {
70-
this._sendPostMessage({
71-
event: 'setDashboardDateRange',
72-
payload: range,
73-
});
90+
this._sendPostMessage({ event: EventsTypes.SET_DASHBOARD_DATE_RANGE, payload: range });
7491
}
7592

7693
/**
@@ -79,15 +96,15 @@ class Ubidots {
7996
* @memberOf Ubidots
8097
*/
8198
setRealTime(enableRealTime) {
82-
this._sendPostMessage({ event: 'setRealTime', payload: enableRealTime });
99+
this._sendPostMessage({ event: EventsTypes.SET_REAL_TIME, payload: enableRealTime });
83100
}
84101

85102
/**
86103
* Refresh the Dashboard
87104
* @memberOf Ubidots
88105
*/
89106
refreshDashboard() {
90-
this._sendPostMessage({ event: 'refreshDashboard' });
107+
this._sendPostMessage({ event: EventsTypes.REFRESH_DASHBOARD });
91108
}
92109

93110
/**
@@ -96,10 +113,7 @@ class Ubidots {
96113
* @memberOf Ubidots
97114
*/
98115
setFullScreen(fullScreenAction) {
99-
this._sendPostMessage({
100-
event: 'setFullScreen',
101-
payload: fullScreenAction,
102-
});
116+
this._sendPostMessage({ event: EventsTypes.SET_FULL_SCREEN, payload: fullScreenAction });
103117
}
104118

105119
/**
@@ -110,7 +124,7 @@ class Ubidots {
110124
* @memberOf Ubidots
111125
*/
112126
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() } });
114128
}
115129

116130
/**
@@ -356,7 +370,7 @@ class Ubidots {
356370
*
357371
* @memberOf Ubidots
358372
*/
359-
on = (eventName, callback = undefined) => {
373+
on = (eventName, callback) => {
360374
if (Object.keys(this._eventsCallback).includes(eventName)) {
361375
this._eventsCallback[eventName] = callback;
362376
}
@@ -371,26 +385,25 @@ class Ubidots {
371385
* @memberOf Ubidots
372386
*/
373387
_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,
389403
};
390404

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);
394407

395408
if (typeof this._eventsCallback[event.data.event] === 'function') {
396409
this._eventsCallback[event.data.event](event.data.payload);

0 commit comments

Comments
 (0)
Please sign in to comment.