diff --git a/BetterDiscordApp/src/react-dom.js b/BetterDiscordApp/src/react-dom.js new file mode 100644 index 0000000..f1f86b5 --- /dev/null +++ b/BetterDiscordApp/src/react-dom.js @@ -0,0 +1 @@ +module.exports = window.ReactDOM \ No newline at end of file diff --git a/BetterDiscordApp/src/react.js b/BetterDiscordApp/src/react.js new file mode 100644 index 0000000..ce30dac --- /dev/null +++ b/BetterDiscordApp/src/react.js @@ -0,0 +1 @@ +module.exports = window.React \ No newline at end of file diff --git a/BetterDiscordApp/webpack.config.js b/BetterDiscordApp/webpack.config.js index cd68c09..8b843e8 100644 --- a/BetterDiscordApp/webpack.config.js +++ b/BetterDiscordApp/webpack.config.js @@ -29,7 +29,11 @@ module.exports = { modules: [ path.resolve("src", "builtins"), path.resolve("src", "modules") - ] + ], + alias: { + react$: path.resolve(__dirname, "src", "react.js"), + "react-dom$": path.resolve(__dirname, "src", "react-dom.js") + } }, module: { rules: [ @@ -45,6 +49,10 @@ module.exports = { } }], "@babel/react"] } + }, + { + test: /\.svg$/, + use: ['@svgr/webpack'], } ] }, diff --git a/modules/discord_desktop_core/core/app/BetterDiscord/index.js b/modules/discord_desktop_core/core/app/BetterDiscord/index.js index feba95b..5f2e6c5 100644 --- a/modules/discord_desktop_core/core/app/BetterDiscord/index.js +++ b/modules/discord_desktop_core/core/app/BetterDiscord/index.js @@ -43,6 +43,20 @@ async function privateInit(){ //disabling sentry BDModules.get(e => e.getCurrentHub)[0].getCurrentHub().getClient().getOptions().enabled = false + + // setting react in require cache + try{ + window.React = require("react") + }catch(e){ + const React = ModuleLoader.get(e => !["Component", "PureComponent", "Children", "createElement", "cloneElement"].map(c => !!e[c]).includes(false))[0] + window.React = React + } + try{ + window.ReactDOM = require("react-dom") + }catch(e){ + const ReactDOM = ModuleLoader.get(e => e.findDOMNode)[0] + window.ReactDOM = ReactDOM + } let original = BDModules.get((e) => e.createSound)[0].createSound BDModules.get((e) => e.createSound)[0].createSound = function(sound){ @@ -55,9 +69,9 @@ async function privateInit(){ }, set(data){ console.log("Attempting to set call_ringing value. Canceling "+data) - } + }, + configurable: false }) - console.log(returned) return returned }else{ return original(...arguments)