From b16133d122500ae8f81076865ecb71d38042bd44 Mon Sep 17 00:00:00 2001 From: sadan <117494111+sadan4@users.noreply.github.com> Date: Fri, 23 Jan 2026 12:43:28 -0500 Subject: [PATCH] ChatInputButtonAPI: fix patch and class finds --- src/api/ChatButton.css | 26 -------------------------- src/api/ChatButtons.tsx | 19 +++++++------------ src/plugins/_api/chatButtons.ts | 4 ++-- 3 files changed, 9 insertions(+), 40 deletions(-) diff --git a/src/api/ChatButton.css b/src/api/ChatButton.css index d6f0c712c..30869a846 100644 --- a/src/api/ChatButton.css +++ b/src/api/ChatButton.css @@ -2,29 +2,3 @@ display: flex; align-items: center; } - -/* FIXME: bad name -_7f7a2c5f23327d73 */ -.vc-chatbar-discord-button { - opacity: .7; - align-items: center; - align-self: center; - border-radius: 8px; - cursor: pointer; - display: flex; - justify-content: center; - padding: 10px; - - &:hover { - background: hsl(0deg 0% 100% / 10%); - opacity: 1 - } -} - -/* _3f4f204c3133fb93 */ -.vc-chatbar-button-wrapper { - align-self: center; - display: flex; - flex-direction: row; - gap: 8px; -} \ No newline at end of file diff --git a/src/api/ChatButtons.tsx b/src/api/ChatButtons.tsx index ce1292318..ebb5eb5e5 100644 --- a/src/api/ChatButtons.tsx +++ b/src/api/ChatButtons.tsx @@ -7,22 +7,19 @@ import "./ChatButton.css"; import ErrorBoundary from "@components/ErrorBoundary"; -import { classNameFactory } from "@utils/css"; import { Logger } from "@utils/Logger"; import { classes } from "@utils/misc"; import { IconComponent } from "@utils/types"; import { Channel } from "@vencord/discord-types"; -import { waitFor } from "@webpack"; +import { findCssClassesLazy } from "@webpack"; import { Clickable, Menu, Tooltip } from "@webpack/common"; import { HTMLProps, JSX, MouseEventHandler, ReactNode } from "react"; import { addContextMenuPatch, findGroupChildrenByChildId } from "./ContextMenu"; import { useSettings } from "./Settings"; -const cl = classNameFactory("vc-chatbar-"); - -let ChannelTextAreaClasses: Record<"button" | "buttonContainer", string>; -waitFor(["buttonContainer", "channelTextArea"], m => ChannelTextAreaClasses = m); +const ButtonWrapperClasses = findCssClassesLazy("button", "buttonWrapper", "notificationDot"); +const ChannelTextAreaClasses = findCssClassesLazy("buttonContainer", "channelTextArea", "button"); export interface ChatBarProps { channel: Channel; @@ -116,11 +113,9 @@ function VencordChatBarButtons(props: ChatBarProps) { } export function _injectButtons(buttons: ReactNode[], props: ChatBarProps) { - if (props.disabled) return; + if (props.disabled || buttons.length === 0) return; buttons.unshift(); - - return buttons; } /** @@ -143,18 +138,18 @@ export const ChatBarButton = ErrorBoundary.wrap((props: ChatBarButtonProps) => { return ( {({ onMouseEnter, onMouseLeave }) => ( -
+
-
+
{props.children}
diff --git a/src/plugins/_api/chatButtons.ts b/src/plugins/_api/chatButtons.ts index 5a5969cc2..0a1cec44c 100644 --- a/src/plugins/_api/chatButtons.ts +++ b/src/plugins/_api/chatButtons.ts @@ -16,8 +16,8 @@ export default definePlugin({ { find: '"sticker")', replacement: { - match: /(?<=className:.{0,20}\.buttons.{0,50}children:)(\i)/, - replace: "Vencord.Api.ChatButtons._injectButtons($1,arguments[0])" + match: /(?<=let (\i)=\(0,\i\.chain\).+?;)(?=return)/, + replace: "Vencord.Api.ChatButtons._injectButtons($1,arguments[0]);" } } ]