feat(plugins/developer-settings): add "Test ErrorBoundary" option
This commit is contained in:
parent
0bacc8a2f1
commit
2da5549cad
5 changed files with 41 additions and 1 deletions
|
|
@ -11,9 +11,11 @@ export const Setting = {
|
|||
RDTDisconnect: 'RDTDisconnect',
|
||||
EvalJS: 'EvalJS',
|
||||
AssetBrowser: 'AssetBrowser',
|
||||
TestErrorBoundary: 'TestErrorBoundary',
|
||||
} as const
|
||||
|
||||
export const RouteNames = {
|
||||
[Setting.RevengeDeveloper]: 'Revenge Developer',
|
||||
[Setting.AssetBrowser]: 'Asset Browser',
|
||||
[Setting.TestErrorBoundary]: 'Test ErrorBoundary',
|
||||
} as const
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
import TableRowAssetIcon from '@revenge-mod/components/TableRowAssetIcon'
|
||||
import { RouteNames, Setting } from '../constants'
|
||||
import type { SettingsItem } from '@revenge-mod/discord/modules/settings'
|
||||
|
||||
const TestErrorBoundarySetting: SettingsItem = {
|
||||
parent: Setting.RevengeDeveloper,
|
||||
type: 'route',
|
||||
variant: 'danger',
|
||||
IconComponent: () => (
|
||||
<TableRowAssetIcon name="CircleXIcon" variant="danger" />
|
||||
),
|
||||
title: () => 'Test ErrorBoundary',
|
||||
screen: {
|
||||
route: RouteNames[Setting.TestErrorBoundary],
|
||||
getComponent: () =>
|
||||
require('../screens/TestErrorBoundarySettingScreen').default,
|
||||
},
|
||||
}
|
||||
|
||||
export default TestErrorBoundarySetting
|
||||
|
|
@ -34,7 +34,11 @@ export default function RevengeDeveloperSettingScreen() {
|
|||
},
|
||||
{
|
||||
label: 'Tools',
|
||||
settings: [Setting.EvalJS, Setting.AssetBrowser],
|
||||
settings: [
|
||||
Setting.EvalJS,
|
||||
Setting.AssetBrowser,
|
||||
Setting.TestErrorBoundary,
|
||||
],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
import { useEffect } from 'react'
|
||||
|
||||
export default function TestErrorBoundarySettingScreen() {
|
||||
let x = 0
|
||||
|
||||
useEffect(() => {
|
||||
x++
|
||||
})
|
||||
|
||||
// @ts-expect-error: Intentional
|
||||
return x < 2 ? <undefined /> : null
|
||||
}
|
||||
|
|
@ -11,6 +11,7 @@ import RDTConnectSetting from './definitions/RDTConnectSetting'
|
|||
import RDTDisconnectSetting from './definitions/RDTDisconnectSetting'
|
||||
import RDTVersionSetting from './definitions/RDTVersionSetting'
|
||||
import RevengeDeveloperSetting from './definitions/RevengeDeveloperSetting'
|
||||
import TestErrorBoundarySetting from './definitions/TestErrorBoundarySetting'
|
||||
|
||||
export function register() {
|
||||
api.cleanup(
|
||||
|
|
@ -22,6 +23,7 @@ export function register() {
|
|||
[Setting.RDTDisconnect]: RDTDisconnectSetting,
|
||||
[Setting.EvalJS]: EvalJSSetting,
|
||||
[Setting.AssetBrowser]: AssetBrowserSetting,
|
||||
[Setting.TestErrorBoundary]: TestErrorBoundarySetting,
|
||||
}),
|
||||
addSettingsItemToSection('REVENGE', Setting.RevengeDeveloper),
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue