diff --git a/src/events/user-status.ts b/src/events/user-status.ts index 42cd622..14239f9 100644 --- a/src/events/user-status.ts +++ b/src/events/user-status.ts @@ -15,6 +15,7 @@ export type UserStatus = { }; export const friendsUserStatuses = writable>({}); +export const currentUserStatus = writable(null); const subscription = createMultiListenerSubscription(); @@ -58,6 +59,14 @@ export async function initUserStatusListeners() { ); subscription.addUnlisten(unlistenStatus); + const unlistenUserStatusChanged = await listen( + AppEvents.UserStatusChanged, + (event) => { + currentUserStatus.set(event.payload); + }, + ); + subscription.addUnlisten(unlistenUserStatusChanged); + const unlistenFriendDisconnected = await listen< [{ userId: string }] | { userId: string } | string >(AppEvents.FriendDisconnected, (event) => { diff --git a/src/routes/scene/+page.svelte b/src/routes/scene/+page.svelte index a1bbe05..68a3408 100644 --- a/src/routes/scene/+page.svelte +++ b/src/routes/scene/+page.svelte @@ -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( - AppEvents.UserStatusChanged, - (event) => { - presenceStatus = event.payload.presenceStatus; - }, - ); - - return () => { - unlisten.then((u) => u()); - }; - }); - -
-
+