diff --git a/frontend/package.json b/frontend/package.json index c54ff6e..d6e4998 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -24,6 +24,7 @@ "@sveltejs/adapter-node": "^1.0.0-next.86", "@sveltejs/kit": "next", "@tailwindcss/typography": "^0.5.4", + "@types/canvas-confetti": "^1.4.3", "@types/cookie": "^0.5.1", "@types/js-cookie": "^3.0.2", "@types/luxon": "^2.4.0", @@ -39,6 +40,7 @@ "@uppy/svelte": "^1.0.9", "@uppy/xhr-upload": "^2.1.3", "autoprefixer": "^10.4.8", + "canvas-confetti": "^1.5.1", "cookie": "^0.5.0", "crypto-js": "^4.1.1", "cssnano": "^5.1.13", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index 2cc35b6..fcaab13 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -11,6 +11,7 @@ specifiers: '@sveltejs/adapter-node': ^1.0.0-next.86 '@sveltejs/kit': next '@tailwindcss/typography': ^0.5.4 + '@types/canvas-confetti': ^1.4.3 '@types/cookie': ^0.5.1 '@types/js-cookie': ^3.0.2 '@types/luxon': ^2.4.0 @@ -26,6 +27,7 @@ specifiers: '@uppy/svelte': ^1.0.9 '@uppy/xhr-upload': ^2.1.3 autoprefixer: ^10.4.8 + canvas-confetti: ^1.5.1 cookie: ^0.5.0 crypto-js: ^4.1.1 cssnano: ^5.1.13 @@ -73,10 +75,11 @@ devDependencies: '@fontsource/marck-script': 4.5.10 '@sentry/browser': 7.11.1 '@sentry/tracing': 7.11.1 - '@sveltejs/adapter-auto': 1.0.0-next.75 + '@sveltejs/adapter-auto': 1.0.0-next.80 '@sveltejs/adapter-node': 1.0.0-next.86 - '@sveltejs/kit': 1.0.0-next.484_svelte@3.49.0+vite@3.1.2 + '@sveltejs/kit': 1.0.0-next.504_svelte@3.49.0+vite@3.1.2 '@tailwindcss/typography': 0.5.4_tailwindcss@3.1.8 + '@types/canvas-confetti': 1.4.3 '@types/cookie': 0.5.1 '@types/js-cookie': 3.0.2 '@types/luxon': 2.4.0 @@ -92,6 +95,7 @@ devDependencies: '@uppy/svelte': 1.0.9_ejnjleuqktlq3genmlddww3ajq '@uppy/xhr-upload': 2.1.3_@uppy+core@2.3.3 autoprefixer: 10.4.8_postcss@8.4.16 + canvas-confetti: 1.5.1 cookie: 0.5.0 crypto-js: 4.1.1 cssnano: 5.1.13_postcss@8.4.16 @@ -519,24 +523,24 @@ packages: } dev: true - /@sveltejs/adapter-auto/1.0.0-next.75: + /@sveltejs/adapter-auto/1.0.0-next.80: resolution: { - integrity: sha512-UEE6XkeXVrNhpEceqcCbtfV5EYzulIt1D/L+RsjIVsPVtUIZMMpPWzuHHzVvPemFRAuYho+4C1hJjIJ9iCgPeQ== + integrity: sha512-352WoZr9fQgxJqgNENvxRr2gsA+wTF6V9AVaQaaatDYd3RVEBaXTYOOalFaRLSa25mRUJaLYP2aaliqczMl23g== } dependencies: - '@sveltejs/adapter-cloudflare': 1.0.0-next.34 + '@sveltejs/adapter-cloudflare': 1.0.0-next.38 '@sveltejs/adapter-netlify': 1.0.0-next.78 - '@sveltejs/adapter-vercel': 1.0.0-next.76 + '@sveltejs/adapter-vercel': 1.0.0-next.77 transitivePeerDependencies: - encoding - supports-color dev: true - /@sveltejs/adapter-cloudflare/1.0.0-next.34: + /@sveltejs/adapter-cloudflare/1.0.0-next.38: resolution: { - integrity: sha512-9/YJsx5O+iy2+XGuH0vVzZ9OSeHGjkInh8JG8CLmIc0cKkv2t7sEu7qQ/qXA5CcvmS1AqNSUgIMxGoeEDVlO3g== + integrity: sha512-N6jdTomRZkdKlcNoguwYD7lpdXSt0beIyUJsp0MS/YLm/4gI83y698zFYInFKJ9t5e6DAnuEBSAXcg568z2oFA== } dependencies: '@cloudflare/workers-types': 3.14.1 @@ -562,10 +566,10 @@ packages: } dev: true - /@sveltejs/adapter-vercel/1.0.0-next.76: + /@sveltejs/adapter-vercel/1.0.0-next.77: resolution: { - integrity: sha512-Od9DBfeMwWC/sZNeCJw4TYVE3LMR8lGJivSdkXWgpvksgG+QizLyzTfvBacapId3wcu+7X4PPTLoH00o5iQGEQ== + integrity: sha512-r4MqtP+lzx83HfcvI8PU0Yxzmxt6WQq9nzZETLboJouJzhSBUFIN5RmNZfEn6nNIlUwZbGQUEK/FxsRnnxI/Ig== } dependencies: '@vercel/nft': 0.22.1 @@ -575,10 +579,10 @@ packages: - supports-color dev: true - /@sveltejs/kit/1.0.0-next.484_svelte@3.49.0+vite@3.1.2: + /@sveltejs/kit/1.0.0-next.504_svelte@3.49.0+vite@3.1.2: resolution: { - integrity: sha512-Y3l8OmlgmfJX3m081rMUZmmEQWHtiSsj3+YWYK/CQ4V99jqoztXPz/4cAxUt5mC45jVF5Ee9ykmh6GzkYjvfAQ== + integrity: sha512-KrhlSHT3aCVnhRgUoN6aGIjIw3nWEdNwfoZcE1x65F5D7Ju/K9D8dQwyal9v0aBAZyN9nFuXxsYGaMLE9sppfw== } engines: { node: '>=16.14' } hasBin: true @@ -669,6 +673,13 @@ packages: engines: { node: '>=10.13.0' } dev: true + /@types/canvas-confetti/1.4.3: + resolution: + { + integrity: sha512-UwFPTsW1ZwVyo/ETp4hPSikSD7yl2V42E3VWBF5P/0+DHO4iajyceWv7hfNdZ2AX5tkZnuViiBWOqyCPohU2FQ== + } + dev: true + /@types/cookie/0.5.1: resolution: { @@ -1422,6 +1433,13 @@ packages: } dev: true + /canvas-confetti/1.5.1: + resolution: + { + integrity: sha512-Ncz+oZJP6OvY7ti4E1slxVlyAV/3g7H7oQtcCDXgwGgARxPnwYY9PW5Oe+I8uvspYNtuHviAdgA0LfcKFWJfpg== + } + dev: true + /chalk/4.1.2: resolution: { diff --git a/frontend/src/lib/admin.svelte b/frontend/src/lib/admin.svelte index 3167c48..27db7dc 100644 --- a/frontend/src/lib/admin.svelte +++ b/frontend/src/lib/admin.svelte @@ -28,7 +28,7 @@ let shown_question_now: number; let final_results_clicked = false; - let player_scores = {}; + export let player_scores; export const set_question_number = (q_number: number) => { question_results = null; diff --git a/frontend/src/lib/play/admin/final_results.svelte b/frontend/src/lib/play/admin/final_results.svelte new file mode 100644 index 0000000..5f2c995 --- /dev/null +++ b/frontend/src/lib/play/admin/final_results.svelte @@ -0,0 +1,58 @@ + + + +{#if show_final_results} + +
+ {i + 1} + : {player} with {data[player]} points +
+ {/if} + {/each} +