diff --git a/backend/index.js b/backend/index.js index 6daf717..5859a87 100644 --- a/backend/index.js +++ b/backend/index.js @@ -3,6 +3,7 @@ import session from 'express-session'; import mongodb from 'mongodb'; import MongoStore from 'connect-mongo'; import cors from 'cors'; +import crypto from 'crypto' import { createNanoEvents } from 'nanoevents'; import "dotenv/config"; @@ -103,7 +104,6 @@ const client = new MongoClient(process.env.URI, { useUnifiedTopology: true }); } let players = {} - let oldPlayers = {} let score = {} let card = await drawCard() let oldCard = null; @@ -257,6 +257,8 @@ const client = new MongoClient(process.env.URI, { useUnifiedTopology: true }); }); app.get('/api/stream', async (req, res) => { + const id = crypto.randomUUID() + res.set({ 'Access-Control-Allow-Origin': '*', 'Cache-Control': 'no-cache', @@ -278,6 +280,7 @@ const client = new MongoClient(process.env.URI, { useUnifiedTopology: true }); players, selected } + res.write(`data: ${JSON.stringify(data)}\nevent: answer\n\n`); answers += 1 @@ -295,12 +298,13 @@ const client = new MongoClient(process.env.URI, { useUnifiedTopology: true }); answers = 0 oldCard = { ...card } card = await drawCard() - emitter.emit('allDone'); + + emitter.emit(`allDone-${id}`); } }); - emitter.on('allDone', () => { - const data = { + const unbindAllDone = emitter.on(`allDone-${id}`, () => { + const data = { correctAnswer: oldCard.name, score } diff --git a/frontend/src/App.vue b/frontend/src/App.vue index ead1d04..8a503a6 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -28,6 +28,7 @@ :root { --clr-bg: #ffd537; --clr-accent: #37ffac; + --clr-text: #141414; } body { @@ -35,16 +36,17 @@ body { background-color: var(--clr-bg); } +input, button { + font: inherit; +} + #app { font-family: "Pangram Sans Rounded", Avenir, Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-align: center; - color: black; - margin-top: 60px; -} - -#game { - margin-bottom: 100px; + color: var(--clr-text); + min-height: 100vh; + box-sizing: border-box; } diff --git a/frontend/src/styles/_prepend.scss b/frontend/src/styles/_prepend.scss index 47df0cf..e21a1db 100644 --- a/frontend/src/styles/_prepend.scss +++ b/frontend/src/styles/_prepend.scss @@ -2,7 +2,7 @@ $resulting-shadow: null; @for $i from 1 through $distance { - $resulting-shadow: $resulting-shadow, #{$i}px #{$i}px 0 black; + $resulting-shadow: $resulting-shadow, #{$i}px #{$i}px 0 var(--clr-text); } box-shadow: $resulting-shadow; diff --git a/frontend/src/views/Game/EndGame.vue b/frontend/src/views/Game/EndGame.vue index 31ed0a8..22969a8 100644 --- a/frontend/src/views/Game/EndGame.vue +++ b/frontend/src/views/Game/EndGame.vue @@ -22,10 +22,10 @@ function endGame() {