import { NavigationNative, React } 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 { initialize } from "./utils";
import { useEffect } from "react";
import { ScrollView, Text, TouchableOpacity } from "react-native";
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 initialize();
showToast("Settings updated!", getAssetIDByName("Check"));
}
return
UPDATE
;
}
export default function Settings() {
const settings = useProxy(storage) as LFMSettings;
const navigation = NavigationNative.useNavigation();
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 = 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.ignoreSpotify}
onValueChange={(value: boolean) => settings.ignoreSpotify = value}
/>
}
value={settings.verboseLogging}
onValueChange={(value: boolean) => settings.verboseLogging = value}
/>
);
}