OverviewFilesCommitsIssuesDocsReleasesPeers

keet-deobfuscated / @holepunchto / keet-store / store / room / dm / room-dm.model.js

43 lines · javascript ref:
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,
})