diff options
| author | Jomar Milan <jomarm@jomarm.com> | 2026-06-02 21:15:27 -0700 |
|---|---|---|
| committer | Jomar Milan <jomarm@jomarm.com> | 2026-06-02 21:15:27 -0700 |
| commit | ec2097b11f93ad968e171c0e961e0e06652ce44b (patch) | |
| tree | d404d2b7a021b57e19d2f668ae463ff311b4a988 /assets/session.js | |
| parent | a2e55df0eeea9709175dd0a26c1e09bdaa60841a (diff) | |
Implement play websocket handshake
Diffstat (limited to 'assets/session.js')
| -rw-r--r-- | assets/session.js | 27 |
1 files changed, 26 insertions, 1 deletions
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', () => { |
