diff options
author | rad <dagammadragon@gmail.com> | 2023-06-12 19:05:04 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-13 01:05:04 +0200 |
commit | 386dfe363a484ac0cd492cf6f61a717d90a454ca (patch) | |
tree | 494d36d8ab277c12b1aea848d2997d8165bcd4c8 /src/plugins | |
parent | a4191c9f6c8d1d856935364ea3147c65c1dfe852 (diff) | |
download | Vencord-386dfe363a484ac0cd492cf6f61a717d90a454ca.tar.gz Vencord-386dfe363a484ac0cd492cf6f61a717d90a454ca.tar.bz2 Vencord-386dfe363a484ac0cd492cf6f61a717d90a454ca.zip |
ViewRaw: Add setting for swapping left/right click (#1263)
Co-authored-by: V <vendicated@riseup.net>
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/viewRaw.tsx | 51 |
1 files changed, 42 insertions, 9 deletions
diff --git a/src/plugins/viewRaw.tsx b/src/plugins/viewRaw.tsx index d1ef717..eb0c352 100644 --- a/src/plugins/viewRaw.tsx +++ b/src/plugins/viewRaw.tsx @@ -17,13 +17,14 @@ */ import { addButton, removeButton } from "@api/MessagePopover"; +import { definePluginSettings } from "@api/Settings"; import ErrorBoundary from "@components/ErrorBoundary"; import { Flex } from "@components/Flex"; import { Devs } from "@utils/constants"; import { Margins } from "@utils/margins"; import { copyWithToast } from "@utils/misc"; import { closeModal, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalRoot, ModalSize, openModal } from "@utils/modal"; -import definePlugin from "@utils/types"; +import definePlugin, { OptionType } from "@utils/types"; import { Button, ChannelStore, Forms, Parser, Text } from "@webpack/common"; import { Message } from "discord-types/general"; @@ -116,26 +117,58 @@ function openViewRawModal(msg: Message) { )); } +const settings = definePluginSettings({ + clickMethod: { + description: "Change the button to view the raw content/data of any message.", + type: OptionType.SELECT, + options: [ + { label: "Left Click to view the raw content.", value: "Left", default: true }, + { label: "Right click to view the raw content.", value: "Right" } + ] + } +}); + export default definePlugin({ name: "ViewRaw", description: "Copy and view the raw content/data of any message.", - authors: [Devs.KingFish, Devs.Ven], + authors: [Devs.KingFish, Devs.Ven, Devs.rad], dependencies: ["MessagePopoverAPI"], + settings, start() { addButton("ViewRaw", msg => { - return { - label: "View Raw (Left Click) / Copy Raw (Right Click)", - icon: CopyIcon, - message: msg, - channel: ChannelStore.getChannel(msg.channel_id), - onClick: () => openViewRawModal(msg), - onContextMenu: e => { + const handleClick = () => { + if (settings.store.clickMethod === "Right") { + copyWithToast(msg.content); + } else { + openViewRawModal(msg); + } + }; + + const handleContextMenu = e => { + if (settings.store.clickMethod === "Left") { e.preventDefault(); e.stopPropagation(); copyWithToast(msg.content); + } else { + e.preventDefault(); + e.stopPropagation(); + openViewRawModal(msg); } }; + + const label = settings.store.clickMethod === "Right" + ? "Copy Raw (Left Click) / View Raw (Right Click)" + : "View Raw (Left Click) / Copy Raw (Right Click)"; + + return { + label, + icon: CopyIcon, + message: msg, + channel: ChannelStore.getChannel(msg.channel_id), + onClick: handleClick, + onContextMenu: handleContextMenu + }; }); }, |