39 lines
1002 B
TypeScript
39 lines
1002 B
TypeScript
import { MutationTree } from "vuex";
|
|
import { NetworkState, ServerNetworkState, ClientNetworkState } from "./types";
|
|
import { LocalClient, PeerServer, PeerClient } from "@/network";
|
|
|
|
const mutations: MutationTree<NetworkState> = {
|
|
becomeServer(state, payload: { local: LocalClient; server: PeerServer }) {
|
|
state = {
|
|
...state,
|
|
peerType: "server",
|
|
local: payload.local,
|
|
server: payload.server
|
|
};
|
|
},
|
|
|
|
becomeClient(state, payload: { peer: PeerClient }) {
|
|
state = {
|
|
...state,
|
|
connectionStatus: "connecting",
|
|
peerType: "client",
|
|
peer: payload.peer
|
|
};
|
|
},
|
|
|
|
connected(state) {
|
|
(state as ClientNetworkState).connectionStatus = "connected";
|
|
},
|
|
|
|
disconnected(state) {
|
|
(state as ClientNetworkState).connectionStatus = "disconnected";
|
|
},
|
|
|
|
connectionError(state, error) {
|
|
(state as ClientNetworkState).connectionStatus = "error";
|
|
(state as ClientNetworkState).connectionError = error;
|
|
}
|
|
};
|
|
|
|
export default mutations;
|