import { plugin } from "@vendetta"; import { getAssetIDByName } from "@vendetta/ui/assets"; import { React } from "@vendetta/metro/common"; import { findByProps } from "@vendetta/metro"; import { View } from "react-native"; import { BundleUpdaterManager } from "@vendetta/metro/common"; const { ScrollView } = findByProps("ScrollView"); const { TableRowGroup, TableSwitchRow, Stack, TableRow } = findByProps( "TableSwitchRow", "TableRowGroup", "Stack", "TableRow", ); // Initialize default settings if not exist if (!storage.factSettings) { storage.factSettings = { sendAsReply: true, includeCitation: false, }; } if (!storage.listSettings) { storage.listSettings = { pluginListAlwaysDetailed: false, themeListAlwaysDetailed: false, }; } if (!storage.enabledCommands) { storage.enabledCommands = { catfact: true, dogfact: true, useless: true, petpet: true, pluginList: true, themeList: true, konoself: true, konosend: true, }; } if (!storage.pendingRestart) { storage.pendingRestart = false; } export default function Settings() { useProxy(storage); const [rerender, forceRerender] = React.useReducer((x) => x + 1, 0); // Check for changes when component unmounts React.useEffect(() => { return () => { if (storage.pendingRestart) { storage.pendingRestart = false; BundleUpdaterManager.reload(); } }; }, []); const handleCommandToggle = (commandName: string, value: boolean) => { storage.enabledCommands[commandName] = value; storage.pendingRestart = true; forceRerender(); }; return ( {/* Facts Commands */} { storage.factSettings.sendAsReply = v; forceRerender(); }} /> { storage.factSettings.includeCitation = v; forceRerender(); }} /> handleCommandToggle("catfact", v)} /> handleCommandToggle("dogfact", v)} /> handleCommandToggle("useless", v)} /> {/* List Commands */} { storage.listSettings.pluginListAlwaysDetailed = v; forceRerender(); }} /> { storage.listSettings.themeListAlwaysDetailed = v; forceRerender(); }} /> handleCommandToggle("pluginList", v)} /> handleCommandToggle("themeList", v)} /> {/* Image Commands */} handleCommandToggle("petpet", v)} /> {/* KonoChan Commands */} handleCommandToggle("konoself", v)} /> handleCommandToggle("konosend", v)} /> {/* Credits */} {/* Actions */} BundleUpdaterManager.reload()} /> {/* About */} ); }