浏览代码

Introduce the "Reset disk" button

Alessandro Pignotti 8 月之前
父节点
当前提交
8055466b7a
共有 4 个文件被更改,包括 31 次插入3 次删除
  1. 1 0
      postcss.config.js
  2. 25 1
      src/lib/DiskTab.svelte
  3. 1 1
      src/lib/SideBar.svelte
  4. 4 1
      src/lib/WebVM.svelte

+ 1 - 0
postcss.config.js

@@ -16,6 +16,7 @@ export default {
 				case '.fa-github:before':
 				case '.fa-star:before':
 				case '.fa-circle:before':
+				case '.fa-trash-can:before':
 					return false;
 			}
 			return true;

+ 25 - 1
src/lib/DiskTab.svelte

@@ -1,8 +1,32 @@
 <script>
+	import PanelButton from './PanelButton.svelte';
+	import { createEventDispatcher } from 'svelte';
 	import { diskLatency } from './activities.js'
+	var dispatch = createEventDispatcher();
+	let state = "START";
+	function handleReset()
+	{
+		if(state == "START")
+			state = "CONFIRM";
+		else
+			dispatch('reset');
+	}
+	function getButtonText()
+	{
+		if(state == "START")
+			return "Reset disk";
+		else
+			return "Confirm?"
+	}
 </script>
 <h1 class="text-lg font-bold">Disk</h1>
-<p><span class="font-bold">Backend latency: </span>{$diskLatency}ms</p>
+<PanelButton buttonIcon="fa-solid fa-trash-can" clickHandler={handleReset} buttonText={getButtonText(state)} bgColor="bg-red-900" hoverColor="hover:bg-red-700">
+</PanelButton>
+{#if state == "CONFIRM"}
+	<p><span class="font-bold">Warning: </span>WebVM will reload</p>
+{:else}
+	<p><span class="font-bold">Backend latency: </span>{$diskLatency}ms</p>
+{/if}
 <p>WebVM runs on top of a complete Linux distribution</p>
 <p>Filesystems up to 2GB are supported and data is downloaded completely on-demand</p>
 <p>The WebVM cloud backend uses WebSockets and a it's distributed via a global CDN to minimize download latency</p>

+ 1 - 1
src/lib/SideBar.svelte

@@ -52,7 +52,7 @@
 		{:else if activeInfo === 'CPU'}
 			<CpuTab/>
 		{:else if activeInfo === 'Disk'}
-			<DiskTab/>
+			<DiskTab on:reset/>
 		{:else if activeInfo === 'Discord'}
 			<DiscordTab/>
 		{:else if activeInfo === 'GitHub'}

+ 4 - 1
src/lib/WebVM.svelte

@@ -282,12 +282,15 @@
 		await cx.networkLogin();
 		w.location.href = await startLogin();
 	}
+	async function handleReset()
+	{
+	}
 </script>
 
 <main class="relative w-full h-full">
 	<Nav />
 	<div class="absolute top-10 bottom-0 left-0 right-0">
-		<SideBar on:connect={handleConnect}/>
+		<SideBar on:connect={handleConnect} on:reset={handleReset}/>
 		{#if configObj.needsDisplay}
 			<canvas class="absolute top-0 bottom-0 left-14 right-0" width="1024" height="768" id="display"></canvas>
 		{/if}