aboutsummaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
Diffstat (limited to 'web')
-rw-r--r--web/pw-server/src/hooks.js10
-rw-r--r--web/pw-server/src/lib/components/RulesView.svelte1
-rw-r--r--web/pw-server/src/lib/components/navbar/UserControls.svelte3
-rw-r--r--web/pw-server/src/lib/utils.ts35
-rw-r--r--web/pw-server/src/routes/matches/new.svelte4
-rw-r--r--web/pw-server/src/routes/submission_matches/[match_id].svelte31
6 files changed, 44 insertions, 40 deletions
diff --git a/web/pw-server/src/hooks.js b/web/pw-server/src/hooks.js
index c5785ed..7916c84 100644
--- a/web/pw-server/src/hooks.js
+++ b/web/pw-server/src/hooks.js
@@ -1,8 +1,8 @@
/** @type {import('@sveltejs/kit').Handle} */
export async function handle({ event, resolve }) {
- const response = await resolve(event, {
- ssr: false,
- });
+ const response = await resolve(event, {
+ ssr: false,
+ });
- return response;
-} \ No newline at end of file
+ return response;
+}
diff --git a/web/pw-server/src/lib/components/RulesView.svelte b/web/pw-server/src/lib/components/RulesView.svelte
index c3cf125..58e6bf2 100644
--- a/web/pw-server/src/lib/components/RulesView.svelte
+++ b/web/pw-server/src/lib/components/RulesView.svelte
@@ -64,7 +64,6 @@
padding: 15px;
overflow-y: scroll;
height: 100%;
- margin-bottom: 200px;
box-sizing: border-box;
}
</style>
diff --git a/web/pw-server/src/lib/components/navbar/UserControls.svelte b/web/pw-server/src/lib/components/navbar/UserControls.svelte
index 3c1d181..0b8413d 100644
--- a/web/pw-server/src/lib/components/navbar/UserControls.svelte
+++ b/web/pw-server/src/lib/components/navbar/UserControls.svelte
@@ -1,5 +1,5 @@
<script lang="ts">
- import { get_session_token } from "$lib/auth";
+ import { get_session_token, clear_session_token } from "$lib/auth";
import { currentUser } from "$lib/stores/current_user";
import { onMount } from "svelte";
@@ -30,6 +30,7 @@
function signOut() {
// TODO: destroy session on server
currentUser.set(null);
+ clear_session_token();
}
</script>
diff --git a/web/pw-server/src/lib/utils.ts b/web/pw-server/src/lib/utils.ts
index aab9734..155d952 100644
--- a/web/pw-server/src/lib/utils.ts
+++ b/web/pw-server/src/lib/utils.ts
@@ -1,3 +1,5 @@
+import { get_session_token } from "./auth";
+
export function debounce(func: Function, timeout: number = 300) {
let timer: ReturnType<typeof setTimeout>;
return (...args: any[]) => {
@@ -7,3 +9,36 @@ export function debounce(func: Function, timeout: number = 300) {
}, timeout);
};
}
+
+export async function get(url: string, fetch_fn: Function = fetch) {
+ const headers = { "Content-Type": "application/json" };
+
+ const token = get_session_token();
+ if (token) {
+ headers["Authorization"] = `Bearer ${token}`;
+ }
+
+ const response = await fetch_fn(url, {
+ method: "GET",
+ headers,
+ });
+
+ return JSON.parse(response);
+}
+
+export async function post(url: string, data: any, fetch_fn: Function = fetch) {
+ const headers = { "Content-Type": "application/json" };
+
+ const token = get_session_token();
+ if (token) {
+ headers["Authorization"] = `Bearer ${token}`;
+ }
+
+ const response = await fetch_fn(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(data),
+ });
+
+ return JSON.parse(response);
+}
diff --git a/web/pw-server/src/routes/matches/new.svelte b/web/pw-server/src/routes/matches/new.svelte
index eed3dbb..ebc0e15 100644
--- a/web/pw-server/src/routes/matches/new.svelte
+++ b/web/pw-server/src/routes/matches/new.svelte
@@ -28,7 +28,7 @@
<script lang="ts">
import Select from "svelte-select";
-import { goto } from "$app/navigation";
+ import { goto } from "$app/navigation";
export let bots: object[];
let items: object[];
let players: object[] = [];
@@ -65,7 +65,7 @@ import { goto } from "$app/navigation";
if (res.ok) {
// TODO
- goto("/matches")
+ goto("/matches");
} else {
alert(res.statusText);
}
diff --git a/web/pw-server/src/routes/submission_matches/[match_id].svelte b/web/pw-server/src/routes/submission_matches/[match_id].svelte
deleted file mode 100644
index 586b2c2..0000000
--- a/web/pw-server/src/routes/submission_matches/[match_id].svelte
+++ /dev/null
@@ -1,31 +0,0 @@
-<script lang="ts" context="module">
- export async function load({ page }) {
- const res = await fetch(`/api/submission_match_log/${page.params["match_id"]}`, {
- headers: {
- "Content-Type": "application/json",
- },
- });
-
- if (res.ok) {
- return {
- props: {
- matchLog: await res.text(),
- },
- };
- }
-
- return {
- status: res.status,
- error: new Error("failed to load match"),
- };
- }
-</script>
-
-<script lang="ts">
- import Visualizer from "$lib/components/Visualizer.svelte";
- export let matchLog: string;
-</script>
-
-<div>
- <Visualizer {matchLog} />
-</div>