bolt.diy/app/lib/stores/profile.ts

29 lines
735 B
TypeScript
Raw Normal View History

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()));
}
};