diff --git a/src/components/ThemeSettings/ThemesTab.tsx b/src/components/ThemeSettings/ThemesTab.tsx index c26d174d..05344298 100644 --- a/src/components/ThemeSettings/ThemesTab.tsx +++ b/src/components/ThemeSettings/ThemesTab.tsx @@ -35,7 +35,7 @@ import { useAwaiter } from "@utils/react"; import type { ThemeHeader } from "@utils/themes"; import { getThemeInfo, stripBOM, type UserThemeHeader } from "@utils/themes/bd"; import { usercssParse } from "@utils/themes/usercss"; -import { findByPropsLazy, findLazy } from "@webpack"; +import { findLazy } from "@webpack"; import { Button, Card, Forms, React, showToast, TabBar, TextInput, Tooltip, useEffect, useMemo, useRef, useState } from "@webpack/common"; import type { ComponentType, Ref, SyntheticEvent } from "react"; import type { UserstyleHeader } from "usercss-meta"; @@ -50,10 +50,7 @@ type FileInput = ComponentType<{ multiple?: boolean; filters?: { name?: string; extensions: string[]; }[]; }>; - -const InviteActions = findByPropsLazy("resolveInvite"); const FileInput: FileInput = findLazy(m => m.prototype?.activateUploadDialogue && m.prototype.setRef); -const TextAreaProps = findLazy(m => typeof m.textarea === "string"); const cl = classNameFactory("vc-settings-theme-"); diff --git a/src/components/VencordSettings/settingsStyles.css b/src/components/VencordSettings/settingsStyles.css index 13558be2..5349993d 100644 --- a/src/components/VencordSettings/settingsStyles.css +++ b/src/components/VencordSettings/settingsStyles.css @@ -33,6 +33,20 @@ padding: 0.5em; border: 1px solid var(--background-modifier-accent); max-height: unset; + background-color: transparent; + box-sizing: border-box; + font-size: 12px; + line-height: 14px; + resize: none; + width: 100%; +} + +.vc-settings-theme-links::placeholder { + color: var(--header-secondary); +} + +.vc-settings-theme-links:focus { + background-color: var(--background-tertiary); } .vc-cloud-settings-sync-grid { diff --git a/src/equicordplugins/betterActivities/index.tsx b/src/equicordplugins/betterActivities/index.tsx index 429fb356..2956acb0 100644 --- a/src/equicordplugins/betterActivities/index.tsx +++ b/src/equicordplugins/betterActivities/index.tsx @@ -127,7 +127,9 @@ const ActivityTooltip = ({ activity, application, user }: Readonly<{ activity: A ); }; -function getActivityApplication({ application_id }: Activity) { +function getActivityApplication(activity: Activity | null) { + if (!activity) return undefined; + const { application_id } = activity; if (!application_id) return undefined; let application = ApplicationStore.getApplication(application_id); if (!application && fetchedApplications.has(application_id)) { @@ -309,7 +311,7 @@ export default definePlugin({ return null; }, - showAllActivitiesComponent({ activity, user, ...props }: Readonly<{ activity: Activity; user: User; application: Application; type: string; }>) { + showAllActivitiesComponent({ activity, user, ...props }: Readonly<{ activity: Activity | null; user: User; application: Application; type: string; }>) { const [currentActivity, setCurrentActivity] = useState( activity?.type !== 4 ? activity! : null ); @@ -340,7 +342,7 @@ export default definePlugin({ if (settings.store.allActivitiesStyle === "carousel") { return (
- {currentActivity?.id === activity?.id ? ( + {activity && currentActivity?.id === activity?.id ? ( $1&&ev.target.style.backgroundImage&&$self.openImage($2),style:{cursor:$1?"pointer":void 0,' } })), - // Old User DMs "User Profile" popup in the right - { - find: ".avatarPositionPanel", - replacement: { - match: /(avatarWrapperNonUserBot.{0,50})onClick:(\i\|\|\i)\?void 0(?<=,avatarSrc:(\i).+?)/, - replace: "$1style:($2)?{cursor:\"pointer\"}:{},onClick:$2?()=>{$self.openImage($3)}" - } - }, // Group DMs top small & large icon { find: /\.recipients\.length>=2(?! string, original: any, (...args: any[]): void; }; + } as any as { toString: () => string, original: any, (...args: any[]): void; $$vencordPatchedSource?: string; }; factory.toString = originalMod.toString.bind(originalMod); factory.original = originalMod; @@ -354,5 +354,9 @@ function patchFactories(factories: Record boolean; -type PropsFilter = Array; -type CodeFilter = Array; -type StoreNameFilter = string; +export type PropsFilter = Array; +export type CodeFilter = Array; +export type StoreNameFilter = string; -const stringMatches = (s: string, filter: CodeFilter) => +export const stringMatches = (s: string, filter: CodeFilter) => filter.every(f => typeof f === "string" ? s.includes(f) - : f.test(s) + : (f.global && (f.lastIndex = 0), f.test(s)) ); export const filters = { @@ -258,6 +258,8 @@ export const findBulk = traceFunction("findBulk", function findBulk(...filterFns * @returns string or null */ export const findModuleId = traceFunction("findModuleId", function findModuleId(...code: CodeFilter) { + code = code.map(canonicalizeMatch); + for (const id in wreq.m) { if (stringMatches(wreq.m[id].toString(), code)) return id; } @@ -452,12 +454,9 @@ export function findExportedComponentLazy(...props: Prop * }) */ export const mapMangledModule = traceFunction("mapMangledModule", function mapMangledModule(code: string | RegExp | CodeFilter, mappers: Record): Record { - if (!Array.isArray(code)) code = [code]; - code = code.map(canonicalizeMatch); - const exports = {} as Record; - const id = findModuleId(...code); + const id = findModuleId(...Array.isArray(code) ? code : [code]); if (id === null) return exports; @@ -606,6 +605,8 @@ export function waitFor(filter: string | PropsFilter | FilterFn, callback: Callb * @returns Mapping of found modules */ export function search(...code: CodeFilter) { + code = code.map(canonicalizeMatch); + const results = {} as Record; const factories = wreq.m;