diff --git a/.github/ISSUE_TEMPLATE/blank.yml b/.github/ISSUE_TEMPLATE/blank.yml
new file mode 100644
index 00000000..ba2b15b0
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/blank.yml
@@ -0,0 +1,10 @@
+name: Blank Issue
+description: Create a blank issue. ALWAYS FIRST USE OUR SUPPORT CHANNEL! ONLY USE THIS FORM IF YOU ARE A CONTRIBUTOR OR WERE TOLD TO DO SO IN THE SUPPORT CHANNEL.
+
+body:
+ - type: textarea
+ id: content
+ attributes:
+ label: Content
+ validations:
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 24b32fe3..bc5d9766 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -1,4 +1,4 @@
-blank_issues_enabled: true
+blank_issues_enabled: false
contact_links:
- name: Vencord Support Server
url: https://discord.gg/D9uwnFnqmd
diff --git a/src/components/Icons.tsx b/src/components/Icons.tsx
index 26364fc9..93b1323e 100644
--- a/src/components/Icons.tsx
+++ b/src/components/Icons.tsx
@@ -236,3 +236,22 @@ export function ReplyIcon(props: IconProps) {
);
}
+
+export function DeleteIcon(props: IconProps) {
+ return (
+
+
+
+
+ );
+}
diff --git a/src/components/PluginSettings/PluginModal.tsx b/src/components/PluginSettings/PluginModal.tsx
index 78f3c9db..d8b94906 100644
--- a/src/components/PluginSettings/PluginModal.tsx
+++ b/src/components/PluginSettings/PluginModal.tsx
@@ -238,7 +238,7 @@ export default function PluginModal({ plugin, onRestartNeeded, onClose, transiti
{isRegexRules && renderFindError(rule.find)}
diff --git a/src/plugins/viewIcons/index.tsx b/src/plugins/viewIcons/index.tsx
index 3bfe902f..06a7c0a7 100644
--- a/src/plugins/viewIcons/index.tsx
+++ b/src/plugins/viewIcons/index.tsx
@@ -83,6 +83,7 @@ function openImage(url: string) {
}
const UserContext: NavContextMenuPatchCallback = (children, { user, guildId }: UserContextProps) => () => {
+ if (!user) return;
const memberAvatar = GuildMemberStore.getMember(guildId!, user.id)?.avatar || null;
children.splice(-1, 0, (
@@ -111,7 +112,7 @@ const UserContext: NavContextMenuPatchCallback = (children, { user, guildId }: U
};
const GuildContext: NavContextMenuPatchCallback = (children, { guild }: GuildContextProps) => () => {
- if(!guild) return;
+ if (!guild) return;
const { id, icon, banner } = guild;
if (!banner && !icon) return;
diff --git a/src/plugins/viewRaw/index.tsx b/src/plugins/viewRaw/index.tsx
index 60127645..f516b5d7 100644
--- a/src/plugins/viewRaw/index.tsx
+++ b/src/plugins/viewRaw/index.tsx
@@ -119,7 +119,7 @@ const settings = definePluginSettings({
function MakeContextCallback(name: string) {
const callback: NavContextMenuPatchCallback = (children, props) => () => {
- if (name === "Guild" && !props.guild) return;
+ if ((name === "Guild" && !props.guild) || (name === "User" && !props.user)) return;
const lastChild = children.at(-1);
if (lastChild?.key === "developer-actions") {
const p = lastChild.props;
diff --git a/src/plugins/webContextMenus.web/index.ts b/src/plugins/webContextMenus.web/index.ts
index 4cdbcd98..26ae19c5 100644
--- a/src/plugins/webContextMenus.web/index.ts
+++ b/src/plugins/webContextMenus.web/index.ts
@@ -218,10 +218,19 @@ export default definePlugin({
},
async paste() {
- const text = await navigator.clipboard.readText();
+ const clip = (await navigator.clipboard.read())[0];
+ if (!clip) return;
const data = new DataTransfer();
- data.setData("text/plain", text);
+ for (const type of clip.types) {
+ if (type === "image/png") {
+ const file = new File([await clip.getType(type)], "unknown.png", { type });
+ data.items.add(file);
+ } else if (type === "text/plain") {
+ const blob = await clip.getType(type);
+ data.setData(type, await blob.text());
+ }
+ }
document.dispatchEvent(
new ClipboardEvent("paste", {