From a019187f1997f5eb38e022ca039a9e65db06a515 Mon Sep 17 00:00:00 2001 From: Creation's Date: Sun, 27 Oct 2024 14:03:16 -0400 Subject: [PATCH] feat(MessagePeek): add settings & small fix (#83) * added settings to disable or enable guild / dm peeking, fixed it so you dont have to use any for globalName * Update index.tsx --- .../messagePeek/components/MessagePeek.tsx | 8 +++++- src/equicordplugins/messagePeek/index.tsx | 10 +++++-- src/equicordplugins/messagePeek/settings.ts | 26 +++++++++++++++++++ 3 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 src/equicordplugins/messagePeek/settings.ts diff --git a/src/equicordplugins/messagePeek/components/MessagePeek.tsx b/src/equicordplugins/messagePeek/components/MessagePeek.tsx index 9dbe01b1..35718736 100644 --- a/src/equicordplugins/messagePeek/components/MessagePeek.tsx +++ b/src/equicordplugins/messagePeek/components/MessagePeek.tsx @@ -15,6 +15,12 @@ import { MessagePeekProps } from "../types"; const ChannelWrapperStyles = findByPropsLazy("muted", "subText"); const ChannelStyles = findByPropsLazy("closeButton", "subtext"); +declare module "discord-types/general" { + interface User { + globalName?: string; + } +} + export default function MessagePeek(props: MessagePeekProps) { const { channel, channel_url } = props; if (!channel && !channel_url) return null; @@ -38,7 +44,7 @@ export default function MessagePeek(props: MessagePeekProps) { > 256 ? Parser.parse(content.slice(0, 256).trim()) : Parser.parse(content)}>
- {`${(lastMessage.author as any).globalName || lastMessage.author.username}: `} + {`${lastMessage.author.globalName || lastMessage.author.username}: `} {Parser.parseInlineReply(content)}
diff --git a/src/equicordplugins/messagePeek/index.tsx b/src/equicordplugins/messagePeek/index.tsx index 8e4e2bc5..294a9cf9 100644 --- a/src/equicordplugins/messagePeek/index.tsx +++ b/src/equicordplugins/messagePeek/index.tsx @@ -9,12 +9,16 @@ import { EquicordDevs } from "@utils/constants"; import definePlugin from "@utils/types"; import MessagePeek from "./components/MessagePeek"; +import { settings } from "./settings"; import { MessagePeekProps } from "./types"; export default definePlugin({ name: "MessagePeek", description: "See the last message in a Channel like on mobile", authors: [EquicordDevs.HypedDomi], + + settings: settings, + patches: [ { // DMs @@ -28,7 +32,8 @@ export default definePlugin({ $self.renderMessagePeek({ channel_url: $1.children.props.children[0].props.to }) ]; `.replace(/\s+/g, "") - } + }, + predicate: () => settings.store.dms === true }, { // Guild channels @@ -40,7 +45,8 @@ export default definePlugin({ $1[0].props.children[1].props.children, $self.renderMessagePeek({ channel: $1[0].props.children[0].props.channel }) ];`.replace(/\s+/g, "") - } + }, + predicate: () => settings.store.guildChannels === true } ], renderMessagePeek: (props: MessagePeekProps) => { diff --git a/src/equicordplugins/messagePeek/settings.ts b/src/equicordplugins/messagePeek/settings.ts new file mode 100644 index 00000000..2dc1ba50 --- /dev/null +++ b/src/equicordplugins/messagePeek/settings.ts @@ -0,0 +1,26 @@ +/* + * Vencord, a Discord client mod + * Copyright (c) 2024 Vendicated and contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import { definePluginSettings } from "@api/Settings"; +import { OptionType } from "@utils/types"; + +const settings = definePluginSettings({ + guildChannels: { + description: "Show message peek in guild channels", + type: OptionType.BOOLEAN, + default: true, + restartNeeded: true + }, + dms: { + description: "Show message peek in DMs", + type: OptionType.BOOLEAN, + default: true, + restartNeeded: true + } +}); + +export default settings; +export { settings };