@replyke/core 7.0.0-beta.100 → 7.0.0-beta.103

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/dist/cjs/config/axios.d.ts +1 -0
  2. package/dist/cjs/config/axios.js +4 -4
  3. package/dist/cjs/config/axios.js.map +1 -1
  4. package/dist/cjs/context/chat-context.d.ts +17 -0
  5. package/dist/cjs/context/chat-context.js +299 -0
  6. package/dist/cjs/context/chat-context.js.map +1 -0
  7. package/dist/cjs/context/conversation-context.d.ts +14 -0
  8. package/dist/cjs/context/conversation-context.js +231 -0
  9. package/dist/cjs/context/conversation-context.js.map +1 -0
  10. package/dist/cjs/context/index.d.ts +3 -0
  11. package/dist/cjs/context/index.js +13 -1
  12. package/dist/cjs/context/index.js.map +1 -1
  13. package/dist/cjs/context/message-thread-context.d.ts +13 -0
  14. package/dist/cjs/context/message-thread-context.js +32 -0
  15. package/dist/cjs/context/message-thread-context.js.map +1 -0
  16. package/dist/cjs/hooks/chat/conversations/index.d.ts +10 -0
  17. package/dist/cjs/hooks/chat/conversations/index.js +17 -0
  18. package/dist/cjs/hooks/chat/conversations/index.js.map +1 -0
  19. package/dist/cjs/hooks/chat/conversations/useConversation.d.ts +18 -0
  20. package/dist/cjs/hooks/chat/conversations/useConversation.js +134 -0
  21. package/dist/cjs/hooks/chat/conversations/useConversation.js.map +1 -0
  22. package/dist/cjs/hooks/chat/conversations/useConversationMembers.d.ts +18 -0
  23. package/dist/cjs/hooks/chat/conversations/useConversationMembers.js +219 -0
  24. package/dist/cjs/hooks/chat/conversations/useConversationMembers.js.map +1 -0
  25. package/dist/cjs/hooks/chat/conversations/useConversations.d.ts +17 -0
  26. package/dist/cjs/hooks/chat/conversations/useConversations.js +193 -0
  27. package/dist/cjs/hooks/chat/conversations/useConversations.js.map +1 -0
  28. package/dist/cjs/hooks/chat/conversations/useCreateDirectConversation.d.ts +6 -0
  29. package/dist/cjs/hooks/chat/conversations/useCreateDirectConversation.js +83 -0
  30. package/dist/cjs/hooks/chat/conversations/useCreateDirectConversation.js.map +1 -0
  31. package/dist/cjs/hooks/chat/conversations/useSpaceConversation.d.ts +10 -0
  32. package/dist/cjs/hooks/chat/conversations/useSpaceConversation.js +91 -0
  33. package/dist/cjs/hooks/chat/conversations/useSpaceConversation.js.map +1 -0
  34. package/dist/cjs/hooks/chat/index.d.ts +15 -0
  35. package/dist/cjs/hooks/chat/index.js +36 -0
  36. package/dist/cjs/hooks/chat/index.js.map +1 -0
  37. package/dist/cjs/hooks/chat/messages/index.d.ts +12 -0
  38. package/dist/cjs/hooks/chat/messages/index.js +19 -0
  39. package/dist/cjs/hooks/chat/messages/index.js.map +1 -0
  40. package/dist/cjs/hooks/chat/messages/useChatMessages.d.ts +15 -0
  41. package/dist/cjs/hooks/chat/messages/useChatMessages.js +228 -0
  42. package/dist/cjs/hooks/chat/messages/useChatMessages.js.map +1 -0
  43. package/dist/cjs/hooks/chat/messages/useDeleteMessage.d.ts +6 -0
  44. package/dist/cjs/hooks/chat/messages/useDeleteMessage.js +81 -0
  45. package/dist/cjs/hooks/chat/messages/useDeleteMessage.js.map +1 -0
  46. package/dist/cjs/hooks/chat/messages/useEditMessage.d.ts +13 -0
  47. package/dist/cjs/hooks/chat/messages/useEditMessage.js +81 -0
  48. package/dist/cjs/hooks/chat/messages/useEditMessage.js.map +1 -0
  49. package/dist/cjs/hooks/chat/messages/useMessageThread.d.ts +15 -0
  50. package/dist/cjs/hooks/chat/messages/useMessageThread.js +38 -0
  51. package/dist/cjs/hooks/chat/messages/useMessageThread.js.map +1 -0
  52. package/dist/cjs/hooks/chat/messages/useSendMessage.d.ts +17 -0
  53. package/dist/cjs/hooks/chat/messages/useSendMessage.js +156 -0
  54. package/dist/cjs/hooks/chat/messages/useSendMessage.js.map +1 -0
  55. package/dist/cjs/hooks/chat/messages/useToggleReaction.d.ts +11 -0
  56. package/dist/cjs/hooks/chat/messages/useToggleReaction.js +95 -0
  57. package/dist/cjs/hooks/chat/messages/useToggleReaction.js.map +1 -0
  58. package/dist/cjs/hooks/chat/useChatSocket.d.ts +11 -0
  59. package/dist/cjs/hooks/chat/useChatSocket.js +13 -0
  60. package/dist/cjs/hooks/chat/useChatSocket.js.map +1 -0
  61. package/dist/cjs/hooks/chat/useConversationData.d.ts +31 -0
  62. package/dist/cjs/hooks/chat/useConversationData.js +47 -0
  63. package/dist/cjs/hooks/chat/useConversationData.js.map +1 -0
  64. package/dist/cjs/hooks/chat/useMarkConversationAsRead.d.ts +10 -0
  65. package/dist/cjs/hooks/chat/useMarkConversationAsRead.js +87 -0
  66. package/dist/cjs/hooks/chat/useMarkConversationAsRead.js.map +1 -0
  67. package/dist/cjs/hooks/chat/useReportMessage.d.ts +8 -0
  68. package/dist/cjs/hooks/chat/useReportMessage.js +76 -0
  69. package/dist/cjs/hooks/chat/useReportMessage.js.map +1 -0
  70. package/dist/cjs/hooks/chat/useTotalUnreadCount.d.ts +6 -0
  71. package/dist/cjs/hooks/chat/useTotalUnreadCount.js +14 -0
  72. package/dist/cjs/hooks/chat/useTotalUnreadCount.js.map +1 -0
  73. package/dist/cjs/hooks/chat/useTypingIndicator.d.ts +21 -0
  74. package/dist/cjs/hooks/chat/useTypingIndicator.js +68 -0
  75. package/dist/cjs/hooks/chat/useTypingIndicator.js.map +1 -0
  76. package/dist/cjs/hooks/comments/index.d.ts +1 -1
  77. package/dist/cjs/hooks/comments/index.js.map +1 -1
  78. package/dist/cjs/hooks/comments/useCommentSectionData.d.ts +7 -0
  79. package/dist/cjs/hooks/comments/useCommentSectionData.js +62 -38
  80. package/dist/cjs/hooks/comments/useCommentSectionData.js.map +1 -1
  81. package/dist/cjs/hooks/spaces/index.d.ts +4 -0
  82. package/dist/cjs/hooks/spaces/index.js +6 -1
  83. package/dist/cjs/hooks/spaces/index.js.map +1 -1
  84. package/dist/cjs/hooks/spaces/useSpaceMentions.d.ts +24 -0
  85. package/dist/cjs/hooks/spaces/useSpaceMentions.js +191 -0
  86. package/dist/cjs/hooks/spaces/useSpaceMentions.js.map +1 -0
  87. package/dist/cjs/hooks/spaces/useUnbanMember.d.ts +11 -0
  88. package/dist/cjs/hooks/spaces/useUnbanMember.js +71 -0
  89. package/dist/cjs/hooks/spaces/useUnbanMember.js.map +1 -0
  90. package/dist/cjs/hooks/users/index.d.ts +1 -1
  91. package/dist/cjs/hooks/users/index.js +3 -3
  92. package/dist/cjs/hooks/users/index.js.map +1 -1
  93. package/dist/cjs/hooks/users/{useMentions.d.ts → useUserMentions.d.ts} +8 -4
  94. package/dist/cjs/hooks/users/{useMentions.js → useUserMentions.js} +22 -17
  95. package/dist/cjs/hooks/users/useUserMentions.js.map +1 -0
  96. package/dist/cjs/index.d.ts +11 -5
  97. package/dist/cjs/index.js +70 -5
  98. package/dist/cjs/index.js.map +1 -1
  99. package/dist/cjs/interfaces/models/File.d.ts +1 -0
  100. package/dist/cjs/interfaces/models/IChatMessage.d.ts +34 -0
  101. package/dist/cjs/interfaces/models/IChatMessage.js +3 -0
  102. package/dist/cjs/interfaces/models/IChatMessage.js.map +1 -0
  103. package/dist/cjs/interfaces/models/IConversation.d.ts +25 -0
  104. package/dist/cjs/interfaces/models/IConversation.js +3 -0
  105. package/dist/cjs/interfaces/models/IConversation.js.map +1 -0
  106. package/dist/cjs/interfaces/models/IConversationMember.d.ts +16 -0
  107. package/dist/cjs/interfaces/models/IConversationMember.js +3 -0
  108. package/dist/cjs/interfaces/models/IConversationMember.js.map +1 -0
  109. package/dist/cjs/interfaces/models/Mention.d.ts +8 -1
  110. package/dist/cjs/store/api/spacesApi.d.ts +364 -0
  111. package/dist/cjs/store/api/spacesApi.js +20 -3
  112. package/dist/cjs/store/api/spacesApi.js.map +1 -1
  113. package/dist/cjs/store/hooks.d.ts +1 -0
  114. package/dist/cjs/store/index.d.ts +2 -0
  115. package/dist/cjs/store/replykeReducers.d.ts +2 -0
  116. package/dist/cjs/store/replykeReducers.js +2 -0
  117. package/dist/cjs/store/replykeReducers.js.map +1 -1
  118. package/dist/cjs/store/rootReducer.d.ts +3 -0
  119. package/dist/cjs/store/slices/chatSlice.d.ts +120 -0
  120. package/dist/cjs/store/slices/chatSlice.js +369 -0
  121. package/dist/cjs/store/slices/chatSlice.js.map +1 -0
  122. package/dist/cjs/store/slices/entityListsSlice.d.ts +168 -24
  123. package/dist/cjs/store/slices/spaceListsSlice.d.ts +24 -0
  124. package/dist/cjs/store/slices/userSlice.d.ts +16 -0
  125. package/dist/cjs/types/socket.d.ts +73 -0
  126. package/dist/cjs/types/socket.js +3 -0
  127. package/dist/cjs/types/socket.js.map +1 -0
  128. package/dist/esm/config/axios.d.ts +1 -0
  129. package/dist/esm/config/axios.js +1 -1
  130. package/dist/esm/config/axios.js.map +1 -1
  131. package/dist/esm/context/chat-context.d.ts +17 -0
  132. package/dist/esm/context/chat-context.js +291 -0
  133. package/dist/esm/context/chat-context.js.map +1 -0
  134. package/dist/esm/context/conversation-context.d.ts +14 -0
  135. package/dist/esm/context/conversation-context.js +223 -0
  136. package/dist/esm/context/conversation-context.js.map +1 -0
  137. package/dist/esm/context/index.d.ts +3 -0
  138. package/dist/esm/context/index.js +3 -0
  139. package/dist/esm/context/index.js.map +1 -1
  140. package/dist/esm/context/message-thread-context.d.ts +13 -0
  141. package/dist/esm/context/message-thread-context.js +24 -0
  142. package/dist/esm/context/message-thread-context.js.map +1 -0
  143. package/dist/esm/hooks/chat/conversations/index.d.ts +10 -0
  144. package/dist/esm/hooks/chat/conversations/index.js +6 -0
  145. package/dist/esm/hooks/chat/conversations/index.js.map +1 -0
  146. package/dist/esm/hooks/chat/conversations/useConversation.d.ts +18 -0
  147. package/dist/esm/hooks/chat/conversations/useConversation.js +129 -0
  148. package/dist/esm/hooks/chat/conversations/useConversation.js.map +1 -0
  149. package/dist/esm/hooks/chat/conversations/useConversationMembers.d.ts +18 -0
  150. package/dist/esm/hooks/chat/conversations/useConversationMembers.js +214 -0
  151. package/dist/esm/hooks/chat/conversations/useConversationMembers.js.map +1 -0
  152. package/dist/esm/hooks/chat/conversations/useConversations.d.ts +17 -0
  153. package/dist/esm/hooks/chat/conversations/useConversations.js +188 -0
  154. package/dist/esm/hooks/chat/conversations/useConversations.js.map +1 -0
  155. package/dist/esm/hooks/chat/conversations/useCreateDirectConversation.d.ts +6 -0
  156. package/dist/esm/hooks/chat/conversations/useCreateDirectConversation.js +78 -0
  157. package/dist/esm/hooks/chat/conversations/useCreateDirectConversation.js.map +1 -0
  158. package/dist/esm/hooks/chat/conversations/useSpaceConversation.d.ts +10 -0
  159. package/dist/esm/hooks/chat/conversations/useSpaceConversation.js +86 -0
  160. package/dist/esm/hooks/chat/conversations/useSpaceConversation.js.map +1 -0
  161. package/dist/esm/hooks/chat/index.d.ts +15 -0
  162. package/dist/esm/hooks/chat/index.js +13 -0
  163. package/dist/esm/hooks/chat/index.js.map +1 -0
  164. package/dist/esm/hooks/chat/messages/index.d.ts +12 -0
  165. package/dist/esm/hooks/chat/messages/index.js +7 -0
  166. package/dist/esm/hooks/chat/messages/index.js.map +1 -0
  167. package/dist/esm/hooks/chat/messages/useChatMessages.d.ts +15 -0
  168. package/dist/esm/hooks/chat/messages/useChatMessages.js +223 -0
  169. package/dist/esm/hooks/chat/messages/useChatMessages.js.map +1 -0
  170. package/dist/esm/hooks/chat/messages/useDeleteMessage.d.ts +6 -0
  171. package/dist/esm/hooks/chat/messages/useDeleteMessage.js +76 -0
  172. package/dist/esm/hooks/chat/messages/useDeleteMessage.js.map +1 -0
  173. package/dist/esm/hooks/chat/messages/useEditMessage.d.ts +13 -0
  174. package/dist/esm/hooks/chat/messages/useEditMessage.js +76 -0
  175. package/dist/esm/hooks/chat/messages/useEditMessage.js.map +1 -0
  176. package/dist/esm/hooks/chat/messages/useMessageThread.d.ts +15 -0
  177. package/dist/esm/hooks/chat/messages/useMessageThread.js +33 -0
  178. package/dist/esm/hooks/chat/messages/useMessageThread.js.map +1 -0
  179. package/dist/esm/hooks/chat/messages/useSendMessage.d.ts +17 -0
  180. package/dist/esm/hooks/chat/messages/useSendMessage.js +151 -0
  181. package/dist/esm/hooks/chat/messages/useSendMessage.js.map +1 -0
  182. package/dist/esm/hooks/chat/messages/useToggleReaction.d.ts +11 -0
  183. package/dist/esm/hooks/chat/messages/useToggleReaction.js +90 -0
  184. package/dist/esm/hooks/chat/messages/useToggleReaction.js.map +1 -0
  185. package/dist/esm/hooks/chat/useChatSocket.d.ts +11 -0
  186. package/dist/esm/hooks/chat/useChatSocket.js +11 -0
  187. package/dist/esm/hooks/chat/useChatSocket.js.map +1 -0
  188. package/dist/esm/hooks/chat/useConversationData.d.ts +31 -0
  189. package/dist/esm/hooks/chat/useConversationData.js +42 -0
  190. package/dist/esm/hooks/chat/useConversationData.js.map +1 -0
  191. package/dist/esm/hooks/chat/useMarkConversationAsRead.d.ts +10 -0
  192. package/dist/esm/hooks/chat/useMarkConversationAsRead.js +82 -0
  193. package/dist/esm/hooks/chat/useMarkConversationAsRead.js.map +1 -0
  194. package/dist/esm/hooks/chat/useReportMessage.d.ts +8 -0
  195. package/dist/esm/hooks/chat/useReportMessage.js +71 -0
  196. package/dist/esm/hooks/chat/useReportMessage.js.map +1 -0
  197. package/dist/esm/hooks/chat/useTotalUnreadCount.d.ts +6 -0
  198. package/dist/esm/hooks/chat/useTotalUnreadCount.js +12 -0
  199. package/dist/esm/hooks/chat/useTotalUnreadCount.js.map +1 -0
  200. package/dist/esm/hooks/chat/useTypingIndicator.d.ts +21 -0
  201. package/dist/esm/hooks/chat/useTypingIndicator.js +66 -0
  202. package/dist/esm/hooks/chat/useTypingIndicator.js.map +1 -0
  203. package/dist/esm/hooks/comments/index.d.ts +1 -1
  204. package/dist/esm/hooks/comments/index.js.map +1 -1
  205. package/dist/esm/hooks/comments/useCommentSectionData.d.ts +7 -0
  206. package/dist/esm/hooks/comments/useCommentSectionData.js +62 -38
  207. package/dist/esm/hooks/comments/useCommentSectionData.js.map +1 -1
  208. package/dist/esm/hooks/spaces/index.d.ts +4 -0
  209. package/dist/esm/hooks/spaces/index.js +3 -0
  210. package/dist/esm/hooks/spaces/index.js.map +1 -1
  211. package/dist/esm/hooks/spaces/useSpaceMentions.d.ts +24 -0
  212. package/dist/esm/hooks/spaces/useSpaceMentions.js +186 -0
  213. package/dist/esm/hooks/spaces/useSpaceMentions.js.map +1 -0
  214. package/dist/esm/hooks/spaces/useUnbanMember.d.ts +11 -0
  215. package/dist/esm/hooks/spaces/useUnbanMember.js +66 -0
  216. package/dist/esm/hooks/spaces/useUnbanMember.js.map +1 -0
  217. package/dist/esm/hooks/users/index.d.ts +1 -1
  218. package/dist/esm/hooks/users/index.js +1 -1
  219. package/dist/esm/hooks/users/index.js.map +1 -1
  220. package/dist/esm/hooks/users/{useMentions.d.ts → useUserMentions.d.ts} +8 -4
  221. package/dist/esm/hooks/users/{useMentions.js → useUserMentions.js} +22 -17
  222. package/dist/esm/hooks/users/useUserMentions.js.map +1 -0
  223. package/dist/esm/index.d.ts +11 -5
  224. package/dist/esm/index.js +7 -3
  225. package/dist/esm/index.js.map +1 -1
  226. package/dist/esm/interfaces/models/File.d.ts +1 -0
  227. package/dist/esm/interfaces/models/IChatMessage.d.ts +34 -0
  228. package/dist/esm/interfaces/models/IChatMessage.js +2 -0
  229. package/dist/esm/interfaces/models/IChatMessage.js.map +1 -0
  230. package/dist/esm/interfaces/models/IConversation.d.ts +25 -0
  231. package/dist/esm/interfaces/models/IConversation.js +2 -0
  232. package/dist/esm/interfaces/models/IConversation.js.map +1 -0
  233. package/dist/esm/interfaces/models/IConversationMember.d.ts +16 -0
  234. package/dist/esm/interfaces/models/IConversationMember.js +2 -0
  235. package/dist/esm/interfaces/models/IConversationMember.js.map +1 -0
  236. package/dist/esm/interfaces/models/Mention.d.ts +8 -1
  237. package/dist/esm/store/api/spacesApi.d.ts +364 -0
  238. package/dist/esm/store/api/spacesApi.js +19 -2
  239. package/dist/esm/store/api/spacesApi.js.map +1 -1
  240. package/dist/esm/store/hooks.d.ts +1 -0
  241. package/dist/esm/store/index.d.ts +2 -0
  242. package/dist/esm/store/replykeReducers.d.ts +2 -0
  243. package/dist/esm/store/replykeReducers.js +2 -0
  244. package/dist/esm/store/replykeReducers.js.map +1 -1
  245. package/dist/esm/store/rootReducer.d.ts +3 -0
  246. package/dist/esm/store/slices/chatSlice.d.ts +120 -0
  247. package/dist/esm/store/slices/chatSlice.js +350 -0
  248. package/dist/esm/store/slices/chatSlice.js.map +1 -0
  249. package/dist/esm/store/slices/entityListsSlice.d.ts +168 -24
  250. package/dist/esm/store/slices/spaceListsSlice.d.ts +24 -0
  251. package/dist/esm/store/slices/userSlice.d.ts +16 -0
  252. package/dist/esm/types/socket.d.ts +73 -0
  253. package/dist/esm/types/socket.js +2 -0
  254. package/dist/esm/types/socket.js.map +1 -0
  255. package/package.json +3 -2
  256. package/dist/cjs/hooks/users/useMentions.js.map +0 -1
  257. package/dist/esm/hooks/users/useMentions.js.map +0 -1
