2017-05-18 16:08:54 -04:00
|
|
|
"use strict";
|
|
|
|
|
2019-11-11 16:39:09 -05:00
|
|
|
import Vue from "vue";
|
|
|
|
|
2019-11-16 12:24:03 -05:00
|
|
|
import socket from "../socket";
|
|
|
|
import store from "../store";
|
|
|
|
import {switchToChannel} from "../router";
|
2017-05-18 16:08:54 -04:00
|
|
|
|
2020-03-21 16:55:36 -04:00
|
|
|
socket.on("network", function (data) {
|
2018-07-12 14:33:52 -04:00
|
|
|
const network = data.networks[0];
|
2017-05-18 16:08:54 -04:00
|
|
|
|
2018-07-12 15:06:17 -04:00
|
|
|
network.isJoinChannelShown = false;
|
|
|
|
network.isCollapsed = false;
|
2019-11-12 10:51:40 -05:00
|
|
|
network.channels.forEach(store.getters.initChannel);
|
2018-07-12 15:06:17 -04:00
|
|
|
|
2019-11-02 15:40:59 -04:00
|
|
|
store.commit("networks", [...store.state.networks, network]);
|
2020-01-16 11:07:16 -05:00
|
|
|
|
|
|
|
// Open last channel specified in `join`
|
|
|
|
switchToChannel(network.channels[network.channels.length - 1]);
|
2017-05-18 16:08:54 -04:00
|
|
|
});
|
|
|
|
|
2020-03-21 16:55:36 -04:00
|
|
|
socket.on("network:options", function (data) {
|
2019-11-03 09:59:43 -05:00
|
|
|
const network = store.getters.findNetwork(data.network);
|
2019-11-02 15:40:59 -04:00
|
|
|
|
|
|
|
if (network) {
|
|
|
|
network.serverOptions = data.serverOptions;
|
|
|
|
}
|
2017-05-18 16:08:54 -04:00
|
|
|
});
|
2018-02-19 06:12:01 -05:00
|
|
|
|
2020-03-21 16:55:36 -04:00
|
|
|
socket.on("network:status", function (data) {
|
2019-11-03 09:59:43 -05:00
|
|
|
const network = store.getters.findNetwork(data.network);
|
2018-09-19 10:48:13 -04:00
|
|
|
|
|
|
|
if (!network) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2018-07-06 14:15:15 -04:00
|
|
|
network.status.connected = data.connected;
|
|
|
|
network.status.secure = data.secure;
|
2018-07-19 14:03:53 -04:00
|
|
|
|
|
|
|
if (!data.connected) {
|
2018-08-24 04:29:03 -04:00
|
|
|
network.channels.forEach((channel) => {
|
|
|
|
channel.users = [];
|
|
|
|
channel.state = 0;
|
|
|
|
});
|
2018-07-19 14:03:53 -04:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2020-03-21 16:55:36 -04:00
|
|
|
socket.on("channel:state", function (data) {
|
2019-11-03 09:59:43 -05:00
|
|
|
const channel = store.getters.findChannel(data.chan);
|
2018-07-19 14:03:53 -04:00
|
|
|
|
|
|
|
if (channel) {
|
|
|
|
channel.channel.state = data.state;
|
|
|
|
}
|
2018-02-19 06:12:01 -05:00
|
|
|
});
|
2018-03-15 04:37:32 -04:00
|
|
|
|
2020-03-21 16:55:36 -04:00
|
|
|
socket.on("network:info", function (data) {
|
2019-11-03 09:59:43 -05:00
|
|
|
const network = store.getters.findNetwork(data.uuid);
|
2019-11-02 14:45:00 -04:00
|
|
|
|
|
|
|
if (!network) {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
for (const key in data) {
|
2019-11-11 16:39:09 -05:00
|
|
|
Vue.set(network, key, data[key]);
|
2019-11-02 14:45:00 -04:00
|
|
|
}
|
2018-03-15 04:37:32 -04:00
|
|
|
});
|
2019-10-28 12:11:45 -04:00
|
|
|
|
|
|
|
socket.on("network:name", function (data) {
|
|
|
|
const network = store.getters.findNetwork(data.uuid);
|
|
|
|
network.name = network.channels[0].name = data.name;
|
|
|
|
});
|