2019-05-29 05:48:41 +02:00
|
|
|
import {SettingsCookie} from "data";
|
2019-05-30 07:06:17 +02:00
|
|
|
import {BDV2, DiscordModules} from "modules";
|
2019-05-29 05:48:41 +02:00
|
|
|
import {PublicServers} from "ui";
|
|
|
|
|
|
|
|
export default new class {
|
|
|
|
|
|
|
|
initialize() {
|
|
|
|
const wrapper = BDV2.guildClasses.wrapper.split(" ")[0];
|
|
|
|
const guilds = $(`.${wrapper} .scroller-2FKFPG >:first-child`);
|
|
|
|
guilds.after(this.button);
|
|
|
|
}
|
|
|
|
|
|
|
|
get component() {
|
2019-05-30 07:06:17 +02:00
|
|
|
return DiscordModules.React.createElement(PublicServers.Layer, {
|
2019-05-29 05:48:41 +02:00
|
|
|
rootId: "pubslayerroot",
|
|
|
|
id: "pubslayer",
|
2019-05-30 07:06:17 +02:00
|
|
|
children: DiscordModules.React.createElement(PublicServers.Menu, {rootId: "pubslayerroot"})
|
2019-05-29 05:48:41 +02:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
get root() {
|
2019-05-29 06:29:15 +02:00
|
|
|
const _root = document.getElementById("pubslayerroot");
|
2019-05-29 05:48:41 +02:00
|
|
|
if (!_root) {
|
|
|
|
if (!this.injectRoot()) return null;
|
|
|
|
return this.root;
|
|
|
|
}
|
|
|
|
return _root;
|
|
|
|
}
|
|
|
|
|
|
|
|
injectRoot() {
|
|
|
|
if (!$(".layers, .layers-3iHuyZ").length) return false;
|
|
|
|
$(".layers, .layers-3iHuyZ").append($("<div/>", {
|
|
|
|
id: "pubslayerroot"
|
|
|
|
}));
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
render() {
|
|
|
|
// BdApi.alert("Broken", "Sorry but the Public Servers modules is currently broken, I recommend disabling this feature for now.");
|
2019-05-29 06:29:15 +02:00
|
|
|
const root = this.root;
|
2019-05-29 05:48:41 +02:00
|
|
|
if (!root) {
|
|
|
|
console.log("FAILED TO LOCATE ROOT: .layers");
|
|
|
|
return;
|
|
|
|
}
|
2019-05-30 07:06:17 +02:00
|
|
|
DiscordModules.ReactDOM.render(this.component, root);
|
2019-05-29 05:48:41 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
get button() {
|
2019-05-29 06:29:15 +02:00
|
|
|
const btn = $("<div/>", {
|
2019-05-29 05:48:41 +02:00
|
|
|
"class": BDV2.guildClasses.listItem,
|
|
|
|
"id": "bd-pub-li",
|
|
|
|
"style": SettingsCookie["bda-gs-1"] ? "" : "display: none;"
|
|
|
|
}).append($("<div/>", {
|
|
|
|
"class": "wrapper-25eVIn " + BDV2.guildClasses.circleButtonMask,
|
|
|
|
"text": "public",
|
|
|
|
"id": "bd-pub-button",
|
|
|
|
"click": () => { this.render(); }
|
|
|
|
}));
|
|
|
|
|
|
|
|
return btn;
|
|
|
|
}
|
|
|
|
};
|