this repo has no description

Merge branch 'develop' into notnite/eslint-config-package

Changed files
+60 -9
packages
core-extensions
src
contextMenu
webpackModules
devToolsExtensions
moonbase
webpackModules
ui
extensions
types
+1 -1
package.json
···
{
"name": "moonlight",
-
"version": "1.1.0",
+
"version": "1.2.1",
"description": "Yet another Discord mod",
"homepage": "https://moonlight-mod.github.io/",
"license": "LGPL-3.0-or-later",
+11 -4
packages/core-extensions/src/contextMenu/webpackModules/contextMenu.ts
···
before: boolean;
};
-
export function addItem<T>(
+
function addItem<T>(
navId: string,
item: (
props: T
···
patches.push({ navId, item, anchorId, before });
}
-
export const patches: Patch[] = [];
-
export function _patchMenu(props: MenuProps, items: InternalItem[]) {
+
const patches: Patch[] = [];
+
function _patchMenu(props: MenuProps, items: InternalItem[]) {
const matches = patches.filter((p) => p.navId === props.navId);
if (!matches.length) return;
···
}
let menuProps: any;
-
export function _saveProps(self: any, el: any) {
+
function _saveProps(self: any, el: any) {
menuProps = el.props;
const original = self.props.closeContextMenu;
···
return el;
}
+
+
module.exports = {
+
patches,
+
addItem,
+
_patchMenu,
+
_saveProps
+
};
// Unmangle Menu elements
const code =
+21
packages/core-extensions/src/devToolsExtensions/host.ts
···
+
import { app, session } from "electron";
+
import { resolve } from "node:path";
+
import Logger from "@moonlight-mod/core/util/logger";
+
+
const logger = new Logger("DevTools Extensions");
+
+
app.whenReady().then(async () => {
+
const paths =
+
moonlightHost.getConfigOption<string[]>("devToolsExtensions", "paths") ??
+
[];
+
+
for (const path of paths) {
+
const resolved = resolve(path);
+
+
try {
+
await session.defaultSession.loadExtension(resolved);
+
} catch (err) {
+
logger.error(`Failed to load an extension in "${resolved}":`, err);
+
}
+
}
+
});
+21
packages/core-extensions/src/devToolsExtensions/manifest.json
···
+
{
+
"$schema": "https://moonlight-mod.github.io/manifest.schema.json",
+
"id": "devToolsExtensions",
+
"meta": {
+
"name": "DevTools Extensions",
+
"tagline": "Loads Chrome extensions into Electron DevTools",
+
"authors": [
+
"Cynosphere"
+
],
+
"tags": [
+
"development"
+
]
+
},
+
"settings": {
+
"paths": {
+
"displayName": "Extension Paths",
+
"type": "list"
+
}
+
},
+
"apiLevel": 2
+
}
+1
packages/core-extensions/src/moonbase/native.ts
···
async installExtension(manifest, url, repo) {
const req = await fetch(url, {
+
cache: "no-store",
headers: {
"User-Agent": userAgent
}
+4 -3
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/index.tsx
···
const [query, setQuery] = React.useState("");
+
const filterState = React.useState(defaultFilter);
+
let filter: Filter, setFilter: (filter: Filter) => void;
if (
MoonbaseSettingsStore.getExtensionConfigRaw<boolean>(
···
setFilter = (filter) =>
MoonbaseSettingsStore.setExtensionConfig("moonbase", "filter", filter);
} else {
-
const state = React.useState(defaultFilter);
-
filter = state[0];
-
setFilter = state[1];
+
filter = filterState[0];
+
setFilter = filterState[1];
}
const [selectedTags, setSelectedTags] = React.useState(new Set<string>());
const sorted = Object.values(extensions).sort((a, b) => {
+1 -1
packages/types/package.json
···
{
"name": "@moonlight-mod/types",
-
"version": "1.2.0",
+
"version": "1.3.0",
"main": "./src/index.ts",
"types": "./src/index.ts",
"exports": {