import { create } from 'zustand'; import { remoteControlService } from '@/services/remoteControlService'; interface RemoteControlState { isServerRunning: boolean; serverUrl: string | null; error: string | null; startServer: () => Promise; stopServer: () => void; isModalVisible: boolean; showModal: () => void; hideModal: () => void; lastMessage: string | null; setMessage: (message: string) => void; } export const useRemoteControlStore = create((set, get) => ({ isServerRunning: false, serverUrl: null, error: null, isModalVisible: false, lastMessage: null, startServer: async () => { if (get().isServerRunning) { return; } try { const url = await remoteControlService.startServer(); console.log(`[RemoteControlStore] Server started, URL: ${url}`); set({ isServerRunning: true, serverUrl: url, error: null }); } catch (e: any) { const errorMessage = e.message || 'Failed to start server'; console.error('[RemoteControlStore] Failed to start server:', errorMessage); set({ error: errorMessage }); } }, stopServer: () => { if (get().isServerRunning) { remoteControlService.stopServer(); set({ isServerRunning: false, serverUrl: null }); } }, showModal: () => set({ isModalVisible: true }), hideModal: () => set({ isModalVisible: false }), setMessage: (message: string) => { set({ lastMessage: `${message}_${Date.now()}` }); }, }));