import { Client } from "@/network"; import { GetterTree } from "vuex"; import { AppState } from "../types"; import { NetworkState } from "./types"; const getters: GetterTree = { peerID(state): string | null { switch (state.peerType) { case "server": return state.server.id; case "client": return state.peer.id; } return null; }, sessionID(state): string | null { return state.serverID; }, client(state): Client | null { switch (state.peerType) { case "server": return state.local; case "client": return state.peer; } return null; }, connectionType(state): "client" | "server" | "none" { return state.peerType; }, busy(state): boolean { if (state.peerType == "client") { if (state.connectionStatus == "connecting") { return true; } } return false; }, inRoom(state): boolean { if (state.peerType == "client") { return state.connectionStatus == "connected"; } if (state.peerType == "server") { return true; } return false; }, players(state): string[] { return state.players; } }; export default getters;