fix(plugins/settings): remove GC option, don't register hidden sections, only register when needed
This commit is contained in:
parent
f3d3c6b646
commit
662d24e7eb
9 changed files with 53 additions and 76 deletions
|
|
@ -14,10 +14,7 @@ export const MobileSetting = {
|
|||
REACT_NATIVE_VERSION: 'REACT_NATIVE_VERSION',
|
||||
HERMES_VERSION: 'HERMES_VERSION',
|
||||
|
||||
CALL_GARBAGE_COLLECTOR: 'CALL_GARBAGE_COLLECTOR',
|
||||
EVALUATE_JAVASCRIPT: 'EVALUATE_JAVASCRIPT',
|
||||
EVALUATE_JAVASCRIPT_INSPECT_DEPTH: 'EVALUATE_JAVASCRIPT_INSPECT_DEPTH',
|
||||
EVALUATE_JAVASCRIPT_AWAIT_RESULT: 'EVALUATE_JAVASCRIPT_AWAIT_RESULT',
|
||||
|
||||
REVENGE_NOT_IMPLEMENTED: 'REVENGE_NOT_IMPLEMENTED',
|
||||
} as const
|
||||
|
|
@ -29,5 +26,3 @@ export const UserSettingsSections = {
|
|||
[MobileSetting.REVENGE_FONTS]: 'Revenge Fonts',
|
||||
[MobileSetting.REVENGE_DEVELOPER]: 'Revenge Developer',
|
||||
} as const
|
||||
|
||||
export const AlwaysHidden = () => false
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
import { React } from '@revenge-mod/react'
|
||||
|
||||
import AssetIcon from '../components/icons/AssetIcon'
|
||||
|
||||
import type { SettingsItem } from '@revenge-mod/discord/ui/settings'
|
||||
|
||||
const CallGarbageCollectorSetting: SettingsItem = {
|
||||
parent: null,
|
||||
IconComponent: () => <AssetIcon name="FireIcon" />,
|
||||
title: () => 'Call Garbage Collector',
|
||||
useDescription: () => 'Call the garbage collector manually.',
|
||||
onPress: gc,
|
||||
type: 'pressable',
|
||||
}
|
||||
|
||||
export default CallGarbageCollectorSetting
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { AlwaysHidden, MobileSetting, UserSettingsSections } from '../SettingsConstants'
|
||||
import { MobileSetting, UserSettingsSections } from '../SettingsConstants'
|
||||
import AssetIcon from '../components/icons/AssetIcon'
|
||||
|
||||
import type { SettingsItem } from '@revenge-mod/discord/ui/settings'
|
||||
|
|
@ -8,7 +8,6 @@ const RevengeFontsSetting: SettingsItem = {
|
|||
type: 'route',
|
||||
IconComponent: () => <AssetIcon name="TextIcon" />,
|
||||
title: () => 'Fonts',
|
||||
usePredicate: AlwaysHidden,
|
||||
screen: {
|
||||
route: UserSettingsSections[MobileSetting.REVENGE_PLUGINS],
|
||||
getComponent: () => require('../screens/RevengePluginsSettingScreen').default,
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
import { getEnabledPluginsCount } from '@revenge-mod/plugins/_'
|
||||
|
||||
import { AlwaysHidden, MobileSetting, UserSettingsSections } from '../SettingsConstants'
|
||||
import { MobileSetting, UserSettingsSections } from '../SettingsConstants'
|
||||
import AssetIcon from '../components/icons/AssetIcon'
|
||||
|
||||
import type { SettingsItem } from '@revenge-mod/discord/ui/settings'
|
||||
|
|
@ -11,7 +11,6 @@ const RevengePluginsSetting: SettingsItem = {
|
|||
IconComponent: () => <AssetIcon name="PuzzlePieceIcon" />,
|
||||
title: () => 'Plugins',
|
||||
useTrailing: () => `${getEnabledPluginsCount()} enabled`,
|
||||
usePredicate: AlwaysHidden,
|
||||
screen: {
|
||||
route: UserSettingsSections[MobileSetting.REVENGE_PLUGINS],
|
||||
getComponent: () => require('../screens/RevengePluginsSettingScreen').default,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { AlwaysHidden, MobileSetting, UserSettingsSections } from '../SettingsConstants'
|
||||
import { MobileSetting, UserSettingsSections } from '../SettingsConstants'
|
||||
import AssetIcon from '../components/icons/AssetIcon'
|
||||
|
||||
import type { SettingsItem } from '@revenge-mod/discord/ui/settings'
|
||||
|
|
@ -8,7 +8,6 @@ const RevengeThemesSetting: SettingsItem = {
|
|||
type: 'route',
|
||||
IconComponent: () => <AssetIcon name="PaintPaletteIcon" />,
|
||||
title: () => 'Themes',
|
||||
usePredicate: AlwaysHidden,
|
||||
screen: {
|
||||
route: UserSettingsSections[MobileSetting.REVENGE_THEMES],
|
||||
getComponent: () => require('../screens/RevengeThemesSettingScreen').default,
|
||||
|
|
|
|||
|
|
@ -4,30 +4,13 @@ import { InternalPluginFlags, registerPlugin } from '@revenge-mod/plugins/_'
|
|||
import { waitForModules } from '@revenge-mod/modules/finders'
|
||||
import { byName, byProps } from '@revenge-mod/modules/finders/filters'
|
||||
|
||||
import { registerSettingsItem, registerSettingsSection, type SettingsItem } from '@revenge-mod/discord/ui/settings'
|
||||
import { _suiData } from '@revenge-mod/discord/_/ui/settings'
|
||||
|
||||
import { after } from '@revenge-mod/patcher'
|
||||
|
||||
import { MobileSetting } from './SettingsConstants'
|
||||
|
||||
import RevengeSetting from './definitions/RevengeSetting'
|
||||
import RevengePluginsSetting from './definitions/RevengePluginsSetting'
|
||||
import RevengeThemesSetting from './definitions/RevengeThemesSetting'
|
||||
import RevengeFontsSetting from './definitions/RevengeFontsSetting'
|
||||
import RevengeDeveloperSetting from './definitions/RevengeDeveloperSetting'
|
||||
import ReactVersionSetting from './definitions/ReactVersionSetting'
|
||||
import ReactNativeVersionSetting from './definitions/ReactNativeVersionSetting'
|
||||
import RevengeVersionSetting from './definitions/RevengeVersionSetting'
|
||||
import HermesVersionSetting from './definitions/HermesVersionSetting'
|
||||
import CallGarbageCollectorSetting from './definitions/CallGarbageCollectorSetting'
|
||||
import RevengeNotImplementedSetting from './definitions/RevengeNotImplementedSetting'
|
||||
import EvaluateJavaScriptSetting from './definitions/EvaluateJavaScriptSetting'
|
||||
|
||||
import type { SettingsItem } from '@revenge-mod/discord/ui/settings'
|
||||
import type { FC } from 'react'
|
||||
|
||||
export let pluginApi: PluginApi
|
||||
|
||||
registerPlugin(
|
||||
{
|
||||
id: 'revenge.settings',
|
||||
|
|
@ -40,36 +23,11 @@ registerPlugin(
|
|||
start(api) {
|
||||
pluginApi = api
|
||||
|
||||
for (const [key, setting] of [
|
||||
[MobileSetting.REVENGE, RevengeSetting],
|
||||
[MobileSetting.REVENGE_PLUGINS, RevengePluginsSetting],
|
||||
[MobileSetting.REVENGE_THEMES, RevengeThemesSetting],
|
||||
[MobileSetting.REVENGE_FONTS, RevengeFontsSetting],
|
||||
[MobileSetting.REVENGE_DEVELOPER, RevengeDeveloperSetting],
|
||||
[MobileSetting.REVENGE_VERSION, RevengeVersionSetting],
|
||||
[MobileSetting.REACT_VERSION, ReactVersionSetting],
|
||||
[MobileSetting.REACT_NATIVE_VERSION, ReactNativeVersionSetting],
|
||||
[MobileSetting.HERMES_VERSION, HermesVersionSetting],
|
||||
[MobileSetting.CALL_GARBAGE_COLLECTOR, CallGarbageCollectorSetting],
|
||||
[MobileSetting.EVALUATE_JAVASCRIPT, EvaluateJavaScriptSetting],
|
||||
[MobileSetting.REVENGE_NOT_IMPLEMENTED, RevengeNotImplementedSetting],
|
||||
] as Array<[string, SettingsItem]>)
|
||||
registerSettingsItem(key, setting)
|
||||
|
||||
registerSettingsSection('REVENGE', {
|
||||
label: 'Revenge',
|
||||
settings: [
|
||||
MobileSetting.REVENGE,
|
||||
MobileSetting.REVENGE_PLUGINS,
|
||||
MobileSetting.REVENGE_THEMES,
|
||||
MobileSetting.REVENGE_FONTS,
|
||||
MobileSetting.REVENGE_DEVELOPER,
|
||||
],
|
||||
})
|
||||
|
||||
const unsubForRendererConfig = waitForModules(byProps('SETTING_RENDERER_CONFIG'), (_, exports) => {
|
||||
unsubForRendererConfig()
|
||||
|
||||
require('./register')
|
||||
|
||||
const SettingRendererConfig = exports as {
|
||||
SETTING_RENDERER_CONFIG: Record<string, SettingsItem>
|
||||
}
|
||||
|
|
@ -86,10 +44,10 @@ registerPlugin(
|
|||
})
|
||||
})
|
||||
|
||||
const unsub = waitForModules(
|
||||
const unsubForSettingsOverviewScreen = waitForModules(
|
||||
byName('SettingsOverviewScreen'),
|
||||
(_, exports) => {
|
||||
unsub()
|
||||
unsubForSettingsOverviewScreen()
|
||||
|
||||
after(exports as { default: FC }, 'default', tree => {
|
||||
const sections = (tree as Extract<typeof tree, { props: unknown }>).props.sections as Array<{
|
||||
|
|
@ -127,3 +85,6 @@ registerPlugin(
|
|||
PluginFlags.Enabled,
|
||||
InternalPluginFlags.Internal | InternalPluginFlags.Essential,
|
||||
)
|
||||
|
||||
// Expose to EvaluateJavaScriptSetting
|
||||
export let pluginApi: PluginApi
|
||||
|
|
|
|||
40
src/plugins/settings/register.ts
Normal file
40
src/plugins/settings/register.ts
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
import { registerSettingsItems, registerSettingsSection } from '@revenge-mod/discord/ui/settings'
|
||||
|
||||
import { MobileSetting } from './SettingsConstants'
|
||||
|
||||
import RevengeSetting from './definitions/RevengeSetting'
|
||||
// import RevengePluginsSetting from './definitions/RevengePluginsSetting'
|
||||
// import RevengeThemesSetting from './definitions/RevengeThemesSetting'
|
||||
// import RevengeFontsSetting from './definitions/RevengeFontsSetting'
|
||||
import RevengeDeveloperSetting from './definitions/RevengeDeveloperSetting'
|
||||
import ReactVersionSetting from './definitions/ReactVersionSetting'
|
||||
import ReactNativeVersionSetting from './definitions/ReactNativeVersionSetting'
|
||||
import RevengeVersionSetting from './definitions/RevengeVersionSetting'
|
||||
import HermesVersionSetting from './definitions/HermesVersionSetting'
|
||||
import RevengeNotImplementedSetting from './definitions/RevengeNotImplementedSetting'
|
||||
import EvaluateJavaScriptSetting from './definitions/EvaluateJavaScriptSetting'
|
||||
|
||||
registerSettingsItems({
|
||||
[MobileSetting.REVENGE]: RevengeSetting,
|
||||
// [MobileSetting.REVENGE_PLUGINS]: RevengePluginsSetting,
|
||||
// [MobileSetting.REVENGE_THEMES]: RevengeThemesSetting,
|
||||
// [MobileSetting.REVENGE_FONTS]: RevengeFontsSetting,
|
||||
[MobileSetting.REVENGE_DEVELOPER]: RevengeDeveloperSetting,
|
||||
[MobileSetting.REVENGE_VERSION]: RevengeVersionSetting,
|
||||
[MobileSetting.REACT_VERSION]: ReactVersionSetting,
|
||||
[MobileSetting.REACT_NATIVE_VERSION]: ReactNativeVersionSetting,
|
||||
[MobileSetting.HERMES_VERSION]: HermesVersionSetting,
|
||||
[MobileSetting.EVALUATE_JAVASCRIPT]: EvaluateJavaScriptSetting,
|
||||
[MobileSetting.REVENGE_NOT_IMPLEMENTED]: RevengeNotImplementedSetting,
|
||||
})
|
||||
|
||||
registerSettingsSection('REVENGE', {
|
||||
label: 'Revenge',
|
||||
settings: [
|
||||
MobileSetting.REVENGE,
|
||||
// MobileSetting.REVENGE_PLUGINS,
|
||||
// MobileSetting.REVENGE_THEMES,
|
||||
// MobileSetting.REVENGE_FONTS,
|
||||
MobileSetting.REVENGE_DEVELOPER,
|
||||
],
|
||||
})
|
||||
|
|
@ -12,7 +12,7 @@ export default function RevengeDeveloperSettingScreen() {
|
|||
},
|
||||
{
|
||||
label: 'Tools',
|
||||
settings: [MobileSetting.EVALUATE_JAVASCRIPT, MobileSetting.CALL_GARBAGE_COLLECTOR],
|
||||
settings: [MobileSetting.EVALUATE_JAVASCRIPT],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import { SettingListRenderer } from '@revenge-mod/discord/ui/settings'
|
|||
|
||||
import { MobileSetting } from '../SettingsConstants'
|
||||
|
||||
export default function RevengeSettingScreen() {
|
||||
export default function RevengePluginsSettingScreen() {
|
||||
return (
|
||||
<SettingListRenderer.SettingsList
|
||||
sections={[
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue