@sanity/sdk
Version:
103 lines (92 loc) • 1.71 kB
text/typescript
import {type ProjectHandle} from '../config/sanityConfig'
/**
* @public
*/
export interface SanityUser {
sanityUserId: string
profile: UserProfile
memberships: Membership[]
}
/**
* @public
*/
export interface Membership {
addedAt?: string
resourceType: string
resourceId: string
roleNames: Array<string>
lastSeenAt?: string | null
}
/**
* @public
*/
export interface UserProfile {
id: string
displayName: string
email: string
familyName?: string
givenName?: string
middleName?: string | null
imageUrl?: string
provider: string
tosAcceptedAt?: string
createdAt: string
updatedAt?: string
isCurrentUser?: boolean
providerId?: string
}
/**
* @public
*/
export interface GetUsersOptions extends ProjectHandle {
resourceType?: 'organization' | 'project'
batchSize?: number
organizationId?: string
userId?: string
}
/**
* @public
*/
export interface UsersGroupState {
subscriptions: string[]
totalCount?: number
nextCursor?: string | null
lastLoadMoreRequest?: string
users?: SanityUser[]
error?: unknown
}
/**
* @public
*/
export interface SanityUserResponse {
data: SanityUser[]
totalCount: number
nextCursor: string | null
}
/**
* @public
*/
export interface UsersStoreState {
users: {[TUsersKey in string]?: UsersGroupState}
error?: unknown
}
/**
* @public
*/
export interface ResolveUsersOptions extends GetUsersOptions {
signal?: AbortSignal
}
/**
* @public
*/
export interface GetUserOptions extends ProjectHandle {
userId: string
resourceType?: 'organization' | 'project'
organizationId?: string
}
/**
* @public
*/
export interface ResolveUserOptions extends GetUserOptions {
signal?: AbortSignal
}