mirror of
https://github.com/smartfrigde/armcord.git
synced 2024-08-14 23:56:58 +00:00
fix settings webview injection
This commit is contained in:
parent
6beee8d825
commit
dfe104da42
2 changed files with 17 additions and 22 deletions
|
@ -73,11 +73,24 @@ sleep(5000).then(async () => {
|
||||||
|
|
||||||
// Settings info version injection
|
// Settings info version injection
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
|
addScript(`
|
||||||
|
if (document.getElementById("ACsettingsModal") == null) {
|
||||||
|
var html = '<span class="close" id="closeSettings">×</span><div class="ACsettings-modal-content" id="webviewSettingsContainer"></div>';
|
||||||
|
const elem = document.createElement("div");
|
||||||
|
elem.id = "ACsettingsModal";
|
||||||
|
elem.classList.add("ACsettings-modal");
|
||||||
|
elem.innerHTML = html;
|
||||||
|
document.getElementById("app-mount").prepend(elem);
|
||||||
|
document.getElementById("closeSettings").addEventListener("click", () => {
|
||||||
|
document.getElementById("webviewSettingsContainer").innerHTML = "";
|
||||||
|
document.getElementById("ACsettingsModal").style.display = "none";
|
||||||
|
});
|
||||||
|
}
|
||||||
|
`);
|
||||||
const host = document.querySelector('[class*="sidebar"] [class*="info"]');
|
const host = document.querySelector('[class*="sidebar"] [class*="info"]');
|
||||||
if (!host || host.querySelector("#ac-ver")) {
|
if (!host || host.querySelector("#ac-ver")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const el = host.firstElementChild!.cloneNode() as HTMLSpanElement;
|
const el = host.firstElementChild!.cloneNode() as HTMLSpanElement;
|
||||||
el.id = "ac-ver";
|
el.id = "ac-ver";
|
||||||
el.textContent = `ArmCord Version: ${version}`;
|
el.textContent = `ArmCord Version: ${version}`;
|
||||||
|
|
|
@ -1,13 +1,7 @@
|
||||||
import * as path from "path";
|
import * as path from "path";
|
||||||
import * as fs from "fs";
|
import * as fs from "fs";
|
||||||
import {addStyle} from "../utils";
|
import {addScript, addStyle} from "../utils";
|
||||||
import {WebviewTag} from "electron";
|
import {WebviewTag} from "electron";
|
||||||
var html = `
|
|
||||||
<div id="ACsettingsModal" class="ACsettings-modal">
|
|
||||||
<span class="close" id="closeSettings">×</span>
|
|
||||||
<div class="ACsettings-modal-content" id="webviewSettingsContainer">
|
|
||||||
</div>
|
|
||||||
</div>`;
|
|
||||||
|
|
||||||
var webview = `<webview src="${path.join("file://", __dirname, "../", "/settings/settings.html")}" preload="${path.join(
|
var webview = `<webview src="${path.join("file://", __dirname, "../", "/settings/settings.html")}" preload="${path.join(
|
||||||
"file://",
|
"file://",
|
||||||
|
@ -15,27 +9,15 @@ var webview = `<webview src="${path.join("file://", __dirname, "../", "/settings
|
||||||
"../",
|
"../",
|
||||||
"/settings/preload.js"
|
"/settings/preload.js"
|
||||||
)}" id="inAppSettings"></webview>`;
|
)}" id="inAppSettings"></webview>`;
|
||||||
|
|
||||||
export function injectSettings() {
|
export function injectSettings() {
|
||||||
document.getElementById("webviewSettingsContainer")!.innerHTML = webview;
|
document.getElementById("webviewSettingsContainer")!.innerHTML = webview;
|
||||||
document.getElementById("ACsettingsModal")!.style.display = "block";
|
document.getElementById("ACsettingsModal")!.style.display = "block";
|
||||||
}
|
}
|
||||||
function removeSettings() {
|
|
||||||
document.getElementById("webviewSettingsContainer")!.innerHTML = "";
|
|
||||||
document.getElementById("ACsettingsModal")!.style.display = "none";
|
|
||||||
}
|
|
||||||
document.addEventListener("DOMContentLoaded", function (_event) {
|
document.addEventListener("DOMContentLoaded", function (_event) {
|
||||||
const elem = document.createElement("div");
|
|
||||||
elem.innerHTML = html;
|
|
||||||
if (document.getElementById("app-mount") == null) {
|
|
||||||
document.body.appendChild(elem);
|
|
||||||
} else {
|
|
||||||
document.getElementById("app-mount")!.prepend(elem);
|
|
||||||
}
|
|
||||||
const settingsCssPath = path.join(__dirname, "../", "/content/css/inAppSettings.css");
|
const settingsCssPath = path.join(__dirname, "../", "/content/css/inAppSettings.css");
|
||||||
addStyle(fs.readFileSync(settingsCssPath, "utf8"));
|
addStyle(fs.readFileSync(settingsCssPath, "utf8"));
|
||||||
document.getElementById("closeSettings")!.addEventListener("click", () => {
|
|
||||||
removeSettings();
|
|
||||||
});
|
|
||||||
const webview = document.querySelector("webview") as WebviewTag;
|
const webview = document.querySelector("webview") as WebviewTag;
|
||||||
webview.addEventListener("console-message", (e) => {
|
webview.addEventListener("console-message", (e) => {
|
||||||
console.log("Settings page logged a message:", e.message);
|
console.log("Settings page logged a message:", e.message);
|
||||||
|
|
Loading…
Reference in a new issue