{"version":3,"sources":["../src/lib/messageFragement.ts"],"names":["parseJson","json","messagesFragment","Message","senderId","readStat","status","useFragment","UserFieldsFragmentDoc","info","messageFragement_default"],"mappings":";kFAIA,IAAMA,EAAaC,GAAiB,CAClC,GAAI,CACF,OAAO,KAAK,MAAMA,CAAI,CACxB,MAAQ,CACN,OAAOA,CACT,CACF,EAEMC,EAAmB,CACvBC,EACAC,IACgB,CAChB,IAAMC,EAAW,IACRF,EAAQ,QAAQ,KACpBG,GAAWA,EAAO,UAAYF,GAAYE,EAAO,SAAW,MAC/D,EAGF,MAAO,CACL,GAAIH,EAAQ,GACZ,QACEA,EAAQ,OAAS,cACbH,EAAUG,EAAQ,OAAO,EACzBA,EAAQ,QACd,QAASA,EAAQ,UAAY,OAC7B,QAASA,EAAQ,QACjB,KAAMA,EAAQ,KACd,OAAQA,EAAQ,QAChB,KAAMA,EAAQ,MAAQ,OACtB,QAASA,EAAQ,UAAY,OAC7B,YAAaA,EAAQ,cAAgB,OACrC,SAAUA,EAAQ,UAAY,OAC9B,KAAMI,EAAYC,EAAuBL,EAAQ,MAAM,EAAE,QACzD,GAAII,EAAYC,EAAuBL,EAAQ,QAAQ,EAAE,QACzD,OAAQA,EAAQ,QAAQ,OACpBA,EAAQ,OAAO,IAAKM,IAAU,CAC5B,OAAQA,EAAK,SAAW,OACxB,OAAQA,EAAK,QAAU,OACvB,OAAQA,EAAK,OACf,EAAE,EACF,CAAC,EACL,WAAYJ,EAAS,EACrB,QAASF,EAAQ,QACjB,UAAWA,EAAQ,WACnB,UAAWA,EAAQ,UACrB,CACF,EAEOO,EAAQR","sourcesContent":["import { useFragment } from '@/generated';\nimport { ChatFieldsFragment, UserFieldsFragmentDoc } from '@/generated/graphql';\nimport { ChatMessage, MessageTypes } from '@/types';\n\nconst parseJson = (json: string) => {\n  try {\n    return JSON.parse(json);\n  } catch {\n    return json;\n  }\n};\n\nconst messagesFragment = (\n  Message: ChatFieldsFragment,\n  senderId?: string\n): ChatMessage => {\n  const readStat = (): boolean => {\n    return Message.status?.some(\n      (status) => status.user_id === senderId && status.status === 'READ'\n    );\n  };\n\n  return {\n    id: Message.id,\n    message:\n      Message.type === 'appointment'\n        ? parseJson(Message.message)\n        : Message.message,\n    subText: Message.sub_text ?? undefined,\n    options: Message.options,\n    type: Message.type as MessageTypes,\n    roomId: Message.room_id,\n    tags: Message.tags ?? undefined,\n    replyTo: Message.reply_to ?? undefined,\n    referenceId: Message.reference_id ?? undefined,\n    metadata: Message.metadata ?? undefined,\n    from: useFragment(UserFieldsFragmentDoc, Message.sender).user_id,\n    to: useFragment(UserFieldsFragmentDoc, Message.receiver).user_id,\n    status: Message.status?.length\n      ? Message.status.map((info) => ({\n          chatId: info.chat_id ?? undefined,\n          status: info.status ?? undefined,\n          userId: info.user_id,\n        }))\n      : [],\n    readStatus: readStat(),\n    private: Message.private,\n    createdAt: Message.created_at,\n    updatedAt: Message.updated_at,\n  };\n};\n\nexport default messagesFragment;\n"]}