70 lines
2.1 KiB
TypeScript
70 lines
2.1 KiB
TypeScript
// Facade store — re-exports auth, sync, and server stores for backward compatibility.
|
|
// All 29+ files that import useAppStore() continue to work without changes.
|
|
// Uses defineStore with computed/writableComputed to preserve full reactivity.
|
|
|
|
import { defineStore, storeToRefs } from 'pinia'
|
|
import { useAuthStore } from './auth'
|
|
import { useSyncStore } from './sync'
|
|
import { useServerStore } from './server'
|
|
|
|
export const useAppStore = defineStore('app', () => {
|
|
const auth = useAuthStore()
|
|
const sync = useSyncStore()
|
|
const server = useServerStore()
|
|
|
|
// Writable refs — delegate reads and writes to the sub-stores
|
|
const { isAuthenticated, isLoading, error } = storeToRefs(auth)
|
|
const { data, isConnected, isReconnecting } = storeToRefs(sync)
|
|
|
|
// Read-only computed — delegate to sub-stores
|
|
const { serverInfo, packages, peerHealth, uiData } = storeToRefs(sync)
|
|
const { serverName, isRestarting, isShuttingDown, isOffline } = storeToRefs(server)
|
|
|
|
return {
|
|
// Auth state (writable refs)
|
|
isAuthenticated,
|
|
isLoading,
|
|
error,
|
|
|
|
// Sync state (writable refs)
|
|
data,
|
|
isConnected,
|
|
isReconnecting,
|
|
|
|
// Sync computed (read-only)
|
|
serverInfo,
|
|
packages,
|
|
peerHealth,
|
|
uiData,
|
|
|
|
// Server computed (read-only)
|
|
serverName,
|
|
isRestarting,
|
|
isShuttingDown,
|
|
isOffline,
|
|
|
|
// Auth actions
|
|
login: auth.login,
|
|
completeLoginAfterTotp: auth.completeLoginAfterTotp,
|
|
logout: auth.logout,
|
|
checkSession: auth.checkSession,
|
|
needsSessionValidation: auth.needsSessionValidation,
|
|
|
|
// Sync actions
|
|
connectWebSocket: sync.connectWebSocket,
|
|
|
|
// Server actions
|
|
installPackage: server.installPackage,
|
|
uninstallPackage: server.uninstallPackage,
|
|
startPackage: server.startPackage,
|
|
stopPackage: server.stopPackage,
|
|
restartPackage: server.restartPackage,
|
|
updateServer: server.updateServer,
|
|
restartServer: server.restartServer,
|
|
shutdownServer: server.shutdownServer,
|
|
getMetrics: server.getMetrics,
|
|
getMarketplace: server.getMarketplace,
|
|
updateServerName: server.updateServerName,
|
|
}
|
|
})
|