aboutsummaryrefslogtreecommitdiff
path: root/src_frontend/Components/Editor/Output.svelte
diff options
context:
space:
mode:
authorJakob Stendahl <14180120+JakobST1n@users.noreply.github.com>2021-10-11 20:02:04 +0200
committerGitHub <noreply@github.com>2021-10-11 20:02:04 +0200
commitc67531161e56488166a33232f87566309ba8676e (patch)
tree846e59a020e80bea48557d5a06af5728e44961ff /src_frontend/Components/Editor/Output.svelte
parente6880cd8ccf82d993f222cb14b4860581654acb8 (diff)
parentc1b6eec770b885a9829e1f62bad5cc99389ca429 (diff)
downloadLuxcena-Neo-c67531161e56488166a33232f87566309ba8676e.tar.gz
Luxcena-Neo-c67531161e56488166a33232f87566309ba8676e.zip
Merge pull request #24 from JakobST1n/rebuild
v1.0.0
Diffstat (limited to 'src_frontend/Components/Editor/Output.svelte')
-rw-r--r--src_frontend/Components/Editor/Output.svelte56
1 files changed, 56 insertions, 0 deletions
diff --git a/src_frontend/Components/Editor/Output.svelte b/src_frontend/Components/Editor/Output.svelte
new file mode 100644
index 0000000..9e4c953
--- /dev/null
+++ b/src_frontend/Components/Editor/Output.svelte
@@ -0,0 +1,56 @@
+<script>
+ import { authorizedSocket, authorizedSocketNeeded } from "../../stores/socketStore";
+ authorizedSocketNeeded.set(true);
+
+ let scrollBox;
+ let htmlCode = "";
+
+ function addData(data, classname) {
+ // let styles = "white-space:pre-wrap;margin:0;";
+ // let styles = "overflow-x:auto;";
+ let styles = "";
+ switch (classname) {
+ case "exit":
+ styles += "color: green";
+ break;
+ case"stderr":
+ styles += "color: red";
+ break;
+ }
+ htmlCode += `<span style="${styles}">${data}</span>`;
+ if (scrollBox != null) {
+ scrollBox.scrollTop = scrollBox.scrollHeight + 100;
+ }
+ }
+
+ authorizedSocket.on("editor:proc:start", () => htmlCode = "");
+ authorizedSocket.on("editor:proc:exit", (code) => addData(`\nMode exited with ${code}\n\n`, "exit"));
+ authorizedSocket.on("editor:proc:stdout", (stdout) => addData(stdout, "stdout"));
+ authorizedSocket.on("editor:proc:stderr", (stderr) => addData(stderr, "stderr"));
+</script>
+
+<style>
+ div {
+ height: 100%;
+ width: 100%;
+ }
+ pre {
+ height: 100%;
+ width: calc(100vw - 30px);
+ overflow: auto;
+ padding: 15px;
+ margin: 0;
+ box-sizing: border-box;
+ }
+ @media (min-width: 800px) {
+ pre {
+ width: calc(100vw - 360px);
+ }
+ }
+</style>
+
+<div>
+ <pre bind:this={scrollBox}>
+ {@html htmlCode}
+ </pre>
+</div>