main
import type { EnvelopePageMemberSummaryDataItemsItem, UserDto } from '@app/services/api'
/**
* `GET /spaces/{space}/members` returns flat `MemberSummary` rows (`user_id`,
* `username`, `displayname`, `alias_name`, …) — there is no nested `user`
* object. Both the space settings and the assignee/add-member pickers read
* `row.user`, so the identity is folded into one here instead of at each call
* site: reading a missing `user` yields `undefined`, which filters every row
* away and leaves those pickers silently empty.
*/
export interface MemberUserRow {
user: UserDto
alias_name?: string | null
status?: string | null
}
export function toMemberUserRow(row: EnvelopePageMemberSummaryDataItemsItem): MemberUserRow {
const display = row.displayname ?? row.alias_name ?? row.username
return {
user: {
user_id: row.user_id,
username: row.username,
display_name: display,
avatar_url: row.alias_avatar_url ?? '',
},
alias_name: row.alias_name,
status: undefined,
}
}