Update docs

This commit is contained in:
Jon Staab
2026-06-10 14:12:47 -07:00
parent a33af11b1b
commit dbd043f105
35 changed files with 164 additions and 179 deletions
+31 -38
View File
@@ -2,25 +2,6 @@
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.
## Types
### UserDataLoader
```typescript
type UserDataLoader = (pubkey: string, relays?: string[], force?: boolean) => unknown
```
Function type for loading user data with optional relay specification and force refresh.
### MakeUserDataOptions
```typescript
type MakeUserDataOptions<T> = {
mapStore: Readable<Map<string, T>>
loadItem: UserDataLoader
}
```
Configuration for creating user data stores.
## User Data Stores
These reactive stores automatically load and cache user data:
@@ -30,56 +11,68 @@ These reactive stores automatically load and cache user data:
export const userProfile: Store<Profile | undefined>
// User follows list
export const userFollows: Store<List | undefined>
export const userFollowList: Store<List | undefined>
// User mutes list
export const userMutes: Store<List | undefined>
export const userMuteList: Store<List | undefined>
// User pins list
export const userPins: Store<List | undefined>
export const userPinList: Store<List | undefined>
// User relay selections
export const userRelayLists: Store<List | undefined>
export const userRelayList: Store<List | undefined>
// User messaging relay selections
export const userMessagingRelayLists: Store<List | undefined>
export const userMessagingRelayList: Store<List | undefined>
// User blossom servers
export const userBlossomServers: Store<List | undefined>
export const userBlossomServerList: Store<List | undefined>
```
## Manual Loading Functions
These functions allow manual loading of user data with optional relay specification and force refresh:
These functions load user data for the currently signed-in user with optional relay hints:
```typescript
// Load user profile
function loadUserProfile(relays?: string[], force?: boolean): Promise<void>
function loadUserProfile(relays?: string[]): Promise<void>
// Load user follows
function loadUserFollows(relays?: string[], force?: boolean): Promise<void>
function loadUserFollowList(relays?: string[]): Promise<void>
// Load user mutes
function loadUserMutes(relays?: string[], force?: boolean): Promise<void>
function loadUserMuteList(relays?: string[]): Promise<void>
// Load user pins
function loadUserPins(relays?: string[], force?: boolean): Promise<void>
function loadUserPinList(relays?: string[]): Promise<void>
// Load user relay selections
function loadUserRelayLists(relays?: string[], force?: boolean): Promise<void>
function loadUserRelayList(relays?: string[]): Promise<void>
// Load user messaging relay selections
function loadUserMessagingRelayLists(relays?: string[], force?: boolean): Promise<void>
function loadUserMessagingRelayList(relays?: string[]): Promise<void>
// Load user blossom servers
function loadUserBlossomServers(relays?: string[], force?: boolean): Promise<void>
function loadUserBlossomServerList(relays?: string[]): Promise<void>
```
Force-reload variants bypass the cache and always fetch fresh data:
```typescript
function forceLoadUserProfile(relays?: string[]): Promise<void>
function forceLoadUserFollowList(relays?: string[]): Promise<void>
function forceLoadUserMuteList(relays?: string[]): Promise<void>
function forceLoadUserPinList(relays?: string[]): Promise<void>
function forceLoadUserRelayList(relays?: string[]): Promise<void>
function forceLoadUserMessagingRelayList(relays?: string[]): Promise<void>
function forceLoadUserBlossomServerList(relays?: string[]): Promise<void>
```
## Usage Examples
### Using Reactive Stores
```typescript
import { userProfile, userFollows } from '@welshman/app'
import { userProfile, userFollowList } from '@welshman/app'
// Subscribe to user profile changes
userProfile.subscribe(profile => {
@@ -89,18 +82,18 @@ userProfile.subscribe(profile => {
})
// Get current follows list
const follows = userFollows.get()
const follows = userFollowList.get()
```
### Manual Loading
```typescript
import { loadUserMutes, loadUserRelayLists } from '@welshman/app'
import { loadUserMuteList, forceLoadUserRelayList } from '@welshman/app'
// Load user mutes from specific relays
await loadUserMutes(['wss://relay1.com', 'wss://relay2.com'])
await loadUserMuteList(['wss://relay1.com', 'wss://relay2.com'])
// Force refresh user relay selections
await loadUserRelayLists([], true)
await forceLoadUserRelayList([])
// Load from default relays
await loadUserProfile()