revenge-bundle-next/src/plugins/start/recovery/definitions/RevengeEnterRecoveryModeSetting.tsx
PalmDevs 944dbb6838
feat: improve recovery mode + small lib additions
Improved Recovery Mode features generally:
- Ability to view and modify saved states while not actually running any additional plugins
- Better Recovery Mode banner display
- Enter Recovery Mode option in Revenge Settings UI
- Fixed freeze detection false positives

New APIs:
- lib/discord: `disabled` in `DiscordModules.Components.FloatingActionButtonProps`
- lib/modules/native/app: new submodule with `reloadApp()` method

Fixes:
- Use `reloadApp()` instead of `BundleUpdaterManager.reload()`
2026-08-01 01:51:34 +07:00

26 lines
982 B
TypeScript

import TableRowAssetIcon from '@revenge-mod/components/TableRowAssetIcon'
import { reloadApp } from '@revenge-mod/modules/native/app'
import {
isDefaultsOnlyBoot,
requestNextBootDefaultsOnly,
} from '@revenge-mod/plugins/_'
import { Setting } from '~plugins/start/settings/constants'
import type { SettingsItem } from '@revenge-mod/discord/modules/settings'
const RevengeEnterRecoveryModeSetting: SettingsItem = {
parent: Setting.Revenge,
type: 'pressable',
useIsDisabled: () => isDefaultsOnlyBoot,
useTitle: () => 'Enter Recovery Mode',
useDescription: () =>
isDefaultsOnlyBoot
? 'Currently in Recovery Mode. Reload to exit.'
: 'Run Revenge with default plugins only for one boot. Use if plugins are causing issues.',
IconComponent: () => <TableRowAssetIcon name="ShieldIcon" />,
onPress: () => {
requestNextBootDefaultsOnly()
reloadApp()
},
}
export default RevengeEnterRecoveryModeSetting