add filter for MessageContent

This commit is contained in:
Zack Rauen 2018-10-10 23:46:34 -04:00
parent 990453cdad
commit 6f10c71623
4 changed files with 11 additions and 9 deletions

View File

@ -50,7 +50,7 @@ export default new class ColoredText extends BuiltinModule {
/* Patches */ /* Patches */
async applyPatches() { async applyPatches() {
if (this.patches.length) return; if (this.patches.length) return;
this.MessageContent = await ReactComponents.getComponent('MessageContent', { selector: Reflection.resolve('container', 'containerCozy', 'containerCompact', 'edited').selector }); this.MessageContent = await ReactComponents.getComponent('MessageContent', { selector: Reflection.resolve('container', 'containerCozy', 'containerCompact', 'edited').selector }, m => m.defaultProps && m.defaultProps.hasOwnProperty('disableButtons'));
this.patch(this.MessageContent.component.prototype, 'render', this.injectColoredText); this.patch(this.MessageContent.component.prototype, 'render', this.injectColoredText);
this.MessageContent.forceUpdateAll(); this.MessageContent.forceUpdateAll();
} }
@ -58,10 +58,12 @@ export default new class ColoredText extends BuiltinModule {
/** /**
* Set markup text colour to match role colour * Set markup text colour to match role colour
*/ */
injectColoredText(thisObject, args, returnValue) { injectColoredText(thisObject, args, originalReturn) {
const { TinyColor } = Reflection.modules; this.patch(originalReturn.props, 'children', function(obj, args, returnValue) {
const markup = Utils.findInReactTree(returnValue, m => m && m.props && m.props.className && m.props.className.includes('da-markup')); const { TinyColor } = Reflection.modules;
const roleColor = thisObject.props.message.colorString; const markup = Utils.findInReactTree(returnValue, m => m && m.props && m.props.className && m.props.className.includes('da-markup'));
if (markup && roleColor) markup.props.style = {color: TinyColor.mix(roleColor, this.defaultColor, this.intensity)}; const roleColor = thisObject.props.message.colorString;
if (markup && roleColor) markup.props.style = {color: TinyColor.mix(roleColor, this.defaultColor, this.intensity)};
});
} }
} }

View File

@ -236,7 +236,7 @@ export default new class E2EE extends BuiltinModule {
} }
async patchMessageContent() { async patchMessageContent() {
const MessageContent = await ReactComponents.getComponent('MessageContent', { selector: Reflection.resolve('container', 'containerCozy', 'containerCompact', 'edited').selector }); const MessageContent = await ReactComponents.getComponent('MessageContent', { selector: Reflection.resolve('container', 'containerCozy', 'containerCompact', 'edited').selector }, m => m.defaultProps && m.defaultProps.hasOwnProperty('disableButtons'));
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.patch(MessageContent.component.prototype, 'render', this.afterRenderMessageContent);

View File

@ -226,7 +226,7 @@ export default new class EmoteModule extends BuiltinModule {
* Patches MessageContent render method * Patches MessageContent render method
*/ */
async patchMessageContent() { async patchMessageContent() {
const MessageContent = await ReactComponents.getComponent('MessageContent', { selector: Reflection.resolve('container', 'containerCozy', 'containerCompact', 'edited').selector }); const MessageContent = await ReactComponents.getComponent('MessageContent', { selector: Reflection.resolve('container', 'containerCozy', 'containerCompact', 'edited').selector }, m => m.defaultProps && m.defaultProps.hasOwnProperty('disableButtons'));
this.patch(MessageContent.component.prototype, 'render', this.afterRenderMessageContent); this.patch(MessageContent.component.prototype, 'render', this.afterRenderMessageContent);
MessageContent.forceUpdateAll(); MessageContent.forceUpdateAll();
} }

View File

@ -30,7 +30,7 @@ module.exports = (Plugin, Api, Vendor) => {
// Force update elements to remove our changes // Force update elements to remove our changes
const GuildTextChannel = await ReactComponents.getComponent('GuildTextChannel'); const GuildTextChannel = await ReactComponents.getComponent('GuildTextChannel');
GuildTextChannel.forceUpdateAll(); GuildTextChannel.forceUpdateAll();
const MessageContent = await ReactComponents.getComponent('MessageContent', { selector: Reflection.resolve('container', 'containerCozy', 'containerCompact', 'edited').selector }); const MessageContent = await ReactComponents.getComponent('MessageContent', { selector: Reflection.resolve('container', 'containerCozy', 'containerCompact', 'edited').selector }, m => m.defaultProps && m.defaultProps.hasOwnProperty('disableButtons'));
MessageContent.forceUpdateAll(); MessageContent.forceUpdateAll();
return true; return true;
} }