From 525d06d4881f39c519c5ac0a850cf512abe36bb9 Mon Sep 17 00:00:00 2001 From: prism Date: Fri, 12 Dec 2025 18:46:16 +0100 Subject: [PATCH] fix(PluginsTab): performance issues (#556) * fix(PluginsTab): performance issues * fix(PluginModal): setting description color --- src/components/settings/AddonCard.tsx | 6 +- .../settings/tabs/plugins/PluginCard.tsx | 2 +- .../tabs/plugins/components/styles.css | 4 +- .../settings/tabs/plugins/index.tsx | 132 ++++++++++-------- 4 files changed, 78 insertions(+), 66 deletions(-) diff --git a/src/components/settings/AddonCard.tsx b/src/components/settings/AddonCard.tsx index 97931b2e4..f5798afd6 100644 --- a/src/components/settings/AddonCard.tsx +++ b/src/components/settings/AddonCard.tsx @@ -25,8 +25,6 @@ import { Switch } from "@components/Switch"; import { Tooltip, useRef } from "@webpack/common"; import type { MouseEventHandler, ReactNode } from "react"; -import { useTruncatedText } from "./tabs/plugins/components/truncateText"; - const cl = classNameFactory("vc-addon-"); interface Props { @@ -49,7 +47,6 @@ interface Props { export function AddonCard({ disabled, isNew, sourceBadge, tooltip, name, infoButton, footer, author, enabled, setEnabled, description, onMouseEnter, onMouseLeave }: Props) { const titleRef = useRef(null); const titleContainerRef = useRef(null); - const { truncated, containerRef } = useTruncatedText(description ? description.toString() : ""); return (
- {truncated} + {description}
{footer &&
{footer}
} diff --git a/src/components/settings/tabs/plugins/PluginCard.tsx b/src/components/settings/tabs/plugins/PluginCard.tsx index 3caba64b2..1e4248853 100644 --- a/src/components/settings/tabs/plugins/PluginCard.tsx +++ b/src/components/settings/tabs/plugins/PluginCard.tsx @@ -147,7 +147,7 @@ export function PluginCard({ plugin, disabled, onRestartNeeded, onMouseEnter, on onClick={() => openPluginModal(plugin, onRestartNeeded)} className={cl("info-button")} > - {plugin.options && !isObjectEmpty(plugin.options) + {plugin.settings?.def && !isObjectEmpty(plugin.settings.def) ? : } diff --git a/src/components/settings/tabs/plugins/components/styles.css b/src/components/settings/tabs/plugins/components/styles.css index a28b80c5b..6ec96e537 100644 --- a/src/components/settings/tabs/plugins/components/styles.css +++ b/src/components/settings/tabs/plugins/components/styles.css @@ -27,9 +27,9 @@ } .vc-plugins-setting-description { - color: var(--text-default); + color: var(--text-subtle); } .vc-plugins-setting-error { color: var(--text-feedback-critical, var(--text-danger, #FF5C5C)); -} \ No newline at end of file +} diff --git a/src/components/settings/tabs/plugins/index.tsx b/src/components/settings/tabs/plugins/index.tsx index 533fba382..84a7cb01a 100644 --- a/src/components/settings/tabs/plugins/index.tsx +++ b/src/components/settings/tabs/plugins/index.tsx @@ -22,6 +22,7 @@ import * as DataStore from "@api/DataStore"; import { isPluginEnabled, stopPlugin } from "@api/PluginManager"; import { useSettings } from "@api/Settings"; import { classNameFactory } from "@api/Styles"; +import { Button } from "@components/Button"; import { Card } from "@components/Card"; import { Divider } from "@components/Divider"; import ErrorBoundary from "@components/ErrorBoundary"; @@ -35,7 +36,7 @@ import { Logger } from "@utils/Logger"; import { Margins } from "@utils/margins"; import { classes } from "@utils/misc"; import { useAwaiter, useIntersection } from "@utils/react"; -import { Alerts, Button, lodash, Parser, React, Select, TextInput, Toasts, Tooltip, useMemo, useState } from "@webpack/common"; +import { Alerts, lodash, Parser, React, Select, TextInput, Toasts, Tooltip, useCallback, useMemo, useState } from "@webpack/common"; import { JSX } from "react"; import Plugins, { ExcludedPlugins, PluginMeta } from "~plugins"; @@ -68,7 +69,7 @@ function ReloadRequiredCard({ required, enabledPlugins, openWarningModal, resetC Restart now to apply new plugins and their settings - @@ -81,7 +82,8 @@ function ReloadRequiredCard({ required, enabledPlugins, openWarningModal, resetC )} {enabledPlugins.length > 0 && !required && (