mirror of
https://github.com/Equicord/Equicord.git
synced 2025-06-09 14:43:03 -04:00
feat: Experimental browser support
This commit is contained in:
parent
a9eae106c7
commit
cc25753314
14 changed files with 212 additions and 41 deletions
|
@ -9,6 +9,7 @@ import { startPlugin } from "../plugins";
|
|||
import { stopPlugin } from '../plugins/index';
|
||||
import { Flex } from './Flex';
|
||||
import { ChangeList } from '../utils/ChangeList';
|
||||
import { IS_WEB } from '../utils/isWeb';
|
||||
|
||||
function showErrorToast(message: string) {
|
||||
Toasts.show({
|
||||
|
@ -72,7 +73,7 @@ export default ErrorBoundary.wrap(function Settings() {
|
|||
SettingsDir: <code style={{ userSelect: 'text', cursor: 'text' }}>{settingsDir}</code>
|
||||
</Forms.FormText>
|
||||
|
||||
<Flex className={classes(Margins.marginBottom20)}>
|
||||
{!IS_WEB && <Flex className={classes(Margins.marginBottom20)}>
|
||||
<Button
|
||||
onClick={() => window.DiscordNative.app.relaunch()}
|
||||
size={Button.Sizes.SMALL}
|
||||
|
@ -94,7 +95,7 @@ export default ErrorBoundary.wrap(function Settings() {
|
|||
>
|
||||
Open QuickCSS File
|
||||
</Button>
|
||||
</Flex>
|
||||
</Flex>}
|
||||
<Forms.FormDivider />
|
||||
<Forms.FormTitle tag="h5">Settings</Forms.FormTitle>
|
||||
<Switch
|
||||
|
@ -104,20 +105,20 @@ export default ErrorBoundary.wrap(function Settings() {
|
|||
>
|
||||
Use QuickCss
|
||||
</Switch>
|
||||
<Switch
|
||||
{!IS_WEB && <Switch
|
||||
value={settings.notifyAboutUpdates}
|
||||
onChange={(v: boolean) => settings.notifyAboutUpdates = v}
|
||||
note="Shows a Toast on StartUp"
|
||||
>
|
||||
Get notified about new Updates
|
||||
</Switch>
|
||||
<Switch
|
||||
</Switch>}
|
||||
{!IS_WEB && <Switch
|
||||
value={settings.unsafeRequire}
|
||||
onChange={(v: boolean) => settings.unsafeRequire = v}
|
||||
note="Enables VencordNative.require. Useful for testing, very bad for security. Leave this off unless you need it."
|
||||
>
|
||||
Enable Unsafe Require
|
||||
</Switch>
|
||||
</Switch>}
|
||||
|
||||
<Forms.FormDivider />
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import definePlugin from "../utils/types";
|
||||
import gitHash from "git-hash";
|
||||
import { Devs } from '../utils/constants';
|
||||
import { IS_WEB } from "../utils/isWeb";
|
||||
|
||||
export default definePlugin({
|
||||
name: "Settings",
|
||||
|
@ -15,9 +16,12 @@ export default definePlugin({
|
|||
replace: m => {
|
||||
const idx = m.indexOf("Host") - 1;
|
||||
const template = m.slice(0, idx);
|
||||
return `${m}, ${template}"Vencord ", "${gitHash}"), " "), ` +
|
||||
`${template} "Electron ",VencordNative.getVersions().electron)," "), ` +
|
||||
`${template} "Chrome ",VencordNative.getVersions().chrome)," ")`;
|
||||
let r = `${m}, ${template}"Vencord ", "${gitHash}${IS_WEB ? " (Web)" : ""}"), " ")`;
|
||||
if (!IS_WEB) {
|
||||
r += `,${template} "Electron ",VencordNative.getVersions().electron)," "),`;
|
||||
r += `${template} "Chrome ",VencordNative.getVersions().chrome)," ")`;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -28,7 +32,7 @@ export default definePlugin({
|
|||
replace: (m, mod) =>
|
||||
`{section:${mod}.ID.HEADER,label:"Vencord"},` +
|
||||
`{section:"VencordSetting",label:"Vencord",element:Vencord.Components.Settings},` +
|
||||
`{section:"VencordUpdater",label:"Updater",element:Vencord.Components.Updater},` +
|
||||
`{section:"VencordUpdater",label:"Updater",element:Vencord.Components.Updater,predicate:()=>!IS_WEB},` +
|
||||
`{section:${mod}.ID.DIVIDER},${m}`
|
||||
|
||||
}
|
||||
|
|
1
src/utils/isWeb.ts
Normal file
1
src/utils/isWeb.ts
Normal file
|
@ -0,0 +1 @@
|
|||
export const IS_WEB = window.IS_WEB = typeof window.DiscordNative === "undefined";
|
|
@ -33,6 +33,10 @@ interface PluginDef {
|
|||
patches?: Omit<Patch, "plugin">[];
|
||||
dependencies?: string[],
|
||||
required?: boolean;
|
||||
/**
|
||||
* Set this if your plugin only works on Browser or Desktop, not both
|
||||
*/
|
||||
target?: "WEB" | "DESKTOP" | "BOTH";
|
||||
}
|
||||
|
||||
export type IpcRes<V = any> = { ok: true; value: V; } | { ok: false, error: any; };
|
||||
|
|
|
@ -6,6 +6,7 @@ let webpackChunk: any[];
|
|||
|
||||
const logger = new Logger("WebpackInterceptor", "#8caaee");
|
||||
|
||||
console.log("prepatch is", window[WEBPACK_CHUNK]);
|
||||
Object.defineProperty(window, WEBPACK_CHUNK, {
|
||||
get: () => webpackChunk,
|
||||
set: (v) => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue