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, } }