@@ -0,0 +1,76 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { useCallback } from "react";
38
+ import { useReplykeDispatch } from "../../../store/hooks";
39
+ import { upsertMessage } from "../../../store/slices/chatSlice";
40
+ import useAxiosPrivate from "../../../config/useAxiosPrivate";
41
+ import useProject from "../../projects/useProject";
42
+ import { handleError } from "../../../utils/handleError";
43
+ function useEditMessage() {
44
+ var _this = this;
45
+ var dispatch = useReplykeDispatch();
46
+ var projectId = useProject().projectId;
47
+ var axios = useAxiosPrivate();
48
+ var edit = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
49
+ var response, updated, err_1;
50
+ var conversationId = _b.conversationId, messageId = _b.messageId, content = _b.content, gif = _b.gif, mentions = _b.mentions, metadata = _b.metadata;
51
+ return __generator(this, function (_c) {
52
+ switch (_c.label) {
53
+ case 0:
54
+ if (!projectId)
55
+ throw new Error("No projectId available.");
56
+ _c.label = 1;
57
+ case 1:
58
+ _c.trys.push([1, 3, , 4]);
59
+ return [4 /*yield*/, axios.patch("/".concat(projectId, "/v7/chat/conversations/").concat(conversationId, "/messages/").concat(messageId), { content: content, gif: gif, mentions: mentions, metadata: metadata })];
60
+ case 2:
61
+ response = _c.sent();
62
+ updated = response.data;
63
+ dispatch(upsertMessage(updated));
64
+ return [2 /*return*/, updated];
65
+ case 3:
66
+ err_1 = _c.sent();
67
+ handleError(err_1, "Failed to edit message");
68
+ throw err_1;
69
+ case 4: return [2 /*return*/];
70
+ }
71
+ });
72
+ }); }, [projectId, axios, dispatch]);
73
+ return edit;
74
+ }
75
+ export default useEditMessage;
76
+ //# sourceMappingURL=useEditMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEditMessage.js","sourceRoot":"","sources":["../../../../../src/hooks/chat/messages/useEditMessage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAIhE,OAAO,eAAe,MAAM,iCAAiC,CAAC;AAC9D,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAWzD,SAAS,cAAc;IAAvB,iBAiCC;IAhCC,IAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IAC9B,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IACnC,IAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAEhC,IAAM,IAAI,GAAG,WAAW,CACtB,gEAAO,EAOa;;YANlB,cAAc,oBAAA,EACd,SAAS,eAAA,EACT,OAAO,aAAA,EACP,GAAG,SAAA,EACH,QAAQ,cAAA,EACR,QAAQ,cAAA;;;;oBAER,IAAI,CAAC,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;;;;oBAGxC,qBAAM,KAAK,CAAC,KAAK,CAChC,WAAI,SAAS,oCAA0B,cAAc,uBAAa,SAAS,CAAE,EAC7E,EAAE,OAAO,SAAA,EAAE,GAAG,KAAA,EAAE,QAAQ,UAAA,EAAE,QAAQ,UAAA,EAAE,CACrC,EAAA;;oBAHK,QAAQ,GAAG,SAGhB;oBACK,OAAO,GAAG,QAAQ,CAAC,IAAoB,CAAC;oBAC9C,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;oBACjC,sBAAO,OAAO,EAAC;;;oBAEf,WAAW,CAAC,KAAG,EAAE,wBAAwB,CAAC,CAAC;oBAC3C,MAAM,KAAG,CAAC;;;;SAEb,EACD,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAC7B,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,cAAc,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { IChatMessage } from "../../../interfaces/models/IChatMessage";
2
+ import { SendMessageParams } from "./useSendMessage";
3
+ export interface UseMessageThreadProps {
4
+ conversationId: string;
5
+ messageId: string;
6
+ }
7
+ export interface UseMessageThreadValues {
8
+ replies: IChatMessage[];
9
+ loading: boolean;
10
+ hasMore: boolean;
11
+ loadMore: () => Promise<void>;
12
+ sendReply: (params: Omit<SendMessageParams, "parentMessageId">) => Promise<IChatMessage>;
13
+ }
14
+ declare function useMessageThread({ conversationId, messageId, }: UseMessageThreadProps): UseMessageThreadValues;
15
+ export default useMessageThread;
@@ -0,0 +1,33 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import useChatMessages from "./useChatMessages";
13
+ import useSendMessage from "./useSendMessage";
14
+ function useMessageThread(_a) {
15
+ var conversationId = _a.conversationId, messageId = _a.messageId;
16
+ var _b = useChatMessages({
17
+ conversationId: conversationId,
18
+ parentId: messageId,
19
+ }), messages = _b.messages, loading = _b.loading, hasMore = _b.hasMore, loadOlder = _b.loadOlder;
20
+ var send = useSendMessage({ conversationId: conversationId });
21
+ var sendReply = function (params) {
22
+ return send(__assign(__assign({}, params), { parentMessageId: messageId }));
23
+ };
24
+ return {
25
+ replies: messages,
26
+ loading: loading,
27
+ hasMore: hasMore,
28
+ loadMore: loadOlder,
29
+ sendReply: sendReply,
30
+ };
31
+ }
32
+ export default useMessageThread;
33
+ //# sourceMappingURL=useMessageThread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMessageThread.js","sourceRoot":"","sources":["../../../../../src/hooks/chat/messages/useMessageThread.tsx"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,cAAqC,MAAM,kBAAkB,CAAC;AAerE,SAAS,gBAAgB,CAAC,EAGF;QAFtB,cAAc,oBAAA,EACd,SAAS,eAAA;IAEH,IAAA,KAA4C,eAAe,CAAC;QAChE,cAAc,gBAAA;QACd,QAAQ,EAAE,SAAS;KACpB,CAAC,EAHM,QAAQ,cAAA,EAAE,OAAO,aAAA,EAAE,OAAO,aAAA,EAAE,SAAS,eAG3C,CAAC;IAEH,IAAM,IAAI,GAAG,cAAc,CAAC,EAAE,cAAc,gBAAA,EAAE,CAAC,CAAC;IAEhD,IAAM,SAAS,GAAG,UAAC,MAAkD;QACnE,OAAA,IAAI,uBAAM,MAAM,KAAE,eAAe,EAAE,SAAS,IAAG;IAA/C,CAA+C,CAAC;IAElD,OAAO;QACL,OAAO,EAAE,QAAQ;QACjB,OAAO,SAAA;QACP,OAAO,SAAA;QACP,QAAQ,EAAE,SAAS;QACnB,SAAS,WAAA;KACV,CAAC;AACJ,CAAC;AAED,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { IChatMessage } from "../../../interfaces/models/IChatMessage";
2
+ import { GifData } from "../../../interfaces/models/Comment";
3
+ import { Mention } from "../../../interfaces/models/Mention";
4
+ export interface SendMessageParams {
5
+ content?: string;
6
+ gif?: GifData;
7
+ mentions?: Mention[];
8
+ metadata?: Record<string, any>;
9
+ quotedMessageId?: string | null;
10
+ parentMessageId?: string | null;
11
+ files?: File[];
12
+ }
13
+ export interface UseSendMessageProps {
14
+ conversationId: string;
15
+ }
16
+ declare function useSendMessage({ conversationId, }: UseSendMessageProps): (params: SendMessageParams) => Promise<IChatMessage>;
17
+ export default useSendMessage;
@@ -0,0 +1,151 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
13
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
14
+ return new (P || (P = Promise))(function (resolve, reject) {
15
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
16
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
17
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
18
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
19
+ });
20
+ };
21
+ var __generator = (this && this.__generator) || function (thisArg, body) {
22
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
24
+ function verb(n) { return function (v) { return step([n, v]); }; }
25
+ function step(op) {
26
+ if (f) throw new TypeError("Generator is already executing.");
27
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
28
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
29
+ if (y = 0, t) op = [op[0] & 2, t.value];
30
+ switch (op[0]) {
31
+ case 0: case 1: t = op; break;
32
+ case 4: _.label++; return { value: op[1], done: false };
33
+ case 5: _.label++; y = op[1]; op = [0]; continue;
34
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
35
+ default:
36
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
37
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
38
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
39
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
40
+ if (t[2]) _.ops.pop();
41
+ _.trys.pop(); continue;
42
+ }
43
+ op = body.call(thisArg, _);
44
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
45
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
46
+ }
47
+ };
48
+ import { useCallback } from "react";
49
+ import { useReplykeDispatch, useReplykeSelector } from "../../../store/hooks";
50
+ import { addOptimisticMessage, upsertMessage, failOptimisticMessage, } from "../../../store/slices/chatSlice";
51
+ import { selectUser } from "../../../store/slices/userSlice";
52
+ import { selectUser as selectAuthUser } from "../../../store/slices/authSlice";
53
+ import useAxiosPrivate from "../../../config/useAxiosPrivate";
54
+ import useProject from "../../projects/useProject";
55
+ import { handleError } from "../../../utils/handleError";
56
+ function useSendMessage(_a) {
57
+ var _this = this;
58
+ var conversationId = _a.conversationId;
59
+ var dispatch = useReplykeDispatch();
60
+ var projectId = useProject().projectId;
61
+ var axios = useAxiosPrivate();
62
+ // Get current user for the optimistic message
63
+ var user = useReplykeSelector(selectUser);
64
+ var authUser = useReplykeSelector(selectAuthUser);
65
+ var currentUser = user || authUser;
66
+ var send = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
67
+ var clientId, now, optimisticMsg, response, formData_1, confirmedMsg, err_1;
68
+ var _c;
69
+ var content = _b.content, gif = _b.gif, mentions = _b.mentions, metadata = _b.metadata, quotedMessageId = _b.quotedMessageId, parentMessageId = _b.parentMessageId, files = _b.files;
70
+ return __generator(this, function (_d) {
71
+ switch (_d.label) {
72
+ case 0:
73
+ if (!projectId)
74
+ throw new Error("No projectId available.");
75
+ if (!conversationId)
76
+ throw new Error("No conversationId provided.");
77
+ clientId = crypto.randomUUID();
78
+ now = new Date();
79
+ optimisticMsg = {
80
+ id: "temp-".concat(clientId),
81
+ clientId: clientId,
82
+ projectId: projectId,
83
+ conversationId: conversationId,
84
+ userId: (_c = currentUser === null || currentUser === void 0 ? void 0 : currentUser.id) !== null && _c !== void 0 ? _c : null,
85
+ content: content !== null && content !== void 0 ? content : null,
86
+ gif: gif !== null && gif !== void 0 ? gif : null,
87
+ mentions: mentions !== null && mentions !== void 0 ? mentions : [],
88
+ metadata: metadata !== null && metadata !== void 0 ? metadata : {},
89
+ parentMessageId: parentMessageId !== null && parentMessageId !== void 0 ? parentMessageId : null,
90
+ quotedMessageId: quotedMessageId !== null && quotedMessageId !== void 0 ? quotedMessageId : null,
91
+ threadReplyCount: 0,
92
+ reactionCounts: {},
93
+ userReactions: [],
94
+ editedAt: null,
95
+ userDeletedAt: null,
96
+ moderationStatus: null,
97
+ moderatedAt: null,
98
+ moderatedById: null,
99
+ moderatedByType: null,
100
+ moderationReason: null,
101
+ createdAt: now,
102
+ updatedAt: now,
103
+ user: currentUser !== null && currentUser !== void 0 ? currentUser : null,
104
+ };
105
+ dispatch(addOptimisticMessage(optimisticMsg));
106
+ _d.label = 1;
107
+ case 1:
108
+ _d.trys.push([1, 6, , 7]);
109
+ response = void 0;
110
+ if (!(files && files.length > 0)) return [3 /*break*/, 3];
111
+ formData_1 = new FormData();
112
+ formData_1.append("clientId", clientId);
113
+ if (content)
114
+ formData_1.append("content", content);
115
+ if (gif)
116
+ formData_1.append("gif", JSON.stringify(gif));
117
+ if (mentions && mentions.length > 0)
118
+ formData_1.append("mentions", JSON.stringify(mentions));
119
+ if (metadata && Object.keys(metadata).length > 0)
120
+ formData_1.append("metadata", JSON.stringify(metadata));
121
+ if (quotedMessageId)
122
+ formData_1.append("quotedMessageId", quotedMessageId);
123
+ if (parentMessageId)
124
+ formData_1.append("parentMessageId", parentMessageId);
125
+ files.forEach(function (file) { return formData_1.append("files", file); });
126
+ return [4 /*yield*/, axios.post("/".concat(projectId, "/v7/chat/conversations/").concat(conversationId, "/messages"), formData_1, { headers: { "Content-Type": "multipart/form-data" } })];
127
+ case 2:
128
+ response = _d.sent();
129
+ return [3 /*break*/, 5];
130
+ case 3: return [4 /*yield*/, axios.post("/".concat(projectId, "/v7/chat/conversations/").concat(conversationId, "/messages"), __assign(__assign(__assign(__assign(__assign(__assign({ clientId: clientId }, (content !== undefined && { content: content })), (gif !== undefined && { gif: gif })), (mentions !== undefined && { mentions: mentions })), (metadata !== undefined && { metadata: metadata })), (quotedMessageId !== undefined && { quotedMessageId: quotedMessageId })), (parentMessageId !== undefined && { parentMessageId: parentMessageId })))];
131
+ case 4:
132
+ // JSON body for text/gif-only messages
133
+ response = _d.sent();
134
+ _d.label = 5;
135
+ case 5:
136
+ confirmedMsg = response.data;
137
+ dispatch(upsertMessage(confirmedMsg));
138
+ return [2 /*return*/, confirmedMsg];
139
+ case 6:
140
+ err_1 = _d.sent();
141
+ dispatch(failOptimisticMessage({ conversationId: conversationId, clientId: clientId }));
142
+ handleError(err_1, "Failed to send message");
143
+ throw err_1;
144
+ case 7: return [2 /*return*/];
145
+ }
146
+ });
147
+ }); }, [projectId, conversationId, currentUser, axios, dispatch]);
148
+ return send;
149
+ }
150
+ export default useSendMessage;
151
+ //# sourceMappingURL=useSendMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSendMessage.js","sourceRoot":"","sources":["../../../../../src/hooks/chat/messages/useSendMessage.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface ToggleReactionParams {
2
+ conversationId: string;
3
+ messageId: string;
4
+ emoji: string;
5
+ }
6
+ export interface ToggleReactionResult {
7
+ reactionCounts: Record<string, number>;
8
+ userReactions: string[];
9
+ }
10
+ declare function useToggleReaction(): (params: ToggleReactionParams) => Promise<ToggleReactionResult>;
11
+ export default useToggleReaction;
@@ -0,0 +1,90 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { useCallback } from "react";
38
+ import { useReplykeDispatch, useReplykeSelector } from "../../../store/hooks";
39
+ import { updateReactions } from "../../../store/slices/chatSlice";
40
+ import { selectUser } from "../../../store/slices/userSlice";
41
+ import { selectUser as selectAuthUser } from "../../../store/slices/authSlice";
42
+ import useAxiosPrivate from "../../../config/useAxiosPrivate";
43
+ import useProject from "../../projects/useProject";
44
+ import { handleError } from "../../../utils/handleError";
45
+ function useToggleReaction() {
46
+ var _this = this;
47
+ var _a, _b;
48
+ var dispatch = useReplykeDispatch();
49
+ var projectId = useProject().projectId;
50
+ var axios = useAxiosPrivate();
51
+ var user = useReplykeSelector(selectUser);
52
+ var authUser = useReplykeSelector(selectAuthUser);
53
+ var currentUserId = (_b = (_a = (user || authUser)) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : "";
54
+ var toggle = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
55
+ var response, _c, reactionCounts, userReactions, delta, err_1;
56
+ var conversationId = _b.conversationId, messageId = _b.messageId, emoji = _b.emoji;
57
+ return __generator(this, function (_d) {
58
+ switch (_d.label) {
59
+ case 0:
60
+ if (!projectId)
61
+ throw new Error("No projectId available.");
62
+ _d.label = 1;
63
+ case 1:
64
+ _d.trys.push([1, 3, , 4]);
65
+ return [4 /*yield*/, axios.post("/".concat(projectId, "/v7/chat/conversations/").concat(conversationId, "/messages/").concat(messageId, "/reactions"), { emoji: emoji })];
66
+ case 2:
67
+ response = _d.sent();
68
+ _c = response.data, reactionCounts = _c.reactionCounts, userReactions = _c.userReactions, delta = _c.delta;
69
+ dispatch(updateReactions({
70
+ conversationId: conversationId,
71
+ messageId: messageId,
72
+ reactionCounts: reactionCounts,
73
+ userId: currentUserId,
74
+ emoji: emoji,
75
+ delta: delta,
76
+ currentUserId: currentUserId,
77
+ }));
78
+ return [2 /*return*/, { reactionCounts: reactionCounts, userReactions: userReactions }];
79
+ case 3:
80
+ err_1 = _d.sent();
81
+ handleError(err_1, "Failed to toggle reaction");
82
+ throw err_1;
83
+ case 4: return [2 /*return*/];
84
+ }
85
+ });
86
+ }); }, [projectId, currentUserId, axios, dispatch]);
87
+ return toggle;
88
+ }
89
+ export default useToggleReaction;
90
+ //# sourceMappingURL=useToggleReaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useToggleReaction.js","sourceRoot":"","sources":["../../../../../src/hooks/chat/messages/useToggleReaction.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,eAAe,MAAM,iCAAiC,CAAC;AAC9D,OAAO,UAAU,MAAM,2BAA2B,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAazD,SAAS,iBAAiB;IAA1B,iBAoDC;;IAjDC,IAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IAC9B,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IACnC,IAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAEhC,IAAM,IAAI,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC5C,IAAM,QAAQ,GAAG,kBAAkB,CAAC,cAAc,CAAC,CAAC;IACpD,IAAM,aAAa,GAAG,MAAA,MAAA,CAAC,IAAI,IAAI,QAAQ,CAAC,0CAAE,EAAE,mCAAI,EAAE,CAAC;IAEnD,IAAM,MAAM,GAAG,WAAW,CACxB,gEAAO,EAIgB;;YAHrB,cAAc,oBAAA,EACd,SAAS,eAAA,EACT,KAAK,WAAA;;;;oBAEL,IAAI,CAAC,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;;;;oBAGxC,qBAAM,KAAK,CAAC,IAAI,CAC/B,WAAI,SAAS,oCAA0B,cAAc,uBAAa,SAAS,eAAY,EACvF,EAAE,KAAK,OAAA,EAAE,CACV,EAAA;;oBAHK,QAAQ,GAAG,SAGhB;oBACK,KAA2C,QAAQ,CAAC,IAIzD,EAJO,cAAc,oBAAA,EAAE,aAAa,mBAAA,EAAE,KAAK,WAAA,CAI1C;oBAEF,QAAQ,CACN,eAAe,CAAC;wBACd,cAAc,gBAAA;wBACd,SAAS,WAAA;wBACT,cAAc,gBAAA;wBACd,MAAM,EAAE,aAAa;wBACrB,KAAK,OAAA;wBACL,KAAK,OAAA;wBACL,aAAa,eAAA;qBACd,CAAC,CACH,CAAC;oBAEF,sBAAO,EAAE,cAAc,gBAAA,EAAE,aAAa,eAAA,EAAE,EAAC;;;oBAEzC,WAAW,CAAC,KAAG,EAAE,2BAA2B,CAAC,CAAC;oBAC9C,MAAM,KAAG,CAAC;;;;SAEb,EACD,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAC5C,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { ChatContextValue } from "../../context/chat-context";
2
+ export interface UseChatSocketValues {
3
+ socket: ChatContextValue["socket"];
4
+ connected: boolean;
5
+ }
6
+ /**
7
+ * Access the shared Socket.io socket instance and its connection state.
8
+ * Must be used inside a ChatProvider.
9
+ */
10
+ declare function useChatSocket(): UseChatSocketValues;
11
+ export default useChatSocket;
@@ -0,0 +1,11 @@
1
+ import { useChatContext } from "../../context/chat-context";
2
+ /**
3
+ * Access the shared Socket.io socket instance and its connection state.
4
+ * Must be used inside a ChatProvider.
5
+ */
6
+ function useChatSocket() {
7
+ var _a = useChatContext(), socket = _a.socket, connected = _a.connected;
8
+ return { socket: socket, connected: connected };
9
+ }
10
+ export default useChatSocket;
11
+ //# sourceMappingURL=useChatSocket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useChatSocket.js","sourceRoot":"","sources":["../../../../src/hooks/chat/useChatSocket.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAQ5D;;;GAGG;AACH,SAAS,aAAa;IACd,IAAA,KAAwB,cAAc,EAAE,EAAtC,MAAM,YAAA,EAAE,SAAS,eAAqB,CAAC;IAC/C,OAAO,EAAE,MAAM,QAAA,EAAE,SAAS,WAAA,EAAE,CAAC;AAC/B,CAAC;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { SendMessageParams } from "./messages/useSendMessage";
2
+ import { UseConversationMembersValues } from "./conversations/useConversationMembers";
3
+ import { IChatMessage } from "../../interfaces/models/IChatMessage";
4
+ export interface UseConversationDataProps {
5
+ conversationId: string;
6
+ }
7
+ export interface UseConversationDataValues {
8
+ messages: IChatMessage[];
9
+ messagesLoading: boolean;
10
+ hasMore: boolean;
11
+ loadOlder: () => Promise<void>;
12
+ send: (params: SendMessageParams) => Promise<IChatMessage>;
13
+ members: UseConversationMembersValues["members"];
14
+ membersLoading: UseConversationMembersValues["loading"];
15
+ addMember: UseConversationMembersValues["addMember"];
16
+ removeMember: UseConversationMembersValues["removeMember"];
17
+ leave: UseConversationMembersValues["leave"];
18
+ changeRole: UseConversationMembersValues["changeRole"];
19
+ upsertMember: UseConversationMembersValues["upsertMember"];
20
+ removeMemberLocally: UseConversationMembersValues["removeMemberLocally"];
21
+ mark: (messageId: string) => Promise<void>;
22
+ typingUsers: string[];
23
+ startTyping: () => void;
24
+ stopTyping: () => void;
25
+ }
26
+ /**
27
+ * High-level composition hook that powers ConversationProvider.
28
+ * Combines messages, send, members, read-state, and typing indicators into one object.
29
+ */
30
+ declare function useConversationData({ conversationId, }: UseConversationDataProps): UseConversationDataValues;
31
+ export default useConversationData;
@@ -0,0 +1,42 @@
1
+ import useChatMessages from "./messages/useChatMessages";
2
+ import useSendMessage from "./messages/useSendMessage";
3
+ import useConversationMembers from "./conversations/useConversationMembers";
4
+ import useMarkConversationAsRead from "./useMarkConversationAsRead";
5
+ import useTypingIndicator from "./useTypingIndicator";
6
+ /**
7
+ * High-level composition hook that powers ConversationProvider.
8
+ * Combines messages, send, members, read-state, and typing indicators into one object.
9
+ */
10
+ function useConversationData(_a) {
11
+ var conversationId = _a.conversationId;
12
+ var _b = useChatMessages({
13
+ conversationId: conversationId,
14
+ }), messages = _b.messages, messagesLoading = _b.loading, hasMore = _b.hasMore, loadOlder = _b.loadOlder;
15
+ var send = useSendMessage({ conversationId: conversationId });
16
+ var _c = useConversationMembers({ conversationId: conversationId }), members = _c.members, membersLoading = _c.loading, addMember = _c.addMember, removeMember = _c.removeMember, leave = _c.leave, changeRole = _c.changeRole, upsertMember = _c.upsertMember, removeMemberLocally = _c.removeMemberLocally;
17
+ var mark = useMarkConversationAsRead({ conversationId: conversationId });
18
+ var _d = useTypingIndicator({
19
+ conversationId: conversationId,
20
+ }), typingUsers = _d.typingUsers, startTyping = _d.startTyping, stopTyping = _d.stopTyping;
21
+ return {
22
+ messages: messages,
23
+ messagesLoading: messagesLoading,
24
+ hasMore: hasMore,
25
+ loadOlder: loadOlder,
26
+ send: send,
27
+ members: members,
28
+ membersLoading: membersLoading,
29
+ addMember: addMember,
30
+ removeMember: removeMember,
31
+ leave: leave,
32
+ changeRole: changeRole,
33
+ upsertMember: upsertMember,
34
+ removeMemberLocally: removeMemberLocally,
35
+ mark: mark,
36
+ typingUsers: typingUsers,
37
+ startTyping: startTyping,
38
+ stopTyping: stopTyping,
39
+ };
40
+ }
41
+ export default useConversationData;
42
+ //# sourceMappingURL=useConversationData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConversationData.js","sourceRoot":"","sources":["../../../../src/hooks/chat/useConversationData.tsx"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,4BAA4B,CAAC;AACzD,OAAO,cAAc,MAAM,2BAA2B,CAAC;AAEvD,OAAO,sBAEN,MAAM,wCAAwC,CAAC;AAChD,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AACpE,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAoCtD;;;GAGG;AACH,SAAS,mBAAmB,CAAC,EAEF;QADzB,cAAc,oBAAA;IAER,IAAA,KAA6D,eAAe,CAAC;QACjF,cAAc,gBAAA;KACf,CAAC,EAFM,QAAQ,cAAA,EAAW,eAAe,aAAA,EAAE,OAAO,aAAA,EAAE,SAAS,eAE5D,CAAC;IAEH,IAAM,IAAI,GAAG,cAAc,CAAC,EAAE,cAAc,gBAAA,EAAE,CAAC,CAAC;IAE1C,IAAA,KASF,sBAAsB,CAAC,EAAE,cAAc,gBAAA,EAAE,CAAC,EAR5C,OAAO,aAAA,EACE,cAAc,aAAA,EACvB,SAAS,eAAA,EACT,YAAY,kBAAA,EACZ,KAAK,WAAA,EACL,UAAU,gBAAA,EACV,YAAY,kBAAA,EACZ,mBAAmB,yBACyB,CAAC;IAE/C,IAAM,IAAI,GAAG,yBAAyB,CAAC,EAAE,cAAc,gBAAA,EAAE,CAAC,CAAC;IAErD,IAAA,KAA2C,kBAAkB,CAAC;QAClE,cAAc,gBAAA;KACf,CAAC,EAFM,WAAW,iBAAA,EAAE,WAAW,iBAAA,EAAE,UAAU,gBAE1C,CAAC;IAEH,OAAO;QACL,QAAQ,UAAA;QACR,eAAe,iBAAA;QACf,OAAO,SAAA;QACP,SAAS,WAAA;QACT,IAAI,MAAA;QACJ,OAAO,SAAA;QACP,cAAc,gBAAA;QACd,SAAS,WAAA;QACT,YAAY,cAAA;QACZ,KAAK,OAAA;QACL,UAAU,YAAA;QACV,YAAY,cAAA;QACZ,mBAAmB,qBAAA;QACnB,IAAI,MAAA;QACJ,WAAW,aAAA;QACX,WAAW,aAAA;QACX,UAAU,YAAA;KACX,CAAC;AACJ,CAAC;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,10 @@
1
+ export interface UseMarkConversationAsReadProps {
2
+ conversationId: string;
3
+ }
4
+ /**
5
+ * Internal hook — called by ConversationProvider, not intended for direct use.
6
+ * Advances the server-side lastReadAt to the given message's createdAt and
7
+ * resets the local unread count to 0 immediately (optimistic clear).
8
+ */
9
+ declare function useMarkConversationAsRead({ conversationId, }: UseMarkConversationAsReadProps): (messageId: string) => Promise<void>;
10
+ export default useMarkConversationAsRead;
@@ -0,0 +1,82 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ var __generator = (this && this.__generator) || function (thisArg, body) {
11
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
+ function verb(n) { return function (v) { return step([n, v]); }; }
14
+ function step(op) {
15
+ if (f) throw new TypeError("Generator is already executing.");
16
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
+ if (y = 0, t) op = [op[0] & 2, t.value];
19
+ switch (op[0]) {
20
+ case 0: case 1: t = op; break;
21
+ case 4: _.label++; return { value: op[1], done: false };
22
+ case 5: _.label++; y = op[1]; op = [0]; continue;
23
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
+ default:
25
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
+ if (t[2]) _.ops.pop();
30
+ _.trys.pop(); continue;
31
+ }
32
+ op = body.call(thisArg, _);
33
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
+ }
36
+ };
37
+ import { useCallback } from "react";
38
+ import { useReplykeDispatch } from "../../store/hooks";
39
+ import { clearUnread } from "../../store/slices/chatSlice";
40
+ import useAxiosPrivate from "../../config/useAxiosPrivate";
41
+ import useProject from "../projects/useProject";
42
+ import { handleError } from "../../utils/handleError";
43
+ /**
44
+ * Internal hook — called by ConversationProvider, not intended for direct use.
45
+ * Advances the server-side lastReadAt to the given message's createdAt and
46
+ * resets the local unread count to 0 immediately (optimistic clear).
47
+ */
48
+ function useMarkConversationAsRead(_a) {
49
+ var _this = this;
50
+ var conversationId = _a.conversationId;
51
+ var dispatch = useReplykeDispatch();
52
+ var projectId = useProject().projectId;
53
+ var axios = useAxiosPrivate();
54
+ var mark = useCallback(function (messageId) { return __awaiter(_this, void 0, void 0, function () {
55
+ var err_1;
56
+ return __generator(this, function (_a) {
57
+ switch (_a.label) {
58
+ case 0:
59
+ if (!projectId || !conversationId || !messageId)
60
+ return [2 /*return*/];
61
+ // Clear unread count locally for immediate UI update
62
+ dispatch(clearUnread(conversationId));
63
+ _a.label = 1;
64
+ case 1:
65
+ _a.trys.push([1, 3, , 4]);
66
+ return [4 /*yield*/, axios.post("/".concat(projectId, "/v7/chat/conversations/").concat(conversationId, "/read"), { messageId: messageId })];
67
+ case 2:
68
+ _a.sent();
69
+ return [3 /*break*/, 4];
70
+ case 3:
71
+ err_1 = _a.sent();
72
+ // Non-critical — don't re-throw; the local clear still stands
73
+ handleError(err_1, "Failed to mark conversation as read");
74
+ return [3 /*break*/, 4];
75
+ case 4: return [2 /*return*/];
76
+ }
77
+ });
78
+ }); }, [projectId, conversationId, axios, dispatch]);
79
+ return mark;
80
+ }
81
+ export default useMarkConversationAsRead;
82
+ //# sourceMappingURL=useMarkConversationAsRead.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMarkConversationAsRead.js","sourceRoot":"","sources":["../../../../src/hooks/chat/useMarkConversationAsRead.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,UAAU,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAMtD;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,EAEF;IAFjC,iBA4BC;QA3BC,cAAc,oBAAA;IAEd,IAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IAC9B,IAAA,SAAS,GAAK,UAAU,EAAE,UAAjB,CAAkB;IACnC,IAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAEhC,IAAM,IAAI,GAAG,WAAW,CACtB,UAAO,SAAiB;;;;;oBACtB,IAAI,CAAC,SAAS,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS;wBAAE,sBAAO;oBAExD,qDAAqD;oBACrD,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;;;;oBAGpC,qBAAM,KAAK,CAAC,IAAI,CACd,WAAI,SAAS,oCAA0B,cAAc,UAAO,EAC5D,EAAE,SAAS,WAAA,EAAE,CACd,EAAA;;oBAHD,SAGC,CAAC;;;;oBAEF,8DAA8D;oBAC9D,WAAW,CAAC,KAAG,EAAE,qCAAqC,CAAC,CAAC;;;;;SAE3D,EACD,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,CAAC,CAC7C,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,yBAAyB,CAAC"}