Fix E2EE message button patch
This commit is contained in:
parent
648954d533
commit
d58dda6f50
|
@ -81,7 +81,7 @@ export default class BuiltinModule {
|
||||||
const last = child.pop();
|
const last = child.pop();
|
||||||
|
|
||||||
this.patch(module, fnName, (component, args, retVal) => {
|
this.patch(module, fnName, (component, args, retVal) => {
|
||||||
const unpatch = this.patch(child.reduce((obj, key) => obj[key], retVal), last, function() {unpatch(); return cb.apply(this, arguments);}, when);
|
const unpatch = this.patch(child.reduce((obj, key) => obj[key], retVal), last, function(...args) {unpatch(); return cb.call(this, component, ...args);}, when);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
import { Settings, Cache, Events } from 'modules';
|
import { Settings, Cache, Events } from 'modules';
|
||||||
import BuiltinModule from '../BuiltinModule';
|
import BuiltinModule from '../BuiltinModule';
|
||||||
import { Reflection, ReactComponents, MonkeyPatch, Patcher, DiscordApi, Security } from 'modules';
|
import { Reflection, ReactComponents, DiscordApi, Security } from 'modules';
|
||||||
import { VueInjector, Modals, Toasts } from 'ui';
|
import { VueInjector, Modals, Toasts } from 'ui';
|
||||||
import { ClientLogger as Logger, ClientIPC } from 'common';
|
import { ClientLogger as Logger, ClientIPC } from 'common';
|
||||||
import { request } from 'vendor';
|
import { request } from 'vendor';
|
||||||
|
@ -238,7 +238,7 @@ export default new class E2EE extends BuiltinModule {
|
||||||
async patchMessageContent() {
|
async patchMessageContent() {
|
||||||
const MessageContent = await ReactComponents.getComponent('MessageContent');
|
const MessageContent = await ReactComponents.getComponent('MessageContent');
|
||||||
this.patch(MessageContent.component.prototype, 'render', this.beforeRenderMessageContent, 'before');
|
this.patch(MessageContent.component.prototype, 'render', this.beforeRenderMessageContent, 'before');
|
||||||
this.patch(MessageContent.component.prototype, 'render', this.afterRenderMessageContent);
|
this.childPatch(MessageContent.component.prototype, 'render', ['props', 'children'], this.afterRenderMessageContent);
|
||||||
MessageContent.forceUpdateAll();
|
MessageContent.forceUpdateAll();
|
||||||
|
|
||||||
const ImageWrapper = await ReactComponents.getComponent('ImageWrapper');
|
const ImageWrapper = await ReactComponents.getComponent('ImageWrapper');
|
||||||
|
@ -287,10 +287,16 @@ export default new class E2EE extends BuiltinModule {
|
||||||
component.props.message.contentParsed = create.contentParsed;
|
component.props.message.contentParsed = create.contentParsed;
|
||||||
}
|
}
|
||||||
|
|
||||||
afterRenderMessageContent(component, args, retVal) {
|
afterRenderMessageContent(component, _childrenObject, args, retVal) {
|
||||||
if (!component.props.message.bd_encrypted) return;
|
if (!component.props.message.bd_encrypted) return;
|
||||||
const buttons = Utils.findInReactTree(retVal, m => Array.isArray(m) && m[1].props && m[1].props.currentUserId);
|
|
||||||
|
const { className } = Reflection.resolve('buttonContainer', 'avatar', 'username');
|
||||||
|
const buttonContainer = Utils.findInReactTree(retVal, m => m && m.className && m.className.indexOf(className) !== -1);
|
||||||
|
if (!buttonContainer) return;
|
||||||
|
|
||||||
|
const buttons = buttonContainer.children.props.children;
|
||||||
if (!buttons) return;
|
if (!buttons) return;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
buttons.unshift(VueInjector.createReactElement(E2EEMessageButton));
|
buttons.unshift(VueInjector.createReactElement(E2EEMessageButton));
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
|
|
@ -248,7 +248,7 @@ export default new class EmoteModule extends BuiltinModule {
|
||||||
Spoiler.forceUpdateAll();
|
Spoiler.forceUpdateAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
afterRenderSpoiler(component, args, retVal) {
|
afterRenderSpoiler(component, _childrenObject, args, retVal) {
|
||||||
const markup = Utils.findInReactTree(retVal, filter =>
|
const markup = Utils.findInReactTree(retVal, filter =>
|
||||||
filter &&
|
filter &&
|
||||||
filter.className &&
|
filter.className &&
|
||||||
|
@ -261,7 +261,7 @@ export default new class EmoteModule extends BuiltinModule {
|
||||||
/**
|
/**
|
||||||
* Handle message render
|
* Handle message render
|
||||||
*/
|
*/
|
||||||
afterRenderMessageContent(component, args, retVal) {
|
afterRenderMessageContent(component, _childrenObject, args, retVal) {
|
||||||
const markup = Utils.findInReactTree(retVal, filter =>
|
const markup = Utils.findInReactTree(retVal, filter =>
|
||||||
filter &&
|
filter &&
|
||||||
filter.className &&
|
filter.className &&
|
||||||
|
|
Loading…
Reference in New Issue