Tray: About page
This commit is contained in:
parent
04a328bffa
commit
f2fafca59d
5 changed files with 173 additions and 1 deletions
|
|
@ -139,5 +139,6 @@ window.VencordNative = {
|
||||||
setUpdateState: NOOP,
|
setUpdateState: NOOP,
|
||||||
onCheckUpdates: NOOP,
|
onCheckUpdates: NOOP,
|
||||||
onRepair: NOOP,
|
onRepair: NOOP,
|
||||||
|
onAbout: NOOP,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -102,6 +102,7 @@ export default {
|
||||||
setUpdateState: (available: boolean) => ipcRenderer.send(IpcEvents.SET_TRAY_UPDATE_STATE, available),
|
setUpdateState: (available: boolean) => ipcRenderer.send(IpcEvents.SET_TRAY_UPDATE_STATE, available),
|
||||||
onCheckUpdates: (cb: () => void) => { ipcRenderer.on(IpcEvents.TRAY_CHECK_UPDATES, cb); },
|
onCheckUpdates: (cb: () => void) => { ipcRenderer.on(IpcEvents.TRAY_CHECK_UPDATES, cb); },
|
||||||
onRepair: (cb: () => void) => { ipcRenderer.on(IpcEvents.TRAY_REPAIR, cb); },
|
onRepair: (cb: () => void) => { ipcRenderer.on(IpcEvents.TRAY_REPAIR, cb); },
|
||||||
|
onAbout: (cb: () => void) => { ipcRenderer.on(IpcEvents.TRAY_ABOUT, cb); },
|
||||||
},
|
},
|
||||||
|
|
||||||
pluginHelpers: PluginHelpers
|
pluginHelpers: PluginHelpers
|
||||||
|
|
|
||||||
133
src/main/about.html
Normal file
133
src/main/about.html
Normal file
|
|
@ -0,0 +1,133 @@
|
||||||
|
<!doctype html>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>About Equicord</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
padding: 2em;
|
||||||
|
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell,
|
||||||
|
"Open Sans", "Helvetica Neue", sans-serif;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root {
|
||||||
|
color-scheme: light dark;
|
||||||
|
--bg: white;
|
||||||
|
--fg: black;
|
||||||
|
--fg-secondary: #313338;
|
||||||
|
--fg-semi-trans: rgba(0, 0, 0, 0.2);
|
||||||
|
--link: #006ce7;
|
||||||
|
--link-hover: #005bb5;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Dark theme overrides */
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
:root {
|
||||||
|
--bg: hsl(223 6.7% 20.6%);
|
||||||
|
--fg: white;
|
||||||
|
--fg-secondary: #b5bac1;
|
||||||
|
--fg-semi-trans: rgba(255, 255, 255, 0.2);
|
||||||
|
--link: #00a8fc;
|
||||||
|
--link-hover: #0086c3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
html,
|
||||||
|
body {
|
||||||
|
background: var(--bg);
|
||||||
|
color: var(--fg);
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: var(--link);
|
||||||
|
transition: color 0.2s linear;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: var(--link-hover);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h1 id="title">Equicord v{{VERSION}} ({{GIT_HASH}})</h1>
|
||||||
|
<p>
|
||||||
|
Equicord is the unstable experimental FORK
|
||||||
|
of Vencord and the other cutest client mod.
|
||||||
|
</p>
|
||||||
|
<section>
|
||||||
|
<h2>Links</h2>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="https://equicord.org" target="_blank">Equicord Website</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://docs.equicord.org" target="_blank">Equicord Docs</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://github.com/Equicord/Equicord" target="_blank">Source Code</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://equicord.org/discord" target="_blank">Support Server</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<h2>License</h2>
|
||||||
|
<p>
|
||||||
|
Equicord is licensed under the
|
||||||
|
<a href="https://www.gnu.org/licenses/gpl-3.0.txt" target="_blank">GNU General Public License v3.0</a>.
|
||||||
|
<br />
|
||||||
|
This is free software, and you are welcome to redistribute it under certain conditions; see the license for
|
||||||
|
details.
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<h2>Acknowledgements</h2>
|
||||||
|
<p>These awesome libraries/projects empower Equicord</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="https://github.com/Vendicated/Vencord" target="_blank">Vencord</a>
|
||||||
|
- Vencord is a modification for Discord that adds plugins and custom styles, blocks Discord's
|
||||||
|
tracking and what we are a fork of!
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="https://github.com/verticalsync/Suncord" target="_blank">Suncord</a>
|
||||||
|
- Suncord was a newer fork of Vencord which eventually merged into Equicord and brought many new users!
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</section>
|
||||||
|
</body>
|
||||||
|
<script>
|
||||||
|
const data = new URLSearchParams(location.search);
|
||||||
|
|
||||||
|
// replace all {{FOO}} placeholders in the document with the values from the URL
|
||||||
|
|
||||||
|
/** @param {Node} [node] */
|
||||||
|
function walk(node) {
|
||||||
|
if (node.nodeType === Node.TEXT_NODE) {
|
||||||
|
node.textContent = node.textContent.replace(/{{(\w+)}}/g, (match, key) => data.get(key) || match);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (node.nodeType === Node.ELEMENT_NODE && node.nodeName !== "SCRIPT") {
|
||||||
|
for (const child of node.childNodes) {
|
||||||
|
walk(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
walk(document.body);
|
||||||
|
</script>
|
||||||
|
|
@ -5,9 +5,11 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { IpcEvents } from "@shared/IpcEvents";
|
import { IpcEvents } from "@shared/IpcEvents";
|
||||||
|
import { gitHashShort } from "@shared/vencordUserAgent";
|
||||||
import { BrowserWindow, ipcMain, Menu, MenuItemConstructorOptions, shell } from "electron";
|
import { BrowserWindow, ipcMain, Menu, MenuItemConstructorOptions, shell } from "electron";
|
||||||
|
import aboutHtml from "file://about.html?minify";
|
||||||
|
|
||||||
import { SETTINGS_DIR } from "./utils/constants";
|
import { SETTINGS_DIR, THEMES_DIR } from "./utils/constants";
|
||||||
|
|
||||||
let cachedUpdateAvailable = false;
|
let cachedUpdateAvailable = false;
|
||||||
|
|
||||||
|
|
@ -51,11 +53,41 @@ function isTrayMenu(template: MenuItemConstructorOptions[]): boolean {
|
||||||
return hasOpenOrShow && hasQuit && isNotAppMenu;
|
return hasOpenOrShow && hasQuit && isNotAppMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let aboutWindow: BrowserWindow | null = null;
|
||||||
|
|
||||||
|
function openAboutWindow() {
|
||||||
|
if (aboutWindow) {
|
||||||
|
aboutWindow.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const height = 750;
|
||||||
|
const width = height * (4 / 3);
|
||||||
|
|
||||||
|
aboutWindow = new BrowserWindow({
|
||||||
|
center: true,
|
||||||
|
autoHideMenuBar: true,
|
||||||
|
height,
|
||||||
|
width
|
||||||
|
});
|
||||||
|
|
||||||
|
const aboutParams = aboutHtml.replace("{{VERSION}}", VERSION).replace("{{GIT_HASH}}", gitHashShort);
|
||||||
|
const base64Html = Buffer.from(aboutParams).toString("base64");
|
||||||
|
aboutWindow.loadURL(`data:text/html;base64,${base64Html}`);
|
||||||
|
aboutWindow.on("closed", () => {
|
||||||
|
aboutWindow = null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function createEquicordMenuItems(): MenuItemConstructorOptions[] {
|
function createEquicordMenuItems(): MenuItemConstructorOptions[] {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
label: "Equicord",
|
label: "Equicord",
|
||||||
submenu: [
|
submenu: [
|
||||||
|
{
|
||||||
|
label: "About Equicord",
|
||||||
|
click: () => openAboutWindow()
|
||||||
|
},
|
||||||
{
|
{
|
||||||
label: cachedUpdateAvailable ? "Update Equicord" : "Check for Updates",
|
label: cachedUpdateAvailable ? "Update Equicord" : "Check for Updates",
|
||||||
click: () => sendToRenderer(IpcEvents.TRAY_CHECK_UPDATES)
|
click: () => sendToRenderer(IpcEvents.TRAY_CHECK_UPDATES)
|
||||||
|
|
@ -68,6 +100,10 @@ function createEquicordMenuItems(): MenuItemConstructorOptions[] {
|
||||||
{
|
{
|
||||||
label: "Open Settings Folder",
|
label: "Open Settings Folder",
|
||||||
click: () => shell.openPath(SETTINGS_DIR)
|
click: () => shell.openPath(SETTINGS_DIR)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label: "Open Themes Folder",
|
||||||
|
click: () => shell.openPath(THEMES_DIR)
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -55,4 +55,5 @@ export const enum IpcEvents {
|
||||||
SET_TRAY_UPDATE_STATE = "VencordSetTrayUpdateState",
|
SET_TRAY_UPDATE_STATE = "VencordSetTrayUpdateState",
|
||||||
TRAY_REPAIR = "VencordTrayRepair",
|
TRAY_REPAIR = "VencordTrayRepair",
|
||||||
TRAY_CHECK_UPDATES = "VencordTrayCheckUpdates",
|
TRAY_CHECK_UPDATES = "VencordTrayCheckUpdates",
|
||||||
|
TRAY_ABOUT = "VencordTrayAbout"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue