From a7844b86e3f8d5304b20bffbe1b0ba83c6cac2f4 Mon Sep 17 00:00:00 2001 From: OTKUSteyler <90369564+OTKUSteyler@users.noreply.github.com> Date: Fri, 2 Jan 2026 09:41:02 +0000 Subject: [PATCH] Fix background patching for chat messages component --- .../themes/colors/patches/background.tsx | 51 ++++++++++--------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/src/lib/addons/themes/colors/patches/background.tsx b/src/lib/addons/themes/colors/patches/background.tsx index ad5ada7..b678ee5 100644 --- a/src/lib/addons/themes/colors/patches/background.tsx +++ b/src/lib/addons/themes/colors/patches/background.tsx @@ -8,16 +8,16 @@ import chroma from "chroma-js"; import { ImageBackground, StyleSheet } from "react-native"; import { logger } from "@lib/utils/logger"; -const Messages = findByFilePathLazy("components_native/chat/Messages.tsx", true); +const Messages = findByFilePathLazy("modules/messages/native/Messages.tsx", true); -function ThemeBackground({ children }: { children: React.ReactNode }) { +function ThemeBackground({ children }: { children: React.ReactNode; }) { useObservable([colorsPref]); if (!_colorRef.current || colorsPref.customBackground === "hidden" || !_colorRef.current.background?.url || _colorRef.current.background?.blur && (typeof _colorRef.current.background?.blur !== "number") - ){ + ) { return children; } @@ -31,30 +31,35 @@ function ThemeBackground({ children }: { children: React.ReactNode }) { } export default function patchChatBackground() { + try { const patches = [ - after("render", Messages, (_, ret) => { - if (!_colorRef.current || !_colorRef.current.background?.url) return; - const messagesComponent = findInReactTree( - ret, - x => x && "HACK_fixModalInteraction" in x.props && x?.props?.style - ); + after("render", Messages, (_, ret) => { + if (!_colorRef.current || !_colorRef.current.background?.url) return; - if (messagesComponent) { - const flattened = StyleSheet.flatten(messagesComponent.props.style); - const backgroundColor = chroma( - flattened.backgroundColor || "black" - ).alpha( - 1 - (_colorRef.current.background?.opacity ?? 1) - ).hex(); + const messagesComponent = findInReactTree( + ret, + x => x && "HACK_fixModalInteraction" in x.props && x?.props?.style + ); - messagesComponent.props.style = StyleSheet.flatten([ - messagesComponent.props.style, - { backgroundColor } - ]); - } + if (messagesComponent) { + const flattened = StyleSheet.flatten(messagesComponent.props.style); + const backgroundColor = chroma( + flattened.backgroundColor || "black" + ).alpha( + 1 - (_colorRef.current.background?.opacity ?? 1) + ).hex(); - return {ret}; - }) + messagesComponent.props.style = StyleSheet.flatten([ + messagesComponent.props.style, + { backgroundColor } + ]); + } + + return {ret}; + }) ]; + return () => patches.forEach(x => x()); + } catch (e) { + } }