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

@ -22,7 +22,11 @@ import { Devs } from "@utils/constants";
import definePlugin from "@utils/types";
import { Button, ButtonLooks, ButtonWrapperClasses, React, Tooltip } from "@webpack/common";
function SilentMessageToggle() {
function SilentMessageToggle(chatBoxProps: {
type: {
analyticsName: string;
};
}) {
const [enabled, setEnabled] = React.useState(false);
React.useEffect(() => {
@ -37,6 +41,8 @@ function SilentMessageToggle() {
return () => void removePreSendListener(listener);
}, [enabled]);
if (chatBoxProps.type.analyticsName !== "normal") return null;
return (
<Tooltip text="Toggle Silent Message">
{tooltipProps => (
@ -78,7 +84,7 @@ export default definePlugin({
find: ".activeCommandOption",
replacement: {
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{}`
}
}
],

@ -37,10 +37,16 @@ const settings = definePluginSettings({
}
});
function SilentTypingToggle() {
function SilentTypingToggle(chatBoxProps: {
type: {
analyticsName: string;
};
}) {
const { isEnabled } = settings.use(["isEnabled"]);
const toggle = () => settings.store.isEnabled = !settings.store.isEnabled;
if (chatBoxProps.type.analyticsName !== "normal") return null;
return (
<Tooltip text={isEnabled ? "Disable silent typing" : "Enable silent typing"}>
{(tooltipProps: any) => (
@ -83,7 +89,7 @@ export default definePlugin({
predicate: () => settings.store.showIcon,
replacement: {
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{}",
}
},
],