1
0
mirror of https://github.com/pavlobu/deskreen.git synced 2025-05-16 23:40:15 -07:00
Pavlo Buidenkov b925803d9f better client UI code
huge work done on sharing desktop session
2020-11-22 17:07:01 +02:00

63 lines
1.4 KiB
TypeScript

const nullDevice: Device = {
id: '',
sharingSessionID: '',
deviceOS: '',
deviceType: '',
deviceIP: '',
deviceBrowser: '',
deviceScreenWidth: -1,
deviceScreenHeight: -1,
};
class ConnectedDevices {
devices: Device[] = [];
pendingConnectionDevice: Device = nullDevice;
pendingDeviceConnectedListeners: ((device: Device) => void)[] = [];
resetPendingConnectionDevice() {
this.pendingConnectionDevice = nullDevice;
}
getDevices() {
return this.devices;
}
removeAllDevices() {
this.devices = [] as Device[];
}
removeDeviceByID(deviceIDToRemove: string) {
return new Promise<undefined>((resolve) => {
this.devices = this.devices.filter((d) => {
return d.id !== deviceIDToRemove;
});
resolve();
});
}
addDevice(device: Device) {
this.devices.push(device);
}
addPendingConnectedDeviceListener(callback: (device: Device) => void) {
this.pendingDeviceConnectedListeners.push(callback);
}
setPendingConnectionDevice(device: Device) {
this.pendingConnectionDevice = device;
this.emitPendingConnectionDeviceConnected();
}
private emitPendingConnectionDeviceConnected() {
this.pendingDeviceConnectedListeners.forEach(
(callback: (device: Device) => void) => {
callback(this.pendingConnectionDevice);
}
);
}
}
export default ConnectedDevices;