aboutsummaryrefslogtreecommitdiffstats
path: root/packages/mobile/lib/settings.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/mobile/lib/settings.ts')
-rw-r--r--packages/mobile/lib/settings.ts39
1 files changed, 39 insertions, 0 deletions
diff --git a/packages/mobile/lib/settings.ts b/packages/mobile/lib/settings.ts
new file mode 100644
index 00000000..85296cfa
--- /dev/null
+++ b/packages/mobile/lib/settings.ts
@@ -0,0 +1,39 @@
+import * as SecureStore from "expo-secure-store";
+import { useEffect, useState } from "react";
+
+const SETTING_NAME = "settings";
+
+export type Settings = {
+ apiKey: string;
+ address: string;
+};
+
+export default function useAppSettings() {
+ const [settings, setSettings] = useState<Settings>({
+ apiKey: "",
+ address: "",
+ });
+
+ useEffect(() => {
+ SecureStore.setItemAsync(SETTING_NAME, JSON.stringify(settings));
+ }, [settings]);
+
+ useEffect(() => {
+ SecureStore.getItemAsync(SETTING_NAME).then((val) => {
+ if (!val) {
+ return;
+ }
+ setSettings(JSON.parse(val));
+ });
+ }, []);
+
+ return { settings, setSettings };
+}
+
+export async function getAppSettings() {
+ const val = await SecureStore.getItemAsync(SETTING_NAME);
+ if (!val) {
+ return null;
+ }
+ return JSON.parse(val) as Settings;
+}