Fix SilentMessage/SilentTyping toggles showing in wrong sections

Closes #656
This commit is contained in:
Vendicated 2023-03-28 18:56:12 +02:00
parent ab911b48b5
commit 081df6beb7
No known key found for this signature in database
GPG key ID: A1DC0CFB5615D905
2 changed files with 16 additions and 4 deletions

View file

@ -22,7 +22,11 @@ import { Devs } from "@utils/constants";
import definePlugin from "@utils/types"; import definePlugin from "@utils/types";
import { Button, ButtonLooks, ButtonWrapperClasses, React, Tooltip } from "@webpack/common"; import { Button, ButtonLooks, ButtonWrapperClasses, React, Tooltip } from "@webpack/common";
function SilentMessageToggle() { function SilentMessageToggle(chatBoxProps: {
type: {
analyticsName: string;
};
}) {
const [enabled, setEnabled] = React.useState(false); const [enabled, setEnabled] = React.useState(false);
React.useEffect(() => { React.useEffect(() => {
@ -37,6 +41,8 @@ function SilentMessageToggle() {
return () => void removePreSendListener(listener); return () => void removePreSendListener(listener);
}, [enabled]); }, [enabled]);
if (chatBoxProps.type.analyticsName !== "normal") return null;
return ( return (
<Tooltip text="Toggle Silent Message"> <Tooltip text="Toggle Silent Message">
{tooltipProps => ( {tooltipProps => (
@ -78,7 +84,7 @@ export default definePlugin({
find: ".activeCommandOption", find: ".activeCommandOption",
replacement: { replacement: {
match: /"gift"\)\);(?<=(\i)\.push.+?disabled:(\i),.+?)/, match: /"gift"\)\);(?<=(\i)\.push.+?disabled:(\i),.+?)/,
replace: (m, array, disabled) => `${m}${disabled}||${array}.push($self.SilentMessageToggle());` replace: (m, array, disabled) => `${m};try{${disabled}||${array}.push($self.SilentMessageToggle(arguments[0]));}catch{}`
} }
} }
], ],

View file

@ -37,10 +37,16 @@ const settings = definePluginSettings({
} }
}); });
function SilentTypingToggle() { function SilentTypingToggle(chatBoxProps: {
type: {
analyticsName: string;
};
}) {
const { isEnabled } = settings.use(["isEnabled"]); const { isEnabled } = settings.use(["isEnabled"]);
const toggle = () => settings.store.isEnabled = !settings.store.isEnabled; const toggle = () => settings.store.isEnabled = !settings.store.isEnabled;
if (chatBoxProps.type.analyticsName !== "normal") return null;
return ( return (
<Tooltip text={isEnabled ? "Disable silent typing" : "Enable silent typing"}> <Tooltip text={isEnabled ? "Disable silent typing" : "Enable silent typing"}>
{(tooltipProps: any) => ( {(tooltipProps: any) => (
@ -83,7 +89,7 @@ export default definePlugin({
predicate: () => settings.store.showIcon, predicate: () => settings.store.showIcon,
replacement: { replacement: {
match: /(.)\.push.{1,30}disabled:(\i),.{1,20}\},"gift"\)\)/, match: /(.)\.push.{1,30}disabled:(\i),.{1,20}\},"gift"\)\)/,
replace: "$&;try{$2||$1.push($self.chatBarIcon())}catch{}", replace: "$&;try{$2||$1.push($self.chatBarIcon(arguments[0]))}catch{}",
} }
}, },
], ],