UnsuppressEmbeds: Support dms
This commit is contained in:
		
							parent
							
								
									eaeb60308e
								
							
						
					
					
						commit
						a1fabcdf0a
					
				
					 1 changed files with 24 additions and 26 deletions
				
			
		|  | @ -24,34 +24,32 @@ import { Menu, PermissionsBits, PermissionStore, RestAPI, UserStore } from "@web | ||||||
| 
 | 
 | ||||||
| const EMBED_SUPPRESSED = 1 << 2; | const EMBED_SUPPRESSED = 1 << 2; | ||||||
| 
 | 
 | ||||||
| const messageContextMenuPatch: NavContextMenuPatchCallback = (children, props) => { | const messageContextMenuPatch: NavContextMenuPatchCallback = (children, { channel, message: { author, embeds, flags, id: messageId } }) => () => { | ||||||
|     const { message: { author, embeds, flags } } = props; |  | ||||||
| 
 |  | ||||||
|     const isEmbedSuppressed = (flags & EMBED_SUPPRESSED) !== 0; |     const isEmbedSuppressed = (flags & EMBED_SUPPRESSED) !== 0; | ||||||
|     const hasEmbedPerms = !!(PermissionStore.getChannelPermissions({ id: props.channel.id }) & PermissionsBits.EMBED_LINKS); |  | ||||||
| 
 |  | ||||||
|     return () => { |  | ||||||
|     if (!isEmbedSuppressed && !embeds.length) return; |     if (!isEmbedSuppressed && !embeds.length) return; | ||||||
|  | 
 | ||||||
|  |     const hasEmbedPerms = channel.isPrivate() || !!(PermissionStore.getChannelPermissions({ id: channel.id }) & PermissionsBits.EMBED_LINKS); | ||||||
|     if (author.id === UserStore.getCurrentUser().id && !hasEmbedPerms) return; |     if (author.id === UserStore.getCurrentUser().id && !hasEmbedPerms) return; | ||||||
|  | 
 | ||||||
|     const menuGroup = findGroupChildrenByChildId("delete", children); |     const menuGroup = findGroupChildrenByChildId("delete", children); | ||||||
|         const deleteItem = menuGroup?.findIndex(i => i?.props?.id === "delete"); |     const deleteIndex = menuGroup?.findIndex(i => i?.props?.id === "delete"); | ||||||
|         if (!deleteItem || !menuGroup) return; |     if (!deleteIndex || !menuGroup) return; | ||||||
|         menuGroup.splice(deleteItem - 1, 0, ( | 
 | ||||||
|  |     menuGroup.splice(deleteIndex - 1, 0, ( | ||||||
|         <Menu.MenuItem |         <Menu.MenuItem | ||||||
|             id="unsuppress-embeds" |             id="unsuppress-embeds" | ||||||
|             key="unsuppress-embeds" |             key="unsuppress-embeds" | ||||||
|             label={isEmbedSuppressed ? "Unsuppress Embeds" : "Suppress Embeds"} |             label={isEmbedSuppressed ? "Unsuppress Embeds" : "Suppress Embeds"} | ||||||
|             color={isEmbedSuppressed ? undefined : "danger"} |             color={isEmbedSuppressed ? undefined : "danger"} | ||||||
|             icon={isEmbedSuppressed ? ImageVisible : ImageInvisible} |             icon={isEmbedSuppressed ? ImageVisible : ImageInvisible} | ||||||
|                 action={() => { |             action={() => | ||||||
|                 RestAPI.patch({ |                 RestAPI.patch({ | ||||||
|                         url: `/channels/${props.channel.id}/messages/${props.message.id}`, |                     url: `/channels/${channel.id}/messages/${messageId}`, | ||||||
|                     body: { flags: isEmbedSuppressed ? flags & ~EMBED_SUPPRESSED : flags | EMBED_SUPPRESSED } |                     body: { flags: isEmbedSuppressed ? flags & ~EMBED_SUPPRESSED : flags | EMBED_SUPPRESSED } | ||||||
|                     }); |                 }) | ||||||
|                 }} |             } | ||||||
|         /> |         /> | ||||||
|     )); |     )); | ||||||
|     }; |  | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| export default definePlugin({ | export default definePlugin({ | ||||||
		Loading…
	
		Reference in a new issue