// settingsManager.ts

// Method to export localStorage to a JSON object
export function exportSettings(): string {
    const settings: { [key: string]: string } = {};

    // Loop through all keys in localStorage and add them to the settings object
    if (typeof localStorage !== 'undefined') { 
        for (let i = 0; i < localStorage.length; i++) {
            const key = localStorage.key(i);
            if (key) {
                if (key !== "accountName" && key !== "accountPassword" && key !== "accountEmail") {
                    settings[key] = localStorage.getItem(key) || "";
                }
            }
        }
    }

    // Convert settings object to JSON string
    return JSON.stringify(settings, null, 2);
}

// Method to import settings from a JSON object, clearing old localStorage
export function importSettings(jsonData: string): void {
    try {
        const parsedSettings = JSON.parse(jsonData);

        // Loop through parsed settings and save them in localStorage
        if (typeof localStorage !== 'undefined') {   
            Object.keys(parsedSettings).forEach((key) => {
                localStorage.setItem(key, parsedSettings[key]);
            });
        }

        console.log("Settings imported successfully!");
    } catch (error) {
        console.error("Invalid JSON data:", error);
    }
}