bugfixes for last night
This commit is contained in:
parent
1f028f22c7
commit
eb4358e626
10
js/main.js
10
js/main.js
File diff suppressed because one or more lines are too long
|
@ -3,6 +3,7 @@ import {Settings, DataStore, React, WebpackModules, Events, DOMManager, Strings}
|
||||||
import CSSEditor from "../ui/customcss/csseditor";
|
import CSSEditor from "../ui/customcss/csseditor";
|
||||||
import FloatingWindowContainer from "../ui/floating/container";
|
import FloatingWindowContainer from "../ui/floating/container";
|
||||||
import SettingsTitle from "../ui/settings/title";
|
import SettingsTitle from "../ui/settings/title";
|
||||||
|
import Utilities from "../modules/utilities";
|
||||||
|
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
const electron = require("electron");
|
const electron = require("electron");
|
||||||
|
@ -42,10 +43,10 @@ export default new class CustomCSS extends Builtin {
|
||||||
})],
|
})],
|
||||||
onClick: (thisObject) => {
|
onClick: (thisObject) => {
|
||||||
if (this.isDetached) return;
|
if (this.isDetached) return;
|
||||||
if (this.nativeOpen) this.openNative();
|
if (this.nativeOpen) return this.openNative();
|
||||||
else if (this.startDetached) this.openDetached();
|
else if (this.startDetached) return this.openDetached();
|
||||||
else thisObject._reactInternalFiber.child.memoizedProps.children.props.onSetSection(Strings.Panels.customcss);
|
const settingsView = Utilities.findInRenderTree(thisObject._reactInternalFiber, m => m && m.onSetSection, {walkable: ["child", "memoizedProps", "props", "children"]});
|
||||||
this.setSection = thisObject._reactInternalFiber.child.memoizedProps.children.props.onSetSection;
|
if (settingsView && settingsView.onSetSection) settingsView.onSetSection(this.id);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
this.loadCSS();
|
this.loadCSS();
|
||||||
|
|
|
@ -13,7 +13,6 @@ export default new class ReactComponents {
|
||||||
get listeners() {return listeners;}
|
get listeners() {return listeners;}
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
this.walkReactTree(document.querySelector("#app-mount")._reactRootContainer._internalRoot.current);
|
|
||||||
Patcher.after("ReactComponents", React, "createElement", (_, __, returnValue) => {
|
Patcher.after("ReactComponents", React, "createElement", (_, __, returnValue) => {
|
||||||
this.walkRenderTree(returnValue);
|
this.walkRenderTree(returnValue);
|
||||||
});
|
});
|
||||||
|
@ -32,7 +31,9 @@ export default new class ReactComponents {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
initialize() {}
|
initialize() {
|
||||||
|
this.walkReactTree(document.querySelector("#app-mount")._reactRootContainer._internalRoot.current);
|
||||||
|
}
|
||||||
|
|
||||||
get(name, filter) {
|
get(name, filter) {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
|
|
|
@ -45,7 +45,7 @@ export default new class SettingsManager {
|
||||||
registerPanel(id, name, options) {
|
registerPanel(id, name, options) {
|
||||||
if (this.panels.find(p => p.id == id)) return Logger.error("Settings", "Already have a panel with id " + id);
|
if (this.panels.find(p => p.id == id)) return Logger.error("Settings", "Already have a panel with id " + id);
|
||||||
const {element, onClick, order = 1} = options;
|
const {element, onClick, order = 1} = options;
|
||||||
const section = {id, order, label: name, section: name};
|
const section = {id, order, label: name, section: id};
|
||||||
if (onClick) section.clickListener = onClick;
|
if (onClick) section.clickListener = onClick;
|
||||||
if (element) section.element = element instanceof DiscordModules.React.Component ? () => DiscordModules.React.createElement(element, {}) : typeof(element) == "function" ? element : () => element;
|
if (element) section.element = element instanceof DiscordModules.React.Component ? () => DiscordModules.React.createElement(element, {}) : typeof(element) == "function" ? element : () => element;
|
||||||
this.panels.push(section);
|
this.panels.push(section);
|
||||||
|
@ -124,12 +124,9 @@ export default new class SettingsManager {
|
||||||
}
|
}
|
||||||
|
|
||||||
onSettingChange(collection, category, id, value) {
|
onSettingChange(collection, category, id, value) {
|
||||||
// const before = this.collections.length + this.panels.length;
|
|
||||||
this.state[collection][category][id] = value;
|
this.state[collection][category][id] = value;
|
||||||
Events.dispatch("setting-updated", collection, category, id, value);
|
Events.dispatch("setting-updated", collection, category, id, value);
|
||||||
// const after = this.collections.length + this.panels.length;
|
|
||||||
this.saveSettings();
|
this.saveSettings();
|
||||||
// if (before != after) setTimeout(this.forceUpdate.bind(this), 50);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getSetting(collection, category, id) {
|
getSetting(collection, category, id) {
|
||||||
|
@ -171,7 +168,6 @@ export default new class SettingsManager {
|
||||||
for (let c = 0; c < this.collections.length; c++) {
|
for (let c = 0; c < this.collections.length; c++) {
|
||||||
const collection = this.collections[c];
|
const collection = this.collections[c];
|
||||||
const CS = Strings.Collections[collection.id];
|
const CS = Strings.Collections[collection.id];
|
||||||
console.log(CS);
|
|
||||||
if (!CS) continue;
|
if (!CS) continue;
|
||||||
collection.name = CS.name || collection.name;
|
collection.name = CS.name || collection.name;
|
||||||
const categories = this.collections[c].settings;
|
const categories = this.collections[c].settings;
|
||||||
|
@ -194,7 +190,7 @@ export default new class SettingsManager {
|
||||||
for (let p = 0; p < this.panels.length; p++) {
|
for (let p = 0; p < this.panels.length; p++) {
|
||||||
const panel = this.panels[p];
|
const panel = this.panels[p];
|
||||||
const Str = Strings.Panels[panel.id];
|
const Str = Strings.Panels[panel.id];
|
||||||
panel.name = Str || panel.name;
|
panel.label = Str || panel.label;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
|
@ -14,7 +14,6 @@ export function setLocale(newLocale) {
|
||||||
currentLocale = newLocale;
|
currentLocale = newLocale;
|
||||||
Utilities.extend(Messages, RawStrings[currentLocale]);
|
Utilities.extend(Messages, RawStrings[currentLocale]);
|
||||||
Events.emit("strings-updated");
|
Events.emit("strings-updated");
|
||||||
console.log("Changed to " + newLocale);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Utilities.extend(Messages, RawStrings[currentLocale]);
|
Utilities.extend(Messages, RawStrings[currentLocale]);
|
||||||
|
|
|
@ -28,7 +28,7 @@ export default class CssEditor extends React.Component {
|
||||||
{label: React.createElement(Save, {size: "18px"}), tooltip: Strings.CustomCSS.save, onClick: this.saveCss},
|
{label: React.createElement(Save, {size: "18px"}), tooltip: Strings.CustomCSS.save, onClick: this.saveCss},
|
||||||
{label: React.createElement(Edit, {size: "18px"}), tooltip: Strings.CustomCSS.openNative, onClick: this.openNative},
|
{label: React.createElement(Edit, {size: "18px"}), tooltip: Strings.CustomCSS.openNative, onClick: this.openNative},
|
||||||
{label: React.createElement(Cog, {size: "18px"}), tooltip: Strings.CustomCSS.settings, onClick: "showSettings"},
|
{label: React.createElement(Cog, {size: "18px"}), tooltip: Strings.CustomCSS.settings, onClick: "showSettings"},
|
||||||
{label: Strings.Collections.settings.developer.liveUpdate.name, type:"checkbox", onChange: this.toggleLiveUpdate, checked: Settings.get("settings", "customcss", "liveUpdate"), side: "right"}
|
{label: Strings.Collections.settings.customcss.liveUpdate.name, type:"checkbox", onChange: this.toggleLiveUpdate, checked: Settings.get("settings", "customcss", "liveUpdate"), side: "right"}
|
||||||
];
|
];
|
||||||
if (this.openDetached) this.controls.push({label: React.createElement(Detach, {size: "18px"}), tooltip: Strings.CustomCSS.openDetached, onClick: this.openDetached, side: "right"});
|
if (this.openDetached) this.controls.push({label: React.createElement(Detach, {size: "18px"}), tooltip: Strings.CustomCSS.openDetached, onClick: this.openDetached, side: "right"});
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,11 +11,20 @@ export default new class SettingsRenderer {
|
||||||
this.patchSections();
|
this.patchSections();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onChange(onChange) {
|
||||||
|
return (collection, category, id) => {
|
||||||
|
const before = Settings.collections.length + Settings.panels.length;
|
||||||
|
onChange(collection, category, id);
|
||||||
|
const after = Settings.collections.length + Settings.panels.length;
|
||||||
|
if (before != after) setTimeout(this.forceUpdate.bind(this), 50);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
buildSettingsPanel(title, config, state, onChange, button = null) {
|
buildSettingsPanel(title, config, state, onChange, button = null) {
|
||||||
config.forEach(section => {
|
config.forEach(section => {
|
||||||
section.settings.forEach(item => item.value = state[section.id][item.id]);
|
section.settings.forEach(item => item.value = state[section.id][item.id]);
|
||||||
});
|
});
|
||||||
return this.getSettingsPanel(title, config, onChange, button);
|
return this.getSettingsPanel(title, config, this.onChange(onChange), button);
|
||||||
}
|
}
|
||||||
|
|
||||||
getSettingsPanel(title, groups, onChange, button = null) {
|
getSettingsPanel(title, groups, onChange, button = null) {
|
||||||
|
@ -43,9 +52,7 @@ export default new class SettingsRenderer {
|
||||||
Patcher.after("SettingsManager", WebpackModules.getByDisplayName("FluxContainer(GuildSettings)").prototype, "render", (thisObject) => {
|
Patcher.after("SettingsManager", WebpackModules.getByDisplayName("FluxContainer(GuildSettings)").prototype, "render", (thisObject) => {
|
||||||
thisObject._reactInternalFiber.return.return.return.return.return.return.memoizedProps.id = "guild-settings";
|
thisObject._reactInternalFiber.return.return.return.return.return.return.memoizedProps.id = "guild-settings";
|
||||||
});
|
});
|
||||||
console.log("getting user settings")
|
|
||||||
const UserSettings = await ReactComponents.get("UserSettings", m => m.prototype && m.prototype.generateSections);
|
const UserSettings = await ReactComponents.get("UserSettings", m => m.prototype && m.prototype.generateSections);
|
||||||
console.log("got 'em")
|
|
||||||
Patcher.after("SettingsManager", UserSettings.prototype, "render", (thisObject) => {
|
Patcher.after("SettingsManager", UserSettings.prototype, "render", (thisObject) => {
|
||||||
thisObject._reactInternalFiber.return.return.return.return.return.return.return.memoizedProps.id = "user-settings";
|
thisObject._reactInternalFiber.return.return.return.return.return.return.return.memoizedProps.id = "user-settings";
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue