moved user presence status into global state

This commit is contained in:
2026-03-07 02:18:25 +08:00
parent c3e39e7d9a
commit 2bf8581095
2 changed files with 13 additions and 32 deletions

View File

@@ -7,38 +7,12 @@
import { sceneInteractive } from "../../events/scene-interactive";
import {
friendsUserStatuses,
type UserStatus,
currentUserStatus,
} from "../../events/user-status";
import { invoke } from "@tauri-apps/api/core";
import { listen } from "@tauri-apps/api/event";
import { AppEvents } from "../../types/bindings/AppEventsConstants";
import { onMount } from "svelte";
import type { PresenceStatus } from "../../types/bindings/PresenceStatus";
import DebugBar from "./components/debug-bar.svelte";
let innerWidth = $state(0);
let innerHeight = $state(0);
let isInteractive = $derived($sceneInteractive);
let presenceStatus: PresenceStatus | null = $state(null);
onMount(() => {
const unlisten = listen<UserStatus>(
AppEvents.UserStatusChanged,
(event) => {
presenceStatus = event.payload.presenceStatus;
},
);
return () => {
unlisten.then((u) => u());
};
});
</script>
<svelte:window bind:innerWidth bind:innerHeight />
<div class="w-svw h-svh p-4 relative overflow-hidden">
<button
class="absolute inset-0 z-10 size-full"
@@ -50,13 +24,11 @@
});
}}>&nbsp;</button
>
<div
id="debug-bar"
>
<div id="debug-bar">
<DebugBar
{isInteractive}
isInteractive={$sceneInteractive}
cursorPosition={$cursorPositionOnScreen}
{presenceStatus}
presenceStatus={$currentUserStatus?.presenceStatus ?? null}
friendsCursorPositions={$friendsCursorPositions}
friends={$appData?.friends ?? []}
friendsUserStatuses={$friendsUserStatuses}