# User Data Loading The User Data module provides utilities for loading and managing user-specific data like profiles, follows, mutes, pins, and relay selections. It includes both reactive stores and manual loading functions. ## User Data Stores These reactive stores automatically load and cache user data: ```typescript // User profile export const userProfile: Store // User follows list export const userFollowList: Store // User mutes list export const userMuteList: Store // User pins list export const userPinList: Store // User relay selections export const userRelayList: Store // User messaging relay selections export const userMessagingRelayList: Store // User blossom servers export const userBlossomServerList: Store ``` ## Manual Loading Functions These functions load user data for the currently signed-in user with optional relay hints: ```typescript // Load user profile function loadUserProfile(relays?: string[]): Promise // Load user follows function loadUserFollowList(relays?: string[]): Promise // Load user mutes function loadUserMuteList(relays?: string[]): Promise // Load user pins function loadUserPinList(relays?: string[]): Promise // Load user relay selections function loadUserRelayList(relays?: string[]): Promise // Load user messaging relay selections function loadUserMessagingRelayList(relays?: string[]): Promise // Load user blossom servers function loadUserBlossomServerList(relays?: string[]): Promise ``` Force-reload variants bypass the cache and always fetch fresh data: ```typescript function forceLoadUserProfile(relays?: string[]): Promise function forceLoadUserFollowList(relays?: string[]): Promise function forceLoadUserMuteList(relays?: string[]): Promise function forceLoadUserPinList(relays?: string[]): Promise function forceLoadUserRelayList(relays?: string[]): Promise function forceLoadUserMessagingRelayList(relays?: string[]): Promise function forceLoadUserBlossomServerList(relays?: string[]): Promise ``` ## Usage Examples ### Using Reactive Stores ```typescript import { userProfile, userFollowList } from '@welshman/app' // Subscribe to user profile changes userProfile.subscribe(profile => { if (profile) { console.log('User profile:', profile) } }) // Get current follows list const follows = userFollowList.get() ``` ### Manual Loading ```typescript import { loadUserMuteList, forceLoadUserRelayList } from '@welshman/app' // Load user mutes from specific relays await loadUserMuteList(['wss://relay1.com', 'wss://relay2.com']) // Force refresh user relay selections await forceLoadUserRelayList([]) // Load from default relays await loadUserProfile() ```