Creating a RN example for simple-chatbot

This commit is contained in:
Filipi Fuchter
2025-05-05 18:17:39 -03:00
parent b323a7bd88
commit 40154824e8
26 changed files with 12366 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
import AsyncStorage from '@react-native-async-storage/async-storage';
export interface SettingsManager {
enableCam: boolean;
enableMic: boolean;
backendURL: string;
}
// Define the settings object
const defaultSettings: SettingsManager = {
enableCam: false,
enableMic: true,
backendURL: process.env.EXPO_PUBLIC_BASE_URL || "https://api.daily.co/v1/bots",
};
export class SettingsManager {
private static preferencesKey = 'settingsPreference';
static async getSettings(): Promise<SettingsManager> {
try {
const data = await AsyncStorage.getItem(this.preferencesKey);
if (data !== null) {
return JSON.parse(data) as SettingsManager;
} else {
return defaultSettings;
}
} catch (error) {
console.error("Failed to load settings:", error);
return defaultSettings;
}
}
static async updateSettings(settings: SettingsManager): Promise<void> {
try {
const data = JSON.stringify(settings);
await AsyncStorage.setItem(this.preferencesKey, data);
} catch (error) {
console.error("Failed to save settings:", error);
}
}
}