ViewRaw: Add setting for swapping left/right click (#1263)
Co-authored-by: V <vendicated@riseup.net>
This commit is contained in:
parent
a4191c9f6c
commit
386dfe363a
@ -17,13 +17,14 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { addButton, removeButton } from "@api/MessagePopover";
|
import { addButton, removeButton } from "@api/MessagePopover";
|
||||||
|
import { definePluginSettings } from "@api/Settings";
|
||||||
import ErrorBoundary from "@components/ErrorBoundary";
|
import ErrorBoundary from "@components/ErrorBoundary";
|
||||||
import { Flex } from "@components/Flex";
|
import { Flex } from "@components/Flex";
|
||||||
import { Devs } from "@utils/constants";
|
import { Devs } from "@utils/constants";
|
||||||
import { Margins } from "@utils/margins";
|
import { Margins } from "@utils/margins";
|
||||||
import { copyWithToast } from "@utils/misc";
|
import { copyWithToast } from "@utils/misc";
|
||||||
import { closeModal, ModalCloseButton, ModalContent, ModalFooter, ModalHeader, ModalRoot, ModalSize, openModal } from "@utils/modal";
|
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 { Button, ChannelStore, Forms, Parser, Text } from "@webpack/common";
|
||||||
import { Message } from "discord-types/general";
|
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({
|
export default definePlugin({
|
||||||
name: "ViewRaw",
|
name: "ViewRaw",
|
||||||
description: "Copy and view the raw content/data of any message.",
|
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"],
|
dependencies: ["MessagePopoverAPI"],
|
||||||
|
settings,
|
||||||
|
|
||||||
start() {
|
start() {
|
||||||
addButton("ViewRaw", msg => {
|
addButton("ViewRaw", msg => {
|
||||||
return {
|
const handleClick = () => {
|
||||||
label: "View Raw (Left Click) / Copy Raw (Right Click)",
|
if (settings.store.clickMethod === "Right") {
|
||||||
icon: CopyIcon,
|
copyWithToast(msg.content);
|
||||||
message: msg,
|
} else {
|
||||||
channel: ChannelStore.getChannel(msg.channel_id),
|
openViewRawModal(msg);
|
||||||
onClick: () => openViewRawModal(msg),
|
}
|
||||||
onContextMenu: e => {
|
};
|
||||||
|
|
||||||
|
const handleContextMenu = e => {
|
||||||
|
if (settings.store.clickMethod === "Left") {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
copyWithToast(msg.content);
|
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
|
||||||
|
};
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -322,6 +322,10 @@ export const Devs = /* #__PURE__*/ Object.freeze({
|
|||||||
ImLvna: {
|
ImLvna: {
|
||||||
name: "Luna <3",
|
name: "Luna <3",
|
||||||
id: 174200708818665472n
|
id: 174200708818665472n
|
||||||
|
},
|
||||||
|
rad: {
|
||||||
|
name: "rad",
|
||||||
|
id: 113027285765885952n
|
||||||
}
|
}
|
||||||
} satisfies Record<string, Dev>);
|
} satisfies Record<string, Dev>);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user