fix plugins using the image modal (#3368)

This commit is contained in:
sadan4 2025-04-10 10:44:04 -04:00 committed by GitHub
parent 64dadcce4c
commit 8ad33db6c2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 3 additions and 52 deletions

View file

@ -13,13 +13,6 @@ export default definePlugin({
authors: [Devs.sadan, Devs.Nuckyz],
description: "Allows you to omit either width or height when opening an image modal",
patches: [
{
find: ".contain,SCALE_DOWN:",
replacement: {
match: /(?<="IMAGE"===\i\?)\i(?=\?)/,
replace: "true"
}
},
{
find: ".dimensionlessImage,",
replacement: {

View file

@ -162,14 +162,6 @@ export default definePlugin({
managedStyle,
patches: [
{
find: ".contain,SCALE_DOWN:",
replacement: {
match: /imageClassName:/,
replace: `id:"${ELEMENT_ID}",$&`
}
},
{
find: ".dimensionlessImage,",
replacement: [

View file

@ -1,23 +0,0 @@
.vc-position-inherit {
position: inherit;
}
/**
* copy pasted from discord css. not really webpack-findable since it's the only class in the module
**/
.vc-image-modal {
background: transparent !important;
box-shadow: none !important;
display: flex;
justify-content: center;
align-items: center;
border-radius: 0;
}
@media(width <= 485px) {
.vc-image-modal {
overflow: visible;
overflow: initial;
}
}

View file

@ -16,8 +16,6 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import "./discord.css";
import { MessageObject } from "@api/MessageEvents";
import { ChannelStore, ComponentDispatch, Constants, FluxDispatcher, GuildStore, i18n, IconUtils, InviteActions, MessageActions, PrivateChannelsStore, RestAPI, SelectedChannelStore, SelectedGuildStore, UserProfileActions, UserProfileStore, UserSettingsActionCreators, UserUtils } from "@webpack/common";
import { Channel, Guild, Message, User } from "discord-types/general";
@ -143,9 +141,6 @@ export function sendMessage(
*/
export function openImageModal(item: Except<MediaModalItem, "type">, mediaModalProps?: Omit<MediaModalProps, "items">) {
return openMediaModal({
className: "vc-image-modal",
fit: "vc-position-inherit",
shouldAnimateCarousel: true,
items: [{
type: "IMAGE",
original: item.original ?? item.url,

View file

@ -16,7 +16,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import { filters, findModuleId, mapMangledModuleLazy, proxyLazyWebpack, wreq } from "@webpack";
import { filters, findByCodeLazy, mapMangledModuleLazy } from "@webpack";
import type { ComponentType, PropsWithChildren, ReactNode, Ref } from "react";
import { LazyComponent } from "./react";
@ -138,16 +138,10 @@ export type MediaModalProps = {
fit?: string;
shouldRedactExplicitContent?: boolean;
shouldHideMediaOptions?: boolean;
shouldAnimateCarousel?: boolean;
};
export const openMediaModal: (props: MediaModalProps) => void = proxyLazyWebpack(() => {
const mediaModalKeyModuleId = findModuleId('"Zoomed Media Modal"');
if (mediaModalKeyModuleId == null) return;
const openMediaModalModule = wreq(findModuleId(mediaModalKeyModuleId, "modalKey:") as any);
return Object.values<any>(openMediaModalModule).find(v => String(v).includes("modalKey:"));
});
// modal key: "Media Viewer Modal"
export const openMediaModal: (props: MediaModalProps) => void = findByCodeLazy("hasMediaOptions", "shouldHideMediaOptions");
interface ModalAPI {
/**