ota-device-list
Version:
A markojs component for listing OTA devices
55 lines (44 loc) • 1.28 kB
JavaScript
function isOffline(device) {
let lastSeen;
lastSeen = device['last-seen'];
// Offline if not seen in more than 1 hour (in milliseconds).
if (lastSeen && (new Date() - Date.parse(lastSeen)) < 36000000) {
return false;
}
return true;
}
function offlineDevice(device) {
device.offline = isOffline(device);
return device;
}
class Component {
onCreate(input) {
const devices = (input.devices && input.devices.map(offlineDevice));
this.state = {
devices: devices,
maxDevices: input.maxDevices
};
}
onDeviceRemove(idx) {
const device = this.state.devices[`${idx}`];
this.emit('device-remove', device, idx, device.name);
}
onDeviceRemoving(device, idx) {
// XXX: Do nothing for now.
}
onDeviceRemoveSuccess(data) {
let idx;
if (data.idx != null) {
idx = data.idx;
} else {
idx = this.state.devices
.findIndex(d => d.name === data.device && d['update-stream'] === data.stream);
}
this.state.devices.splice(idx, 1);
this.setStateDirty('devices');
}
onDeviceRemoveError(data) {
// XXX: Do nothing for now.
}
}
module.exports = Component;