From a1fabcdf0aa665c7ee0254c1d7f257e5262a954d Mon Sep 17 00:00:00 2001 From: V Date: Fri, 16 Jun 2023 19:28:30 +0200 Subject: [PATCH] UnsuppressEmbeds: Support dms --- ...uppressEmbeds.tsx => unsuppressEmbeds.tsx} | 50 +++++++++---------- 1 file changed, 24 insertions(+), 26 deletions(-) rename src/plugins/{UnsuppressEmbeds.tsx => unsuppressEmbeds.tsx} (56%) diff --git a/src/plugins/UnsuppressEmbeds.tsx b/src/plugins/unsuppressEmbeds.tsx similarity index 56% rename from src/plugins/UnsuppressEmbeds.tsx rename to src/plugins/unsuppressEmbeds.tsx index 99735c73..a2196077 100644 --- a/src/plugins/UnsuppressEmbeds.tsx +++ b/src/plugins/unsuppressEmbeds.tsx @@ -24,34 +24,32 @@ import { Menu, PermissionsBits, PermissionStore, RestAPI, UserStore } from "@web const EMBED_SUPPRESSED = 1 << 2; -const messageContextMenuPatch: NavContextMenuPatchCallback = (children, props) => { - const { message: { author, embeds, flags } } = props; - +const messageContextMenuPatch: NavContextMenuPatchCallback = (children, { channel, message: { author, embeds, flags, id: messageId } }) => () => { const isEmbedSuppressed = (flags & EMBED_SUPPRESSED) !== 0; - const hasEmbedPerms = !!(PermissionStore.getChannelPermissions({ id: props.channel.id }) & PermissionsBits.EMBED_LINKS); + if (!isEmbedSuppressed && !embeds.length) return; - return () => { - if (!isEmbedSuppressed && !embeds.length) return; - if (author.id === UserStore.getCurrentUser().id && !hasEmbedPerms) return; - const menuGroup = findGroupChildrenByChildId("delete", children); - const deleteItem = menuGroup?.findIndex(i => i?.props?.id === "delete"); - if (!deleteItem || !menuGroup) return; - menuGroup.splice(deleteItem - 1, 0, ( - { - RestAPI.patch({ - url: `/channels/${props.channel.id}/messages/${props.message.id}`, - body: { flags: isEmbedSuppressed ? flags & ~EMBED_SUPPRESSED : flags | EMBED_SUPPRESSED } - }); - }} - /> - )); - }; + const hasEmbedPerms = channel.isPrivate() || !!(PermissionStore.getChannelPermissions({ id: channel.id }) & PermissionsBits.EMBED_LINKS); + if (author.id === UserStore.getCurrentUser().id && !hasEmbedPerms) return; + + const menuGroup = findGroupChildrenByChildId("delete", children); + const deleteIndex = menuGroup?.findIndex(i => i?.props?.id === "delete"); + if (!deleteIndex || !menuGroup) return; + + menuGroup.splice(deleteIndex - 1, 0, ( + + RestAPI.patch({ + url: `/channels/${channel.id}/messages/${messageId}`, + body: { flags: isEmbedSuppressed ? flags & ~EMBED_SUPPRESSED : flags | EMBED_SUPPRESSED } + }) + } + /> + )); }; export default definePlugin({