Stable Fixes

This commit is contained in:
thororen1234 2025-04-09 23:24:22 -04:00
parent 16763a7cd4
commit c17154e7cd
No known key found for this signature in database
7 changed files with 5 additions and 83 deletions

View file

@ -7,24 +7,10 @@
import { NavContextMenuPatchCallback } from "@api/ContextMenu"; import { NavContextMenuPatchCallback } from "@api/ContextMenu";
import { EquicordDevs } from "@utils/constants"; import { EquicordDevs } from "@utils/constants";
import definePlugin from "@utils/types"; import definePlugin from "@utils/types";
import { findByPropsLazy } from "@webpack"; import { Menu, MessageActions, MessageStore, NavigationRouter, Toasts, UserStore } from "@webpack/common";
import { Menu, NavigationRouter, Toasts } from "@webpack/common";
const MessageStore = findByPropsLazy("getMessages", "getMessage");
const ChannelStore = findByPropsLazy("getChannel", "getDMFromUserId");
const UserStore = findByPropsLazy("getUser", "getCurrentUser");
const MessageActions = findByPropsLazy("fetchMessages", "searchMessages");
async function findLastMessageFromUser(channelId: string, userId: string) { async function findLastMessageFromUser(channelId: string, userId: string) {
try { try {
if (!MessageStore || !MessageActions) {
Toasts.show({
type: Toasts.Type.FAILURE,
message: "Required Discord modules not found.",
id: Toasts.genId()
});
return null;
}
const messageCollection = MessageStore.getMessages(channelId); const messageCollection = MessageStore.getMessages(channelId);
let messages = messageCollection?.toArray() || []; let messages = messageCollection?.toArray() || [];
let userMessage = messages.filter(m => m?.author?.id === userId).pop(); let userMessage = messages.filter(m => m?.author?.id === userId).pop();
@ -77,23 +63,7 @@ async function jumpToLastActive(channel: any, targetUserId?: string) {
userId = targetUserId; userId = targetUserId;
} else { } else {
if (!UserStore?.getCurrentUser) {
Toasts.show({
type: Toasts.Type.FAILURE,
message: "Could not determine user. Try again later.",
id: Toasts.genId()
});
return;
}
const currentUser = UserStore.getCurrentUser(); const currentUser = UserStore.getCurrentUser();
if (!currentUser || !currentUser.id) {
Toasts.show({
type: Toasts.Type.FAILURE,
message: "Could not determine current user. Try again later.",
id: Toasts.genId()
});
return;
}
userId = currentUser.id; userId = currentUser.id;
} }
const messageId = await findLastMessageFromUser(channelId, userId); const messageId = await findLastMessageFromUser(channelId, userId);

View file

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

View file

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

View file

@ -85,7 +85,7 @@ export default definePlugin({
find: ".USER_MENTION)", find: ".USER_MENTION)",
replacement: [ replacement: [
{ {
match: /(?<=onContextMenu:\i,color:)\i(?=\},\i\),\{children)(?<=user:(\i),channel:(\i).{0,500}?)/, match: /(?<=onContextMenu:\i,color:)\i(?=,onClick)(?<=user:(\i),channel:(\i).+?)/,
replace: "$self.getColorInt($1?.id,$2?.id)", replace: "$self.getColorInt($1?.id,$2?.id)",
} }
], ],

View file

@ -1,24 +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

@ -143,9 +143,6 @@ export function sendMessage(
*/ */
export function openImageModal(item: Except<MediaModalItem, "type">, mediaModalProps?: Omit<MediaModalProps, "items">) { export function openImageModal(item: Except<MediaModalItem, "type">, mediaModalProps?: Omit<MediaModalProps, "items">) {
return openMediaModal({ return openMediaModal({
className: "vc-image-modal",
fit: "vc-position-inherit",
shouldAnimateCarousel: true,
items: [{ items: [{
type: "IMAGE", type: "IMAGE",
original: item.original ?? item.url, original: item.original ?? item.url,

View file

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