Spaces:
Paused
Paused
| import { UserAccount, LeadData, AdminConfig } from '../types'; | |
| const KEYS = { | |
| USERS: 'rl_users', | |
| LEADS: 'rl_leads', | |
| CONFIG: 'rl_config', | |
| SESSION: 'rl_session' // Stores the ID of the currently logged-in user | |
| }; | |
| export const storageService = { | |
| // --- Users --- | |
| getUsers: (): UserAccount[] => { | |
| try { | |
| const data = localStorage.getItem(KEYS.USERS); | |
| return data ? JSON.parse(data) : []; | |
| } catch (e) { return []; } | |
| }, | |
| saveUsers: (users: UserAccount[]) => { | |
| localStorage.setItem(KEYS.USERS, JSON.stringify(users)); | |
| }, | |
| // --- Leads --- | |
| getLeads: (): LeadData[] => { | |
| try { | |
| const data = localStorage.getItem(KEYS.LEADS); | |
| return data ? JSON.parse(data) : []; | |
| } catch (e) { return []; } | |
| }, | |
| saveLeads: (leads: LeadData[]) => { | |
| localStorage.setItem(KEYS.LEADS, JSON.stringify(leads)); | |
| }, | |
| // --- Admin Config --- | |
| getAdminConfig: (): AdminConfig | null => { | |
| try { | |
| const data = localStorage.getItem(KEYS.CONFIG); | |
| return data ? JSON.parse(data) : null; | |
| } catch (e) { return null; } | |
| }, | |
| saveAdminConfig: (config: AdminConfig) => { | |
| localStorage.setItem(KEYS.CONFIG, JSON.stringify(config)); | |
| }, | |
| // --- Session (Auto Login) --- | |
| getSessionUserId: (): string | null => { | |
| return localStorage.getItem(KEYS.SESSION); | |
| }, | |
| setSessionUserId: (id: string) => { | |
| localStorage.setItem(KEYS.SESSION, id); | |
| }, | |
| clearSession: () => { | |
| localStorage.removeItem(KEYS.SESSION); | |
| } | |
| }; |