fix: support Discord's settings refactor

I assume this happened on 330201, but I'm unsure.

This also drops support for any older versions that may not have this change.
This commit is contained in:
PalmDevs 2026-05-13 01:08:55 +07:00
parent 5043b026ad
commit 3ca2f8742d
No known key found for this signature in database
GPG key ID: 6FAE8F8677ACA8BA
23 changed files with 23 additions and 23 deletions

View file

@ -640,7 +640,7 @@ export namespace DiscordModules {
} }
interface BaseSettingsItem { interface BaseSettingsItem {
title: () => string useTitle: () => string
parent: string | null parent: string | null
unsearchable?: boolean unsearchable?: boolean
variant?: Components.TableRowProps['variant'] variant?: Components.TableRowProps['variant']

View file

@ -7,7 +7,7 @@ const AssetBrowserSetting: SettingsItem = {
parent: Setting.RevengeDeveloper, parent: Setting.RevengeDeveloper,
type: 'route', type: 'route',
IconComponent: () => <TableRowAssetIcon name="ImageIcon" />, IconComponent: () => <TableRowAssetIcon name="ImageIcon" />,
title: () => 'Asset Browser', useTitle: () => 'Asset Browser',
screen: { screen: {
route: RouteNames[Setting.AssetBrowser], route: RouteNames[Setting.AssetBrowser],
getComponent: () => AssetBrowserSettingScreen.default, getComponent: () => AssetBrowserSettingScreen.default,

View file

@ -6,7 +6,7 @@ import type { SettingsItem } from '@revenge-mod/discord/modules/settings'
const DTAutoConnectSetting: SettingsItem = { const DTAutoConnectSetting: SettingsItem = {
parent: Setting.RevengeDeveloper, parent: Setting.RevengeDeveloper,
IconComponent: () => <TableRowAssetIcon name="LinkIcon" />, IconComponent: () => <TableRowAssetIcon name="LinkIcon" />,
title: () => 'Auto-connect to DevTools', useTitle: () => 'Auto-connect to DevTools',
useDescription: () => 'Automatically connect to DevTools during startup.', useDescription: () => 'Automatically connect to DevTools during startup.',
useValue: () => useValue: () =>
api.storage.use(s => s.devTools?.autoConnect !== undefined)!.devTools api.storage.use(s => s.devTools?.autoConnect !== undefined)!.devTools

View file

@ -7,7 +7,7 @@ import type { SettingsItem } from '@revenge-mod/discord/modules/settings'
const DTConnectSetting: SettingsItem = { const DTConnectSetting: SettingsItem = {
parent: Setting.RevengeDeveloper, parent: Setting.RevengeDeveloper,
IconComponent: () => <TableRowAssetIcon name="LinkIcon" />, IconComponent: () => <TableRowAssetIcon name="LinkIcon" />,
title: () => 'Connect to DevTools', useTitle: () => 'Connect to DevTools',
useDescription: () => `Version: ${DevToolsClient.version}`, useDescription: () => `Version: ${DevToolsClient.version}`,
usePredicate: () => !useIsConnected(), usePredicate: () => !useIsConnected(),
onPress: connect, onPress: connect,

View file

@ -7,7 +7,7 @@ const DTDisconnectSetting: SettingsItem = {
parent: Setting.RevengeDeveloper, parent: Setting.RevengeDeveloper,
IconComponent: () => <TableRowAssetIcon name="DenyIcon" variant="danger" />, IconComponent: () => <TableRowAssetIcon name="DenyIcon" variant="danger" />,
variant: 'danger', variant: 'danger',
title: () => 'Disconnect from DevTools', useTitle: () => 'Disconnect from DevTools',
usePredicate: useIsConnected, usePredicate: useIsConnected,
onPress: disconnect, onPress: disconnect,
type: 'pressable', type: 'pressable',

View file

@ -7,7 +7,7 @@ const EvalJSSetting: SettingsItem = {
parent: Setting.RevengeDeveloper, parent: Setting.RevengeDeveloper,
type: 'route', type: 'route',
IconComponent: () => <TableRowAssetIcon name="FileIcon" />, IconComponent: () => <TableRowAssetIcon name="FileIcon" />,
title: () => 'Evaluate JavaScript', useTitle: () => 'Evaluate JavaScript',
useDescription: () => 'Runs a JavaScript code snippet.', useDescription: () => 'Runs a JavaScript code snippet.',
screen: { screen: {
route: RouteNames[Setting.EvalJS], route: RouteNames[Setting.EvalJS],

View file

@ -7,7 +7,7 @@ import type { SettingsItem } from '@revenge-mod/discord/modules/settings'
const RDTAutoConnectSetting: SettingsItem = { const RDTAutoConnectSetting: SettingsItem = {
parent: Setting.RevengeDeveloper, parent: Setting.RevengeDeveloper,
IconComponent: () => <TableRowAssetIcon name="LinkIcon" />, IconComponent: () => <TableRowAssetIcon name="LinkIcon" />,
title: () => 'Auto-connect to React DevTools', useTitle: () => 'Auto-connect to React DevTools',
useDescription: () => useDescription: () =>
'Automatically connect to React DevTools during startup.', 'Automatically connect to React DevTools during startup.',
usePredicate: () => RDTContext.active, usePredicate: () => RDTContext.active,

View file

@ -6,7 +6,7 @@ import type { SettingsItem } from '@revenge-mod/discord/modules/settings'
const RDTConnectSetting: SettingsItem = { const RDTConnectSetting: SettingsItem = {
parent: Setting.RevengeDeveloper, parent: Setting.RevengeDeveloper,
IconComponent: () => <TableRowAssetIcon name="LinkIcon" />, IconComponent: () => <TableRowAssetIcon name="LinkIcon" />,
title: () => 'Connect to React DevTools', useTitle: () => 'Connect to React DevTools',
useDescription: () => `Version: ${globalThis.__REACT_DEVTOOLS__?.version}`, useDescription: () => `Version: ${globalThis.__REACT_DEVTOOLS__?.version}`,
usePredicate: () => !useIsConnected() && RDTContext.active, usePredicate: () => !useIsConnected() && RDTContext.active,
onPress: connect, onPress: connect,

View file

@ -7,7 +7,7 @@ const RDTDisconnectSetting: SettingsItem = {
parent: Setting.RevengeDeveloper, parent: Setting.RevengeDeveloper,
IconComponent: () => <TableRowAssetIcon name="DenyIcon" variant="danger" />, IconComponent: () => <TableRowAssetIcon name="DenyIcon" variant="danger" />,
variant: 'danger', variant: 'danger',
title: () => 'Disconnect from React DevTools', useTitle: () => 'Disconnect from React DevTools',
usePredicate: useIsConnected, usePredicate: useIsConnected,
onPress: disconnect, onPress: disconnect,
type: 'pressable', type: 'pressable',

View file

@ -7,7 +7,7 @@ const RevengeDeveloperSetting: SettingsItem = {
parent: null, parent: null,
type: 'route', type: 'route',
IconComponent: () => <TableRowAssetIcon name="WrenchIcon" />, IconComponent: () => <TableRowAssetIcon name="WrenchIcon" />,
title: () => 'Developer', useTitle: () => 'Developer',
screen: { screen: {
route: RouteNames[Setting.RevengeDeveloper], route: RouteNames[Setting.RevengeDeveloper],
getComponent: () => RevengeDeveloperSettingScreen.default, getComponent: () => RevengeDeveloperSettingScreen.default,

View file

@ -10,7 +10,7 @@ const TestErrorBoundarySetting: SettingsItem = {
IconComponent: () => ( IconComponent: () => (
<TableRowAssetIcon name="ScreenXIcon" variant="danger" /> <TableRowAssetIcon name="ScreenXIcon" variant="danger" />
), ),
title: () => 'Test ErrorBoundary', useTitle: () => 'Test ErrorBoundary',
screen: { screen: {
route: RouteNames[Setting.TestErrorBoundary], route: RouteNames[Setting.TestErrorBoundary],
getComponent: () => TestErrorBoundarySettingScreen.default, getComponent: () => TestErrorBoundarySettingScreen.default,

View file

@ -10,7 +10,7 @@ const HermesVersionSetting: SettingsItem = CopyableSetting(
{ {
parent: Setting.Revenge, parent: Setting.Revenge,
IconComponent: () => <TableRowAssetIcon name="TranscriptOutlineIcon" />, IconComponent: () => <TableRowAssetIcon name="TranscriptOutlineIcon" />,
title: () => 'Hermes', useTitle: () => 'Hermes',
}, },
() => `${props['Bytecode Version']} (${props.Build})`, () => `${props['Bytecode Version']} (${props.Build})`,
) )

View file

@ -10,7 +10,7 @@ const LoaderVersionSetting: SettingsItem = CopyableSetting(
{ {
parent: Setting.Revenge, parent: Setting.Revenge,
IconComponent: () => <TableRowAssetIcon name="SendMessageIcon" />, IconComponent: () => <TableRowAssetIcon name="SendMessageIcon" />,
title: () => 'Loader', useTitle: () => 'Loader',
usePredicate: () => Boolean(bridgeInfo), usePredicate: () => Boolean(bridgeInfo),
}, },
() => `${bridgeInfo!.name} (${bridgeInfo!.version})`, () => `${bridgeInfo!.name} (${bridgeInfo!.version})`,

View file

@ -12,7 +12,7 @@ const ReactNativeVersionSetting: SettingsItem = CopyableSetting(
{ {
parent: Setting.Revenge, parent: Setting.Revenge,
IconComponent: () => <TableRowAssetIcon name="ScienceIcon" />, IconComponent: () => <TableRowAssetIcon name="ScienceIcon" />,
title: () => 'React Native', useTitle: () => 'React Native',
}, },
// slice "for RN " off the version string // slice "for RN " off the version string
() => ossReleaseVersion.slice(7), () => ossReleaseVersion.slice(7),

View file

@ -8,7 +8,7 @@ const ReactVersionSetting: SettingsItem = CopyableSetting(
{ {
parent: Setting.Revenge, parent: Setting.Revenge,
IconComponent: () => <TableRowAssetIcon name="ScienceIcon" />, IconComponent: () => <TableRowAssetIcon name="ScienceIcon" />,
title: () => 'React', useTitle: () => 'React',
}, },
() => version, () => version,
) )

View file

@ -6,7 +6,7 @@ import type { SettingsItem } from '@revenge-mod/discord/modules/settings'
const ReloadSetting: SettingsItem = { const ReloadSetting: SettingsItem = {
parent: Setting.Revenge, parent: Setting.Revenge,
IconComponent: () => <TableRowAssetIcon name="RetryIcon" />, IconComponent: () => <TableRowAssetIcon name="RetryIcon" />,
title: () => 'Reload App', useTitle: () => 'Reload App',
onPress: () => { onPress: () => {
BundleUpdaterManager.reload() BundleUpdaterManager.reload()
}, },

View file

@ -6,7 +6,7 @@ import type { SettingsItem } from '@revenge-mod/discord/modules/settings'
const RevengeDiscordSetting: SettingsItem = { const RevengeDiscordSetting: SettingsItem = {
parent: Setting.Revenge, parent: Setting.Revenge,
IconComponent: () => <TableRowAssetIcon name="Discord" />, IconComponent: () => <TableRowAssetIcon name="Discord" />,
title: () => 'Discord Server', useTitle: () => 'Discord Server',
useDescription: () => __BUILD_DISCORD_SERVER_URL__, useDescription: () => __BUILD_DISCORD_SERVER_URL__,
onPress: () => { onPress: () => {
Linking.openURL(__BUILD_DISCORD_SERVER_URL__) Linking.openURL(__BUILD_DISCORD_SERVER_URL__)

View file

@ -10,7 +10,7 @@ import type { SettingsItem } from '@revenge-mod/discord/modules/settings'
const RevengeLicenseSetting: SettingsItem = { const RevengeLicenseSetting: SettingsItem = {
parent: Setting.Revenge, parent: Setting.Revenge,
IconComponent: () => <TableRowAssetIcon name="FileIcon" />, IconComponent: () => <TableRowAssetIcon name="FileIcon" />,
title: () => 'License', useTitle: () => 'License',
onPress: () => { onPress: () => {
AlertActionCreators.openAlert('revenge-license', <LicenseAlert />) AlertActionCreators.openAlert('revenge-license', <LicenseAlert />)
}, },

View file

@ -10,7 +10,7 @@ const RevengePluginsSetting: SettingsItem = {
parent: null, parent: null,
type: 'route', type: 'route',
IconComponent: () => <TableRowAssetIcon name="PuzzlePieceIcon" />, IconComponent: () => <TableRowAssetIcon name="PuzzlePieceIcon" />,
title: () => 'Plugins', useTitle: () => 'Plugins',
useTrailing: () => `${useEnabledPluginCount()} enabled`, useTrailing: () => `${useEnabledPluginCount()} enabled`,
screen: { screen: {
route: RouteNames[Setting.RevengePlugins], route: RouteNames[Setting.RevengePlugins],

View file

@ -9,7 +9,7 @@ const RevengeSetting: SettingsItem = {
parent: null, parent: null,
type: 'route', type: 'route',
IconComponent: () => <TableRowAssetIcon id={RevengeIcon} />, IconComponent: () => <TableRowAssetIcon id={RevengeIcon} />,
title: () => 'Revenge', useTitle: () => 'Revenge',
useTrailing: () => FullVersion, useTrailing: () => FullVersion,
screen: { screen: {
route: RouteNames[Setting.Revenge], route: RouteNames[Setting.Revenge],

View file

@ -6,7 +6,7 @@ import type { SettingsItem } from '@revenge-mod/discord/modules/settings'
const RevengeSourceRepositorySetting: SettingsItem = { const RevengeSourceRepositorySetting: SettingsItem = {
parent: Setting.Revenge, parent: Setting.Revenge,
IconComponent: () => <TableRowAssetIcon name="PaperIcon" />, IconComponent: () => <TableRowAssetIcon name="PaperIcon" />,
title: () => 'Source Code', useTitle: () => 'Source Code',
useDescription: () => __BUILD_SOURCE_REPOSITORY_URL__, useDescription: () => __BUILD_SOURCE_REPOSITORY_URL__,
onPress: () => { onPress: () => {
Linking.openURL(__BUILD_SOURCE_REPOSITORY_URL__) Linking.openURL(__BUILD_SOURCE_REPOSITORY_URL__)

View file

@ -9,7 +9,7 @@ const RevengeVersionSetting: SettingsItem = CopyableSetting(
{ {
parent: Setting.Revenge, parent: Setting.Revenge,
IconComponent: () => <TableRowAssetIcon id={RevengeIcon} />, IconComponent: () => <TableRowAssetIcon id={RevengeIcon} />,
title: () => 'Revenge', useTitle: () => 'Revenge',
}, },
() => `${FullVersion} (${BuildEnvironment})`, () => `${FullVersion} (${BuildEnvironment})`,
) )

View file

@ -52,7 +52,7 @@ pEmitter.on('started', plugin => {
IconComponent: plugin.manifest.icon IconComponent: plugin.manifest.icon
? () => <TableRowAssetIcon name={plugin.manifest.icon!} /> ? () => <TableRowAssetIcon name={plugin.manifest.icon!} />
: undefined, : undefined,
title: () => plugin.manifest.name, useTitle: () => plugin.manifest.name,
screen: { screen: {
route: plugin.manifest.id, route: plugin.manifest.id,
getComponent: () => PluginSettings, getComponent: () => PluginSettings,