import { NavigationNative, React, ReactNative } from "@vendetta/metro/common"; import { storage } from "@vendetta/plugin"; import { useProxy } from "@vendetta/storage"; import { getAssetIDByName } from "@vendetta/ui/assets"; import { Forms } from "@vendetta/ui/components"; import { showToast } from "@vendetta/ui/toasts"; import { currentSettings } from "."; import Constants from "./constants"; import { flush, initialize } from "./utils"; const { ScrollView, TouchableOpacity, Text } = ReactNative; const { FormInput, FormDivider, FormSwitchRow, FormText, FormIcon } = Forms; function UpdateButton() { async function onPressCallback() { for (const key in storage) { if (storage[key] === false || storage[key]) { currentSettings[key] = storage[key]; } } console.log("Applying settings..."); await flush(); await initialize(); showToast("Settings updated!", getAssetIDByName("Check")); } return UPDATE ; } export default function Settings() { const settings = useProxy(storage) as PluginSettings; const navigation = NavigationNative.useNavigation(); React.useEffect(() => { navigation.setOptions({ title: "Last.fm Configuration", headerRight: UpdateButton }); }, []); return ( settings.appName = value.trim()} title="Discord Application Name" placeholder={Constants.DEFAULT_APP_NAME} returnKeyType="done" /> settings.username = value.trim()} title="Last.fm username" helpText={!settings.username && {"This field is required!"}} placeholder="wumpus123" returnKeyType="done" /> settings.timeInterval = Number(value)} title="Update interval (in seconds)" placeholder={Constants.DEFAULT_TIME_INTERVAL.toString()} keyboardType="numeric" returnKeyType="done" /> } value={settings.showTimestamp} onValueChange={(value: boolean) => settings.showTimestamp = value} /> } value={settings.listeningTo} onValueChange={(value: boolean) => settings.listeningTo = value} /> } value={settings.verboseLogging} onValueChange={(value: boolean) => settings.verboseLogging = value} /> ); }