diff --git a/src/constants.ts b/src/constants.ts
new file mode 100644
index 0000000..ffeed69
--- /dev/null
+++ b/src/constants.ts
@@ -0,0 +1,2 @@
+export const GitHubOrganizationURL = 'https://github.com/revenge-mod'
+export const DiscordServerURL = 'https://discord.com/invite/ddcQf3s2Uq'
diff --git a/src/plugins/settings/SettingsConstants.ts b/src/plugins/settings/SettingsConstants.ts
index 8cba260..0b9ab2e 100644
--- a/src/plugins/settings/SettingsConstants.ts
+++ b/src/plugins/settings/SettingsConstants.ts
@@ -8,6 +8,9 @@ export const MobileSetting = {
REVENGE_DEVELOPER: 'REVENGE_DEVELOPER',
// SUBSETTINGS
+ REVENGE_DISCORD_SERVER: 'REVENGE_DISCORD_SERVER',
+ REVENGE_GITHUB_ORGANIZATION: 'REVENGE_GITHUB_ORGANIZATION',
+ RELOAD_APP: 'RELOAD_APP',
REVENGE_VERSION: 'REVENGE_VERSION',
REACT_VERSION: 'REACT_VERSION',
diff --git a/src/plugins/settings/definitions/HermesVersionSetting.tsx b/src/plugins/settings/definitions/HermesVersionSetting.tsx
index be9e81b..89c0042 100644
--- a/src/plugins/settings/definitions/HermesVersionSetting.tsx
+++ b/src/plugins/settings/definitions/HermesVersionSetting.tsx
@@ -13,7 +13,7 @@ const HermesVersionSetting: SettingsItem = {
IconComponent: () => ,
title: () => 'Hermes',
useDescription: () => `${props['Bytecode Version']} (${props.Build})`,
- type: 'pressable',
+ type: 'static',
}
export default HermesVersionSetting
diff --git a/src/plugins/settings/definitions/ReactNativeVersionSetting.tsx b/src/plugins/settings/definitions/ReactNativeVersionSetting.tsx
index 0d57978..aee184d 100644
--- a/src/plugins/settings/definitions/ReactNativeVersionSetting.tsx
+++ b/src/plugins/settings/definitions/ReactNativeVersionSetting.tsx
@@ -13,7 +13,7 @@ const ReactNativeVersionSetting: SettingsItem = {
IconComponent: () => ,
title: () => 'React Native',
useDescription: () => version,
- type: 'pressable',
+ type: 'static',
}
export default ReactNativeVersionSetting
diff --git a/src/plugins/settings/definitions/ReactVersionSetting.tsx b/src/plugins/settings/definitions/ReactVersionSetting.tsx
index 84ae828..4260910 100644
--- a/src/plugins/settings/definitions/ReactVersionSetting.tsx
+++ b/src/plugins/settings/definitions/ReactVersionSetting.tsx
@@ -11,7 +11,7 @@ const ReactVersionSetting: SettingsItem = {
IconComponent: () => ,
title: () => 'React',
useDescription: () => React.version,
- type: 'pressable',
+ type: 'static',
}
export default ReactVersionSetting
diff --git a/src/plugins/settings/definitions/ReloadAppSetting.tsx b/src/plugins/settings/definitions/ReloadAppSetting.tsx
new file mode 100644
index 0000000..5ef3c52
--- /dev/null
+++ b/src/plugins/settings/definitions/ReloadAppSetting.tsx
@@ -0,0 +1,17 @@
+import { BundleUpdaterManager } from '@revenge-mod/discord/native'
+import { React } from '@revenge-mod/react'
+
+import AssetIcon from '../components/icons/AssetIcon'
+import { MobileSetting } from '../SettingsConstants'
+
+import type { SettingsItem } from '@revenge-mod/discord/ui/settings'
+
+const ReloadAppSetting: SettingsItem = {
+ parent: MobileSetting.REVENGE,
+ IconComponent: () => ,
+ title: () => 'Reload App',
+ onPress: () => BundleUpdaterManager.reload(),
+ type: 'pressable',
+}
+
+export default ReloadAppSetting
diff --git a/src/plugins/settings/definitions/RevengeDiscordServerSetting.tsx b/src/plugins/settings/definitions/RevengeDiscordServerSetting.tsx
new file mode 100644
index 0000000..887438b
--- /dev/null
+++ b/src/plugins/settings/definitions/RevengeDiscordServerSetting.tsx
@@ -0,0 +1,17 @@
+import { React, ReactNative } from '@revenge-mod/react'
+
+import AssetIcon from '../components/icons/AssetIcon'
+import { MobileSetting } from '../SettingsConstants'
+
+import type { SettingsItem } from '@revenge-mod/discord/ui/settings'
+import { DiscordServerURL } from '../../../constants'
+
+const RevengeDiscordServerSetting: SettingsItem = {
+ parent: MobileSetting.REVENGE,
+ IconComponent: () => ,
+ title: () => 'Discord Server',
+ onPress: () => ReactNative.Linking.openURL(DiscordServerURL),
+ type: 'pressable',
+}
+
+export default RevengeDiscordServerSetting
diff --git a/src/plugins/settings/definitions/RevengeGitHubOrganizationSetting.tsx b/src/plugins/settings/definitions/RevengeGitHubOrganizationSetting.tsx
new file mode 100644
index 0000000..75fa144
--- /dev/null
+++ b/src/plugins/settings/definitions/RevengeGitHubOrganizationSetting.tsx
@@ -0,0 +1,18 @@
+import { React, ReactNative } from '@revenge-mod/react'
+
+import AssetIcon from '../components/icons/AssetIcon'
+import { MobileSetting } from '../SettingsConstants'
+
+import { GitHubOrganizationURL } from '../../../constants'
+
+import type { SettingsItem } from '@revenge-mod/discord/ui/settings'
+
+const RevengeGitHubOrganizationSetting: SettingsItem = {
+ parent: MobileSetting.REVENGE,
+ IconComponent: () => ,
+ title: () => 'GitHub',
+ onPress: () => ReactNative.Linking.openURL(GitHubOrganizationURL),
+ type: 'pressable',
+}
+
+export default RevengeGitHubOrganizationSetting
diff --git a/src/plugins/settings/definitions/RevengeVersionSetting.ts b/src/plugins/settings/definitions/RevengeVersionSetting.ts
index b03a4da..55c479b 100644
--- a/src/plugins/settings/definitions/RevengeVersionSetting.ts
+++ b/src/plugins/settings/definitions/RevengeVersionSetting.ts
@@ -8,7 +8,7 @@ const RevengeVersionSetting: SettingsItem = {
IconComponent: RevengeIcon,
title: () => 'Revenge',
useDescription: () => `${__BUILD_VERSION__}-${__BUILD_COMMIT__}-${__BUILD_BRANCH__} (${__BUILD_ENV__})`,
- type: 'pressable',
+ type: 'static',
}
export default RevengeVersionSetting
diff --git a/src/plugins/settings/register.ts b/src/plugins/settings/register.ts
index 28c5dd8..a96d19b 100644
--- a/src/plugins/settings/register.ts
+++ b/src/plugins/settings/register.ts
@@ -13,6 +13,9 @@ import RevengeVersionSetting from './definitions/RevengeVersionSetting'
import HermesVersionSetting from './definitions/HermesVersionSetting'
import RevengeNotImplementedSetting from './definitions/RevengeNotImplementedSetting'
import EvaluateJavaScriptSetting from './definitions/EvaluateJavaScriptSetting'
+import ReloadAppSetting from './definitions/ReloadAppSetting'
+import RevengeDiscordServerSetting from './definitions/RevengeDiscordServerSetting'
+import RevengeGitHubOrganizationSetting from './definitions/RevengeGitHubOrganizationSetting'
registerSettingsItems({
[MobileSetting.REVENGE]: RevengeSetting,
@@ -20,6 +23,9 @@ registerSettingsItems({
// [MobileSetting.REVENGE_THEMES]: RevengeThemesSetting,
// [MobileSetting.REVENGE_FONTS]: RevengeFontsSetting,
[MobileSetting.REVENGE_DEVELOPER]: RevengeDeveloperSetting,
+ [MobileSetting.REVENGE_GITHUB_ORGANIZATION]: RevengeGitHubOrganizationSetting,
+ [MobileSetting.REVENGE_DISCORD_SERVER]: RevengeDiscordServerSetting,
+ [MobileSetting.RELOAD_APP]: ReloadAppSetting,
[MobileSetting.REVENGE_VERSION]: RevengeVersionSetting,
[MobileSetting.REACT_VERSION]: ReactVersionSetting,
[MobileSetting.REACT_NATIVE_VERSION]: ReactNativeVersionSetting,
diff --git a/src/plugins/settings/screens/RevengeSettingScreen.tsx b/src/plugins/settings/screens/RevengeSettingScreen.tsx
index e80e221..00321bc 100644
--- a/src/plugins/settings/screens/RevengeSettingScreen.tsx
+++ b/src/plugins/settings/screens/RevengeSettingScreen.tsx
@@ -1,20 +1,40 @@
import { SettingListRenderer } from '@revenge-mod/discord/ui/settings'
import { MobileSetting } from '../SettingsConstants'
+import { Components } from '../../../../lib/discord/src/ui/common'
export default function RevengeSettingScreen() {
return (
+
+ You are using the next version of Revenge!
+
+
+ This version is experimental and may be unstable.
+
+ >
+ ),
+ },
+ {
+ label: 'Versions',
+ settings: [
MobileSetting.REACT_VERSION,
MobileSetting.REACT_NATIVE_VERSION,
MobileSetting.HERMES_VERSION,
],
- subLabel: [
- 'You are using the next version of Revenge! This version is experimental and may be unstable.',
- ],
+ },
+ {
+ label: 'Actions',
+ settings: [MobileSetting.RELOAD_APP],
},
]}
/>