aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/ui/src/App.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'ui/src/App.svelte')
-rw-r--r--ui/src/App.svelte27
1 files changed, 22 insertions, 5 deletions
diff --git a/ui/src/App.svelte b/ui/src/App.svelte
index 18ef5e5..0e14cb0 100644
--- a/ui/src/App.svelte
+++ b/ui/src/App.svelte
@@ -1,6 +1,7 @@
<script lang="ts">
import { invoke } from "@tauri-apps/api/core";
import { onMount } from "svelte";
+ import DownloadMonitor from "./lib/DownloadMonitor.svelte";
let status = "Ready";
@@ -48,8 +49,12 @@
async function login() {
if (currentAccount) {
if (confirm("Logout " + currentAccount.username + "?")) {
- currentAccount = null;
- // Note: Backend state persists until restarted or overwritten.
+ try {
+ await invoke("logout");
+ currentAccount = null;
+ } catch(e) {
+ console.error("Logout failed:", e);
+ }
}
return;
}
@@ -64,10 +69,21 @@
}
async function startGame() {
- status = "Launching (Simulated)...";
- console.log("Invoking start_game...");
+ if (!currentAccount) {
+ alert("Please login first!");
+ login();
+ return;
+ }
+
+ if (!selectedVersion) {
+ alert("Please select a version!");
+ return;
+ }
+
+ status = "Preparing to launch " + selectedVersion + "...";
+ console.log("Invoking start_game for version:", selectedVersion);
try {
- const msg = await invoke("start_game");
+ const msg = await invoke("start_game", { versionId: selectedVersion });
console.log("Response:", msg);
status = msg as string;
} catch (e) {
@@ -110,6 +126,7 @@
<!-- Main Content -->
<main class="flex-1 flex flex-col relative min-w-0">
+ <DownloadMonitor />
<!-- Top Bar (Window Controls Placeholder) -->
<div class="h-8 w-full bg-zinc-900/50 absolute top-0 left-0 z-50 drag-region" data-tauri-drag-region>
<!-- Windows/macOS controls would go here or be handled by OS -->