From ec2097b11f93ad968e171c0e961e0e06652ce44b Mon Sep 17 00:00:00 2001 From: Jomar Milan Date: Tue, 2 Jun 2026 21:15:27 -0700 Subject: Implement play websocket handshake --- assets/session.js | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'assets/session.js') diff --git a/assets/session.js b/assets/session.js index 7d00838..c607594 100644 --- a/assets/session.js +++ b/assets/session.js @@ -4,7 +4,32 @@ const id = document.getElementById('session-script').dataset.id; const websocket = new WebSocket(`/session/${id}/play`); websocket.addEventListener('open', () => { - colorSelect.disabled = false; + websocket.send(JSON.stringify({ + "Initialize": { id } + })); +}); + +websocket.addEventListener('message', (event) => { + const message = JSON.parse(event.data); + + if (Object.hasOwn(message, 'Initialize')) { + const payload = message.Initialize; + for (let element in Array.from(colorSelect.getElementsByClassName('color-select-colors'))) { + element.remove(); + } + payload.colors.forEach((color) => { + const selection = document.createElement('option'); + selection.value = color; + selection.innerText = color; + selection.classList.add('color-select-colors'); + colorSelect.appendChild(selection); + }); + colorSelect.disabled = false; + } +}); + +websocket.addEventListener('close', () => { + colorSelect.disabled = true; }); colorSelect.addEventListener('change', () => { -- cgit v1.2.3