From e01ffeb3db16c76720f9e57b0223e63f42f47fc5 Mon Sep 17 00:00:00 2001
From: Alessandro Pignotti <a.pignotti@sssup.it>
Date: Thu, 17 Oct 2024 11:20:51 +0200
Subject: [PATCH] Restore the information tab

With a high-level overview of the moving parts of WebVM
---
 src/lib/InformationTab.svelte | 10 ++++++++++
 src/lib/SideBar.svelte        |  7 +++++--
 2 files changed, 15 insertions(+), 2 deletions(-)
 create mode 100644 src/lib/InformationTab.svelte

diff --git a/src/lib/InformationTab.svelte b/src/lib/InformationTab.svelte
new file mode 100644
index 0000000..ad28d3f
--- /dev/null
+++ b/src/lib/InformationTab.svelte
@@ -0,0 +1,10 @@
+<h1 class="text-lg font-bold">Information</h1>
+<img src="assets/webvm_hero.png" alt="WebVM Logo" class="w-full self-center">
+<p>WebVM is a virtual Linux environment running in the browser via WebAssembly</p>
+<p>It is based on:</p>
+<ul class="list-disc list-inside">
+	<li><a class="underline" target="_blank" href="https://cheerpx.io/">CheerpX</a>: x86 JIT in Wasm</li>
+	<li><a class="underline" target="_blank" href="https://xtermjs.org/">Xterm.js</a>: interactive terminal</li>
+	<li>Local/private <a class="underline" target="_blank" href="https://cheerpx.io/docs/guides/File-System-support">file storage</a></li>
+	<li><a class="underline" target="_blank" href="https://cheerpx.io/docs/guides/Networking">Networking</a> via <a class="underline" target="_blank" href="https://tailscale.com/">Tailscale</a></li>
+</ul>
diff --git a/src/lib/SideBar.svelte b/src/lib/SideBar.svelte
index 6133d45..6a40181 100644
--- a/src/lib/SideBar.svelte
+++ b/src/lib/SideBar.svelte
@@ -1,5 +1,6 @@
 <script>
 	import Icon from './Icon.svelte';
+	import InformationTab from './InformationTab.svelte';
 	import NetworkingTab from './NetworkingTab.svelte';
 	import CpuTab from './CpuTab.svelte';
 	import DiskTab from './DiskTab.svelte';
@@ -8,7 +9,7 @@
 	import { cpuActivity, diskActivity } from './activities.js'
 
 	const icons = [
-		//{ icon: 'fas fa-info-circle', info: 'Information', activity: null },
+		{ icon: 'fas fa-info-circle', info: 'Information', activity: null },
 		{ icon: 'fas fa-wifi', info: 'Networking', activity: null },
 		{ icon: 'fas fa-microchip', info: 'CPU', activity: cpuActivity },
 		{ icon: 'fas fa-compact-disc', info: 'Disk', activity: diskActivity },
@@ -44,7 +45,9 @@
 		{/each}
 	</div>
 	<div class="flex flex-col gap-5 shrink-0 w-60 h-full z-10 p-2 bg-neutral-600 text-gray-100" class:hidden={!activeInfo}>
-		{#if activeInfo === 'Networking'}
+		{#if activeInfo === 'Information'}
+			<InformationTab/>
+		{:else if activeInfo === 'Networking'}
 			<NetworkingTab on:connect/>
 		{:else if activeInfo === 'CPU'}
 			<CpuTab/>