From b0530be5010494f2db3deded340c16a6dc3cbe56 Mon Sep 17 00:00:00 2001
From: Ilion Beyst <ilion.beyst@gmail.com>
Date: Sat, 12 Nov 2022 12:51:58 +0100
Subject: collapse PlayerLog entries

---
 .../src/lib/components/log_viewer/PlayerLog.svelte | 39 ++++++++++++++++++++++
 1 file changed, 39 insertions(+)
 create mode 100644 web/pw-server/src/lib/components/log_viewer/PlayerLog.svelte

(limited to 'web/pw-server/src/lib/components/log_viewer/PlayerLog.svelte')

diff --git a/web/pw-server/src/lib/components/log_viewer/PlayerLog.svelte b/web/pw-server/src/lib/components/log_viewer/PlayerLog.svelte
new file mode 100644
index 0000000..450fdf2
--- /dev/null
+++ b/web/pw-server/src/lib/components/log_viewer/PlayerLog.svelte
@@ -0,0 +1,39 @@
+<script lang="ts">
+  import { parsePlayerLog, PlayerLog } from "$lib/log_parser";
+  import LogTurn from "./LogTurn.svelte";
+
+  export let matchLog: string;
+  export let playerId: number;
+
+  let playerLog: PlayerLog;
+  let showRawStderr = false;
+
+  $: if (matchLog) {
+    playerLog = parsePlayerLog(playerId, matchLog);
+  } else {
+    playerLog = [];
+  }
+</script>
+
+<div class="output">
+  {#if showRawStderr}
+    <div class="output-text stderr-text">
+      {playerLog.flatMap((turn) => turn.stderr).join("\n")}
+    </div>
+  {:else}
+    <!-- The log should be rerendered when playerId changes -->
+    {#key playerId}
+    <div class="log-contents">
+      {#each playerLog as logTurn, turnNum}
+        <LogTurn {logTurn} {turnNum} />
+      {/each}
+    </div>
+    {/key}
+  {/if}
+</div>
+
+<style lang="scss">
+  .output {
+    background-color: rgb(41, 41, 41);
+  }
+</style>
-- 
cgit v1.2.3

