WhoReacted, TypingIndicator: Fix triggering other actions (#3161)

Prevents typing in message user box from activating parent click handlers
Fixes https://github.com/Vendicated/Vencord/issues/3128
This commit is contained in:
Sqaaakoi 2025-01-30 14:41:32 +13:00 committed by GitHub
parent 68662c9625
commit 8fccda4a24
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 20 additions and 12 deletions

View file

@ -100,6 +100,13 @@ function TypingIndicator({ channelId, guildId }: { channelId: string; guildId: s
{props => ( {props => (
<div className="vc-typing-indicator" {...props}> <div className="vc-typing-indicator" {...props}>
{((settings.store.indicatorMode & IndicatorMode.Avatars) === IndicatorMode.Avatars) && ( {((settings.store.indicatorMode & IndicatorMode.Avatars) === IndicatorMode.Avatars) && (
<div
onClick={e => {
e.stopPropagation();
e.preventDefault();
}}
onKeyPress={e => e.stopPropagation()}
>
<UserSummaryItem <UserSummaryItem
users={typingUsersArray.map(id => UserStore.getUser(id))} users={typingUsersArray.map(id => UserStore.getUser(id))}
guildId={guildId} guildId={guildId}
@ -110,6 +117,7 @@ function TypingIndicator({ channelId, guildId }: { channelId: string; guildId: s
size={16} size={16}
className="vc-typing-indicator-avatars" className="vc-typing-indicator-avatars"
/> />
</div>
)} )}
{((settings.store.indicatorMode & IndicatorMode.Dots) === IndicatorMode.Dots) && ( {((settings.store.indicatorMode & IndicatorMode.Dots) === IndicatorMode.Dots) && (
<div className="vc-typing-indicator-dots"> <div className="vc-typing-indicator-dots">

View file

@ -93,7 +93,7 @@ function makeRenderMoreUsers(users: User[]) {
}; };
} }
function handleClickAvatar(event: React.MouseEvent<HTMLElement, MouseEvent>) { function handleClickAvatar(event: React.UIEvent<HTMLElement, Event>) {
event.stopPropagation(); event.stopPropagation();
} }
@ -165,7 +165,7 @@ export default definePlugin({
<div <div
style={{ marginLeft: "0.5em", transform: "scale(0.9)" }} style={{ marginLeft: "0.5em", transform: "scale(0.9)" }}
> >
<div onClick={handleClickAvatar}> <div onClick={handleClickAvatar} onKeyPress={handleClickAvatar}>
<UserSummaryItem <UserSummaryItem
users={users} users={users}
guildId={ChannelStore.getChannel(message.channel_id)?.guild_id} guildId={ChannelStore.getChannel(message.channel_id)?.guild_id}