diff --git a/extensions/mutedeck/src/commands/show-status.tsx b/extensions/mutedeck/src/commands/show-status.tsx index 29de90edb2a..288f43a63b9 100644 --- a/extensions/mutedeck/src/commands/show-status.tsx +++ b/extensions/mutedeck/src/commands/show-status.tsx @@ -1,5 +1,5 @@ -import { showToast, Toast } from "@raycast/api"; -import { useEffect, useState } from "react"; +import { showToast, Toast, updateCommandMetadata } from '@raycast/api'; +import { useEffect } from 'react'; import { getStatus, isInMeeting, @@ -7,55 +7,33 @@ import { isMuteDeckRunning, isVideoOn, type MuteDeckStatus, -} from "../utils/api"; - -interface State { - status: MuteDeckStatus | null; - isLoading: boolean; - error: Error | null; -} +} from '../utils/api'; export default function Command(): void { - const [state, setState] = useState({ - status: null, - isLoading: true, - error: null, - }); - async function fetchStatus(): Promise { try { const status = await getStatus(); - setState((prev) => ({ ...prev, status, isLoading: false })); - - // Update command metadata - Command.subtitle = getStatusText(status); + await updateCommandMetadata({ subtitle: getStatusText(status) }); } catch (error) { - setState((prev) => ({ - ...prev, - error: - error instanceof Error ? error : new Error("Failed to fetch status"), - isLoading: false, - })); - showToast({ style: Toast.Style.Failure, - title: "Failed to Get Status", - message: error instanceof Error ? error.message : "Unknown error", + title: 'Failed to Get Status', + message: error instanceof Error ? error.message : 'Unknown error', }); } } function getStatusText(status: MuteDeckStatus): string { if (!isMuteDeckRunning(status)) { - return "Not Running"; + return 'Not Running'; } if (!isInMeeting(status)) { - return "Not in Meeting"; + return 'Not in Meeting'; } - const muted = isMuted(status) ? "Muted" : "Unmuted"; - const video = isVideoOn(status) ? "Video On" : "Video Off"; + const muted = isMuted(status) ? 'Muted' : 'Unmuted'; + const video = isVideoOn(status) ? 'Video On' : 'Video Off'; return `${muted}, ${video}`; }