Some plugins require a restart to fully disable.
Would you like to restart now?
> ), confirmText: "Restart Now", cancelText: "Later", onConfirm: () => location.reload() }); } } // Code directly taken from supportHelper.tsx const { totalStockPlugins, totalUserPlugins, enabledStockPlugins, enabledUserPlugins, enabledPlugins } = useMemo(() => { const isApiPlugin = (plugin: string) => plugin.endsWith("API") || Plugins[plugin].required; const totalPlugins = Object.keys(Plugins).filter(p => !isApiPlugin(p)); const enabledPlugins = Object.keys(Plugins).filter(p => isPluginEnabled(p) && !isApiPlugin(p)); const totalStockPlugins = totalPlugins.filter(p => !PluginMeta[p].userPlugin && !Plugins[p].hidden).length; const totalUserPlugins = totalPlugins.filter(p => PluginMeta[p].userPlugin).length; const enabledStockPlugins = enabledPlugins.filter(p => !PluginMeta[p].userPlugin).length; const enabledUserPlugins = enabledPlugins.filter(p => PluginMeta[p].userPlugin).length; return { totalStockPlugins, totalUserPlugins, enabledStockPlugins, enabledUserPlugins, enabledPlugins }; }, [settings.plugins]); const pluginsToLoad = Math.min(36, plugins.length); const [visibleCount, setVisibleCount] = React.useState(pluginsToLoad); const loadMore = React.useCallback(() => { setVisibleCount(v => Math.min(v + pluginsToLoad, plugins.length)); }, [plugins.length]); const dLoadMore = useMemo(() => debounce(loadMore, 100), [loadMore]); const [sentinelRef, isSentinelVisible] = useIntersection(); React.useEffect(() => { if (isSentinelVisible && visibleCount < plugins.length) { dLoadMore(); } }, [isSentinelVisible, visibleCount, plugins.length, dLoadMore]); const visiblePlugins = plugins.slice(0, visibleCount); return (