mirror of
https://github.com/stackblitz-labs/bolt.diy
synced 2025-03-10 14:13:19 +00:00
29 lines
735 B
TypeScript
29 lines
735 B
TypeScript
|
import { atom } from 'nanostores';
|
||
|
|
||
|
interface Profile {
|
||
|
username: string;
|
||
|
bio: string;
|
||
|
avatar: string;
|
||
|
}
|
||
|
|
||
|
// Initialize with stored profile or defaults
|
||
|
const storedProfile = typeof window !== 'undefined' ? localStorage.getItem('bolt_profile') : null;
|
||
|
const initialProfile: Profile = storedProfile
|
||
|
? JSON.parse(storedProfile)
|
||
|
: {
|
||
|
username: '',
|
||
|
bio: '',
|
||
|
avatar: '',
|
||
|
};
|
||
|
|
||
|
export const profileStore = atom<Profile>(initialProfile);
|
||
|
|
||
|
export const updateProfile = (updates: Partial<Profile>) => {
|
||
|
profileStore.set({ ...profileStore.get(), ...updates });
|
||
|
|
||
|
// Persist to localStorage
|
||
|
if (typeof window !== 'undefined') {
|
||
|
localStorage.setItem('bolt_profile', JSON.stringify(profileStore.get()));
|
||
|
}
|
||
|
};
|