diff --git a/.github/ISSUE_TEMPLATE/blank.yml b/.github/ISSUE_TEMPLATE/blank.yml new file mode 100644 index 000000000..ba2b15b0e --- /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 24b32fe38..bc5d97662 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 26364fc94..93b1323e7 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 78f3c9db7..d8b949066 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 3bfe902f9..06a7c0a74 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 60127645c..f516b5d7a 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 4cdbcd984..26ae19c5d 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", {