import { parseCoreFile as t } from "../../media/file"
import { calcAvatarColorById as e } from "../../lib/color"
import { EMPTY_ROOM_AVATAR as o, ROOM_AVATAR_MIME_TYPE_DEFAULT as a } from "../room.constant"
export const UNKNOWN_ID = "unknown_id"
export const getDmAvatarData = (e) => {
const r = t(e.avatar?.small),
m = r?.pointer?.inlined,
s = r?.mimetype || a
return { avatar: r ?? o.avatar, avatarUrl: m ? `data:${s};base64,${m}` : "" }
}
export const getDmRequestId = (t) => t?.id?.roomId || UNKNOWN_ID
export const parseDmRoom = (t) => ({ roomId: t.roomId ?? "", dmMemberId: t.dmMemberId ?? "" })
export const formatDmRequest = (t) => {
const { senderContactInfo: o } = t,
{ memberId: a, displayName: r } = o,
{ avatar: m, avatarUrl: s } = getDmAvatarData(o)
return {
avatar: m,
avatarUrl: s,
id: getDmRequestId(t),
color: e(a),
requestId: t.id,
senderId: a,
displayName: r,
message: t.message,
status: t.status,
timestamp: t.sentAt,
}
}
export const parseDmContactInfo = (t) => ({
roomId: t.activeRoom?.id ?? "",
memberId: t.memberId,
...t.pendingRequest?.status,
isBlocked: t.contactStatus?.isBlocked ?? !1,
isAccepted: t.activeRoom?.status?.isAccepted ?? !1,
isWritable: t.activeRoom?.status?.isWritable ?? !0,
})
export const parseDmRoomConfigIds = (t) => ({
roomId: t.roomId,
memberId: t.dmMemberId,
discoveryId: t.discoveryId,
})