format & cleanup
This commit is contained in:
parent
a41b4c48cb
commit
39cec55bbe
6 changed files with 44 additions and 40 deletions
|
@ -1,8 +1,8 @@
|
||||||
/** @type {import('@sveltejs/kit').Handle} */
|
/** @type {import('@sveltejs/kit').Handle} */
|
||||||
export async function handle({ event, resolve }) {
|
export async function handle({ event, resolve }) {
|
||||||
const response = await resolve(event, {
|
const response = await resolve(event, {
|
||||||
ssr: false,
|
ssr: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
|
@ -64,7 +64,6 @@
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
overflow-y: scroll;
|
overflow-y: scroll;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
margin-bottom: 200px;
|
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<script lang="ts">
|
<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 { currentUser } from "$lib/stores/current_user";
|
||||||
|
|
||||||
import { onMount } from "svelte";
|
import { onMount } from "svelte";
|
||||||
|
@ -30,6 +30,7 @@
|
||||||
function signOut() {
|
function signOut() {
|
||||||
// TODO: destroy session on server
|
// TODO: destroy session on server
|
||||||
currentUser.set(null);
|
currentUser.set(null);
|
||||||
|
clear_session_token();
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import { get_session_token } from "./auth";
|
||||||
|
|
||||||
export function debounce(func: Function, timeout: number = 300) {
|
export function debounce(func: Function, timeout: number = 300) {
|
||||||
let timer: ReturnType<typeof setTimeout>;
|
let timer: ReturnType<typeof setTimeout>;
|
||||||
return (...args: any[]) => {
|
return (...args: any[]) => {
|
||||||
|
@ -7,3 +9,36 @@ export function debounce(func: Function, timeout: number = 300) {
|
||||||
}, timeout);
|
}, 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);
|
||||||
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import Select from "svelte-select";
|
import Select from "svelte-select";
|
||||||
import { goto } from "$app/navigation";
|
import { goto } from "$app/navigation";
|
||||||
export let bots: object[];
|
export let bots: object[];
|
||||||
let items: object[];
|
let items: object[];
|
||||||
let players: object[] = [];
|
let players: object[] = [];
|
||||||
|
@ -65,7 +65,7 @@ import { goto } from "$app/navigation";
|
||||||
|
|
||||||
if (res.ok) {
|
if (res.ok) {
|
||||||
// TODO
|
// TODO
|
||||||
goto("/matches")
|
goto("/matches");
|
||||||
} else {
|
} else {
|
||||||
alert(res.statusText);
|
alert(res.statusText);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>
|
|
Loading…
Reference in a new issue