aboutsummaryrefslogtreecommitdiff
path: root/web/pw-server/src/routes/index.svelte
diff options
context:
space:
mode:
authorIlion Beyst <ilion.beyst@gmail.com>2022-02-07 20:56:08 +0100
committerIlion Beyst <ilion.beyst@gmail.com>2022-02-07 20:56:08 +0100
commit4feebe50430236a331b439c31af13d0d390be805 (patch)
tree70ea366cb9b2f105599a6ca5805e86737c9aed36 /web/pw-server/src/routes/index.svelte
parentd45699189ecafe30500fd7770a45b5043077f58b (diff)
downloadplanetwars.dev-4feebe50430236a331b439c31af13d0d390be805.tar.xz
planetwars.dev-4feebe50430236a331b439c31af13d0d390be805.zip
keep persistent EditorSession on demo page
Diffstat (limited to 'web/pw-server/src/routes/index.svelte')
-rw-r--r--web/pw-server/src/routes/index.svelte37
1 files changed, 14 insertions, 23 deletions
diff --git a/web/pw-server/src/routes/index.svelte b/web/pw-server/src/routes/index.svelte
index bd9a597..76f6295 100644
--- a/web/pw-server/src/routes/index.svelte
+++ b/web/pw-server/src/routes/index.svelte
@@ -4,38 +4,35 @@
import { onMount } from "svelte";
import "./style.css";
- let editor;
+ import ace from "ace-builds/src-noconflict/ace?client";
+ import Editor from "$lib/components/Editor.svelte";
+ import type { Ace } from "ace-builds";
+
let matches = [];
let selectedMatchId: string | undefined = undefined;
let selectedMatchLog: string | undefined = undefined;
+ let editSession: Ace.EditSession;
+
onMount(async () => {
- await load_editor();
+ await init_editor();
});
- async function load_editor() {
- const ace = await import("ace-builds");
- const python_mode = await import("ace-builds/src-noconflict/mode-python");
- const gh_theme = await import("ace-builds/src-noconflict/theme-github");
-
- editor = ace.edit("editor");
- editor.getSession().setMode(new python_mode.Mode());
- editor.setTheme(gh_theme);
+ async function init_editor() {
+ const AcePythonMode = await import("ace-builds/src-noconflict/mode-python");
+ editSession = new ace.EditSession("");
+ editSession.setMode(new AcePythonMode.Mode());
}
async function submitCode() {
- if (editor === undefined) {
- return;
- }
-
let response = await fetch("/api/submit_bot", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
- code: editor.getValue(),
+ code: editSession.getDocument().getValue(),
}),
});
@@ -46,7 +43,7 @@
let responseData = await response.json();
let matchId = responseData["match_id"];
- // goto(`/submission_matches/${matchId}`);
+
matches.push({ matchId: matchId });
matches = matches;
}
@@ -72,7 +69,6 @@
function selectEditor() {
selectedMatchId = undefined;
selectedMatchLog = undefined;
- load_editor();
}
</script>
@@ -99,7 +95,7 @@
{#if selectedMatchLog !== undefined}
<Visualizer matchLog={selectedMatchLog} />
{:else}
- <div id="editor" />
+ <Editor {editSession} />
{/if}
</div>
<div class="sidebar-right">
@@ -144,11 +140,6 @@
overflow: hidden;
}
- #editor {
- width: 100%;
- height: 100%;
- }
-
.editor-container {
height: 100%;
}