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…
	
	Add table
		Add a link
		
	
		Reference in a new issue