From 0e1a4a70e275e03daf2c339d482fdb2bfea1f5f8 Mon Sep 17 00:00:00 2001 From: orosmatthew Date: Fri, 28 Apr 2023 10:07:23 -0400 Subject: [PATCH] Handle review submit --- web/package-lock.json | 11 +++++- web/package.json | 3 +- web/src/routes/diff-test/+page.svelte | 57 ++++++++++++++++++++++----- web/src/routes/diff-test/+server.ts | 19 +++++++++ 4 files changed, 79 insertions(+), 11 deletions(-) create mode 100644 web/src/routes/diff-test/+server.ts diff --git a/web/package-lock.json b/web/package-lock.json index b3462b5..693a980 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -14,7 +14,8 @@ "diff": "^5.1.0", "diff2html": "^3.4.35", "highlight.js": "^11.7.0", - "prisma": "^4.13.0" + "prisma": "^4.13.0", + "zod": "^3.21.4" }, "devDependencies": { "@sveltejs/adapter-auto": "^2.0.1", @@ -3210,6 +3211,14 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "3.21.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz", + "integrity": "sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/web/package.json b/web/package.json index a74fadc..3150bcf 100644 --- a/web/package.json +++ b/web/package.json @@ -37,6 +37,7 @@ "diff": "^5.1.0", "diff2html": "^3.4.35", "highlight.js": "^11.7.0", - "prisma": "^4.13.0" + "prisma": "^4.13.0", + "zod": "^3.21.4" } } diff --git a/web/src/routes/diff-test/+page.svelte b/web/src/routes/diff-test/+page.svelte index 381eec6..4faa5fb 100644 --- a/web/src/routes/diff-test/+page.svelte +++ b/web/src/routes/diff-test/+page.svelte @@ -3,9 +3,16 @@ import 'diff2html/bundles/css/diff2html.min.css'; import { onMount } from 'svelte'; import type { PageData } from './$types'; + import type { DiffPostData } from './+server'; + import { goto } from '$app/navigation'; export let data: PageData; + let incorrectBtn: HTMLInputElement; + let correctBtn: HTMLInputElement; + let submitBtn: HTMLButtonElement; + let messageText: HTMLTextAreaElement; + onMount(() => { const diff2htmlUi = new Diff2HtmlUI(document.getElementById('diff')!, data.diff, { drawFileList: false, @@ -17,17 +24,25 @@ }); diff2htmlUi.draw(); - let incorrectBtn = document.getElementById('btn_incorrect')! as HTMLInputElement; - let correctBtn = document.getElementById('btn_correct')! as HTMLInputElement; - let submitBtn = document.getElementById('submit_btn')! as HTMLButtonElement; - - incorrectBtn?.addEventListener('change', () => { + incorrectBtn.addEventListener('change', () => { submitBtn.disabled = false; }); - correctBtn?.addEventListener('change', () => { + correctBtn.addEventListener('change', () => { submitBtn.disabled = false; }); }); + + async function onSubmitClick() { + if (incorrectBtn.checked) { + let data: DiffPostData = { correct: false, message: messageText.value }; + await fetch('/diff-test', { method: 'POST', body: JSON.stringify(data) }); + goto('/reviews'); + } else if (correctBtn.checked) { + let data: DiffPostData = { correct: true, message: messageText.value }; + await fetch('/diff-test', { method: 'POST', body: JSON.stringify(data) }); + goto('/reviews'); + } + } @@ -39,14 +54,38 @@ Back
+
Message
+