Merge branch 'main' into macos-translucency

This commit is contained in:
V 2023-04-10 19:18:34 +02:00 committed by GitHub
commit 48ae48f275
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 48 additions and 7 deletions

32
.github/workflows/test.yml vendored Normal file
View file

@ -0,0 +1,32 @@
name: test
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: pnpm/action-setup@v2 # Install pnpm using packageManager key in package.json
- name: Use Node.js 18
uses: actions/setup-node@v3
with:
node-version: 18
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run tests
run: pnpm test
- name: Test if it compiles
run: |
pnpm build
pnpm build --dev

View file

@ -15,6 +15,7 @@ import { makeLinksOpenExternally } from "./utils/makeLinksOpenExternally";
import { downloadVencordFiles } from "./utils/vencordLoader";
let isQuitting = false;
let tray: Tray;
app.on("before-quit", () => {
isQuitting = true;
@ -62,7 +63,7 @@ function initTray(win: BrowserWindow) {
}
]);
const tray = new Tray(ICON_PATH);
tray = new Tray(ICON_PATH);
tray.setToolTip("Vencord Desktop");
tray.setContextMenu(trayMenu);
tray.on("click", () => win.show());
@ -213,6 +214,10 @@ function initWindowBoundsListeners(win: BrowserWindow) {
}
function initSettingsListeners(win: BrowserWindow) {
Settings.addChangeListener("tray", enable => {
if (enable) initTray(win);
else tray?.destroy();
});
Settings.addChangeListener("disableMinSize", disable => {
if (disable) {
// 0 no work
@ -262,7 +267,7 @@ export function createMainWindow() {
}));
win.on("close", e => {
if (isQuitting || Settings.store.minimizeToTray === false) return;
if (isQuitting || Settings.store.minimizeToTray === false || Settings.store.tray === false) return;
e.preventDefault();
win.hide();
@ -271,7 +276,7 @@ export function createMainWindow() {
});
initWindowBoundsListeners(win);
initTray(win);
if (Settings.store.tray ?? true) initTray(win);
initMenuBar(win);
makeLinksOpenExternally(win);
initSettingsListeners(win);

View file

@ -21,12 +21,14 @@ export default function SettingsUi() {
Button
} = Common;
const switches: [keyof typeof Settings, string, string, boolean?][] = [
const switches: [keyof typeof Settings, string, string, boolean?, (() => boolean)?][] = [
["tray", "Tray Icon", "Add a tray icon for Vencord Desktop", true],
[
"minimizeToTray",
"Minimize to tray",
"Hitting X will make Vencord Desktop minimize to the tray instead of closing",
true
true,
() => Settings.tray ?? true
],
[
"disableMinSize",
@ -62,9 +64,10 @@ export default function SettingsUi() {
<FormDivider className={Margins.top16 + " " + Margins.bottom16} />
{switches.map(([key, text, note, def]) => (
{switches.map(([key, text, note, def, predicate]) => (
<FormSwitch
value={Settings[key] ?? def ?? false}
value={(Settings[key] ?? def ?? false) && (!predicate || predicate())}
disabled={predicate && !predicate()}
onChange={v => (Settings[key] = v)}
note={note}
key={key}

View file

@ -14,5 +14,6 @@ export interface Settings {
openLinksWithElectron?: boolean;
vencordDir?: string;
disableMinSize?: boolean;
tray?: boolean;
minimizeToTray?: boolean;
}