aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVendicated <vendicated@riseup.net>2022-10-14 22:38:49 +0200
committerVendicated <vendicated@riseup.net>2022-10-14 22:40:20 +0200
commit0d996633f201b2ab95d8b9dc376a7da2dcca315d (patch)
treedb6e1d1a9a4f863dd20f8380f5ce240854c94834 /src
parenta4e98f92520306dad8bb1cdd9884f0b331fd0bdd (diff)
downloadVencord-0d996633f201b2ab95d8b9dc376a7da2dcca315d.tar.gz
Vencord-0d996633f201b2ab95d8b9dc376a7da2dcca315d.tar.bz2
Vencord-0d996633f201b2ab95d8b9dc376a7da2dcca315d.zip
ViewIcons: Use ImageModal again
Diffstat (limited to 'src')
-rw-r--r--src/plugins/viewIcons.tsx16
-rw-r--r--src/utils/modal.tsx7
2 files changed, 17 insertions, 6 deletions
diff --git a/src/plugins/viewIcons.tsx b/src/plugins/viewIcons.tsx
index 2b404f2..a55b8b8 100644
--- a/src/plugins/viewIcons.tsx
+++ b/src/plugins/viewIcons.tsx
@@ -1,6 +1,12 @@
import { Devs } from "../utils/constants";
-import IpcEvents from "../utils/IpcEvents";
import definePlugin from "../utils/types";
+import { lazyWebpack, makeLazy } from "../utils/misc";
+import { ModalSize, openModal } from "../utils/modal";
+import { find } from "../webpack";
+import { React } from "../webpack/common";
+
+const ImageModal = lazyWebpack(m => m.prototype?.render?.toString().includes("OPEN_ORIGINAL_IMAGE"));
+const getMaskedLink = makeLazy(() => find(m => m.type?.toString().includes("MASKED_LINK)")));
const OPEN_URL = "Vencord.Plugins.plugins.ViewIcons.openImage(";
export default definePlugin({
@@ -9,16 +15,14 @@ export default definePlugin({
description: "Makes Avatars/Banners in user profiles clickable, and adds Guild Context Menu Entries to View Banner/Icon.",
openImage(url: string) {
- VencordNative.ipc.invoke(IpcEvents.OPEN_EXTERNAL, url);
- // husk
- /* openModal(() => (
+ openModal(() => (
<ImageModal
shouldAnimate={true}
original={url}
src={url}
- renderLinkComponent={renderMaskedLink}
+ renderLinkComponent={props => React.createElement(getMaskedLink(), props)}
/>
- ), { size: Modal.ModalSize.DYNAMIC }); */
+ ), { size: ModalSize.DYNAMIC });
},
patches: [
diff --git a/src/utils/modal.tsx b/src/utils/modal.tsx
index 9e5785d..f142aee 100644
--- a/src/utils/modal.tsx
+++ b/src/utils/modal.tsx
@@ -10,6 +10,13 @@ const Modals = mapMangledModuleLazy("onCloseRequest:null!=", {
let modalId = 1337;
+export enum ModalSize {
+ SMALL = "small",
+ MEDIUM = "medium",
+ LARGE = "large",
+ DYNAMIC = "dynamic",
+}
+
/**
* Open a modal
* @param Component The component to render in the modal