2025-12-09 22:28:25 +01:00
import { storage } from "@vendetta/plugin" ;
import { useProxy } from "@vendetta/storage" ;
import { React , ReactNative as RN , stylesheet } from "@vendetta/metro/common" ;
import { semanticColors } from "@vendetta/ui" ;
import { getAssetIDByName } from "@vendetta/ui/assets" ;
import { Forms } from "@vendetta/ui/components" ;
import { alerts } from "@vendetta/ui" ;
import { showToast } from "@vendetta/ui/toasts" ;
import BetterTableRowGroup from "../components/BetterTableRowGroup" ;
const { FormSwitchRow , FormRow } = Forms ;
export default function HiddenSettingsPage() {
2026-05-09 10:20:55 +02:00
useProxy ( storage ) ;
const [ , forceUpdate ] = React . useReducer ( ( x ) = > x + 1 , 0 ) ;
2025-12-09 22:28:25 +01:00
2026-05-09 10:20:55 +02:00
const styles = stylesheet . createThemedStyleSheet ( {
container : {
flex : 1 ,
backgroundColor : semanticColors.BACKGROUND_PRIMARY ,
} ,
warningText : {
fontSize : 14 ,
color : semanticColors.TEXT_MUTED ,
textAlign : "center" ,
lineHeight : 20 ,
fontWeight : "600" ,
} ,
infoText : {
fontSize : 14 ,
color : semanticColors.TEXT_MUTED ,
textAlign : "center" ,
lineHeight : 20 ,
marginTop : 8 ,
} ,
} ) ;
2025-12-09 22:28:25 +01:00
2026-05-09 10:20:55 +02:00
return (
< RN.ScrollView
style = { styles . container }
contentContainerStyle = { {
flexGrow : 1 ,
paddingVertical : 16 ,
maxWidth : "100%" ,
} }
>
< BetterTableRowGroup
title = "Warning"
icon = { getAssetIDByName ( "WarningIcon" ) }
padding = { true }
>
< RN.Text style = { styles . warningText } >
2025-12-09 22:28:25 +01:00
These are hidden commands that may contain mature content or
experimental features .
2026-05-09 10:20:55 +02:00
< / RN.Text >
< RN.Text style = { styles . infoText } >
2025-12-09 22:28:25 +01:00
Use at your own discretion . Commands in this section are disabled by
default .
2026-05-09 10:20:55 +02:00
< / RN.Text >
< / BetterTableRowGroup >
2025-12-09 22:28:25 +01:00
2026-05-09 10:20:55 +02:00
< BetterTableRowGroup
title = "Hidden Commands"
icon = { getAssetIDByName ( "EyeIcon" ) }
>
< FormSwitchRow
label = "/lovefemboys"
subLabel = "Get random femboy images from r/femboys (NSFW content available)"
leading = { < FormRow.Icon source = { getAssetIDByName ( "HeartIcon" ) } / > }
value = { storage . enabledCommands . lovefemboys }
onValueChange = { ( v ) = > {
storage . enabledCommands . lovefemboys = v ;
storage . pendingRestart = true ;
forceUpdate ( ) ;
} }
/ >
< / BetterTableRowGroup >
2025-12-09 22:28:25 +01:00
2026-05-09 10:20:55 +02:00
< BetterTableRowGroup
title = "NSFW Bypass Options"
icon = { getAssetIDByName ( "WarningIcon" ) }
>
< FormSwitchRow
label = "KonoChan NSFW Bypass"
subLabel = "Allow NSFW KonoChan content in non-NSFW channels (USE WITH CAUTION)"
leading = { < FormRow.Icon source = { getAssetIDByName ( "ShieldIcon" ) } / > }
value = { storage . hiddenSettings . konochanBypassNsfw }
onValueChange = { ( v ) = > {
if ( v ) {
alerts . showConfirmationAlert ( {
title : "⚠️ NSFW Bypass Warning" ,
content :
2025-12-09 22:28:25 +01:00
"Enabling this allows NSFW content from KonoChan to be sent in any channel, including non-NSFW channels. This could violate server rules or Discord ToS. Use responsibly!" ,
2026-05-09 10:20:55 +02:00
confirmText : "I Understand" ,
cancelText : "Cancel" ,
onConfirm : ( ) = > {
storage . hiddenSettings . konochanBypassNsfw = true ;
forceUpdate ( ) ;
} ,
onCancel : ( ) = > { } ,
} ) ;
} else {
storage . hiddenSettings . konochanBypassNsfw = false ;
forceUpdate ( ) ;
}
} }
/ >
< / BetterTableRowGroup >
2025-12-09 22:28:25 +01:00
2026-05-09 10:20:55 +02:00
< BetterTableRowGroup
title = "Hidden Settings Control"
icon = { getAssetIDByName ( "SettingsIcon" ) }
>
< FormSwitchRow
label = "Keep Hidden Settings Visible"
subLabel = "Keep this section visible even when navigating away"
leading = { < FormRow.Icon source = { getAssetIDByName ( "EyeIcon" ) } / > }
value = { storage . hiddenSettings . visible }
onValueChange = { ( v ) = > {
storage . hiddenSettings . visible = v ;
} }
/ >
< FormRow
label = "Reset Hidden Settings"
subLabel = "Hide this section and disable all hidden commands"
leading = { < FormRow.Icon source = { getAssetIDByName ( "TrashIcon" ) } / > }
onPress = { ( ) = > {
alerts . showConfirmationAlert ( {
title : "Reset Hidden Settings" ,
content :
2025-12-09 22:28:25 +01:00
"This will hide the hidden settings section and disable all hidden commands. Are you sure?" ,
2026-05-09 10:20:55 +02:00
confirmText : "Reset" ,
onConfirm : ( ) = > {
storage . hiddenSettings . enabled = false ;
storage . hiddenSettings . visible = false ;
storage . hiddenSettings . konochanBypassNsfw = false ;
storage . enabledCommands . lovefemboys = false ;
2025-12-09 22:28:25 +01:00
2026-05-09 10:20:55 +02:00
storage . pendingRestart = true ;
showToast (
"Hidden settings reset" ,
getAssetIDByName ( "CheckmarkIcon" ) ,
) ;
} ,
cancelText : "Cancel" ,
} ) ;
} }
/ >
< / BetterTableRowGroup >
< / RN.ScrollView >
) ;
2025-12-09 22:28:25 +01:00
}