From 1cdc0efc9c673d975c997d7bc5fa4908ffaf9682 Mon Sep 17 00:00:00 2001 From: Jean Ouina Date: Tue, 26 May 2020 16:14:09 +0200 Subject: [PATCH] react and reactdom in webpack + window --- BetterDiscordApp/src/react-dom.js | 1 + BetterDiscordApp/src/react.js | 1 + BetterDiscordApp/webpack.config.js | 10 +++++++++- .../core/app/BetterDiscord/index.js | 18 ++++++++++++++++-- 4 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 BetterDiscordApp/src/react-dom.js create mode 100644 BetterDiscordApp/src/react.js 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)