Initial commit
This commit is contained in:
75
Frontend/pages/home/ts/Communication.ts
Normal file
75
Frontend/pages/home/ts/Communication.ts
Normal file
@@ -0,0 +1,75 @@
|
||||
declare var ce: (
|
||||
type: string,
|
||||
classList?: string | string[],
|
||||
attributes?: { [key: string]: string },
|
||||
innerText?: string,
|
||||
innerHTML?: string
|
||||
) => HTMLElement;
|
||||
declare var UndeckedNotification: (message: string, type?: 'info' | 'error', time?: number) => void;
|
||||
declare var io: any;
|
||||
|
||||
var responseToken = Math.random().toString(16).substr(2, 8);
|
||||
|
||||
var socket = io('/');
|
||||
|
||||
socket.on('connect', () => {
|
||||
console.log('Connected to server');
|
||||
|
||||
socket.emit('init', 'home');
|
||||
});
|
||||
|
||||
var fontSizeRatio: number = null;
|
||||
var renderQuality: number = null;
|
||||
socket.on('quality', (quality: number) => {
|
||||
document.querySelectorAll('canvas.ready').forEach((canvas: HTMLCanvasElement) => {
|
||||
canvas.width = quality;
|
||||
canvas.height = quality;
|
||||
|
||||
var context = canvas.getContext('2d');
|
||||
context.textBaseline = 'middle';
|
||||
context.textAlign = 'center';
|
||||
});
|
||||
|
||||
renderQuality = quality;
|
||||
fontSizeRatio = quality / 100;
|
||||
});
|
||||
|
||||
socket.on('pagelist', (pagelist: PageListItem[]) => {
|
||||
(function render() {
|
||||
if (fontSizeRatio != null) PageList.render(pagelist);
|
||||
else setTimeout(render, 100);
|
||||
})();
|
||||
});
|
||||
|
||||
socket.on('connectedlist', (connected: ConnectedList[]) => Connections.renderConnected(connected));
|
||||
|
||||
socket.on('page', (query: string, ...args: any[]) => {
|
||||
switch (query) {
|
||||
case 'updatename':
|
||||
var pageID: string = args[0];
|
||||
var newName: string = args[1];
|
||||
|
||||
PageList.updateName(pageID, newName);
|
||||
break;
|
||||
|
||||
case 'updatekey':
|
||||
var pageID: string = args[0];
|
||||
var x: string = args[1];
|
||||
var y: string = args[2];
|
||||
var key: Page_Key = args[3];
|
||||
var returnResponseToken: string = args[4];
|
||||
|
||||
if (PageHandler.currentPageID == pageID) {
|
||||
if (PageHandler.currentPage.keys[y] != undefined && PageHandler.currentPage.keys[y][x] != undefined)
|
||||
PageHandler.currentPage.keys[y][x] = key;
|
||||
|
||||
if (responseToken != returnResponseToken) {
|
||||
KeyHandler.render(x, y, key);
|
||||
|
||||
if (Editor.currentKey != undefined && Editor.currentKey.id == key.id) Editor.open(x, y, key);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user