fix(plugins/settings): debounce showing "Reload required" dialog

This commit is contained in:
PalmDevs 2025-09-10 00:52:13 +07:00
parent 5956d19125
commit c03b87723e
No known key found for this signature in database
GPG key ID: 6FAE8F8677ACA8BA

View file

@ -4,6 +4,7 @@ import { Design } from '@revenge-mod/discord/design'
import { BundleUpdaterManager } from '@revenge-mod/discord/native'
import { isPluginEnabled, pEmitter, pList } from '@revenge-mod/plugins/_'
import { PluginFlags } from '@revenge-mod/plugins/constants'
import { debounce } from '@revenge-mod/utils/callback'
import { useReRender } from '@revenge-mod/utils/react'
import { useEffect } from 'react'
import { RouteNames, Setting } from '../constants'
@ -53,20 +54,21 @@ function useEnabledPluginCount() {
const { AlertActionButton, AlertModal, Text } = Design
pEmitter.on('flagUpdate', showReloadRequiredAlertIfNeeded)
pEmitter.on(
'flagUpdate',
debounce(function showReloadRequiredAlertIfNeeded(plugin: AnyPlugin) {
if (plugin.flags & PluginFlags.ReloadRequired) {
const plugins = [...pList.values()].filter(
plugin => plugin.flags & PluginFlags.ReloadRequired,
)
function showReloadRequiredAlertIfNeeded(plugin: AnyPlugin) {
if (plugin.flags & PluginFlags.ReloadRequired) {
const plugins = [...pList.values()].filter(
plugin => plugin.flags & PluginFlags.ReloadRequired,
)
AlertActionCreators.openAlert(
'plugin-reload-required',
<PluginReloadRequiredAlert plugins={plugins} />,
)
}
}
AlertActionCreators.openAlert(
'plugin-reload-required',
<PluginReloadRequiredAlert plugins={plugins} />,
)
}
}, 500),
)
function PluginReloadRequiredAlert({ plugins }: { plugins: AnyPlugin[] }) {
return (