chat 1.0.8 → 4.0.0

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 (327) hide show
  1. package/dist/chunk-ACQNDPTB.js +356 -0
  2. package/dist/chunk-ACQNDPTB.js.map +1 -0
  3. package/dist/index.d.ts +1312 -0
  4. package/dist/index.js +1433 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/jsx-runtime-D7zHSnXe.d.ts +349 -0
  7. package/dist/jsx-runtime.d.ts +1 -0
  8. package/dist/jsx-runtime.js +17 -0
  9. package/dist/jsx-runtime.js.map +1 -0
  10. package/package.json +61 -97
  11. package/lib/module/ChatContext/index.js +0 -2
  12. package/lib/module/ChatContext/index.js.map +0 -1
  13. package/lib/module/ChatContext/types.js +0 -2
  14. package/lib/module/ChatContext/types.js.map +0 -1
  15. package/lib/module/classes/Chat/index.js +0 -2
  16. package/lib/module/classes/Chat/index.js.map +0 -1
  17. package/lib/module/classes/Chat/types.js +0 -2
  18. package/lib/module/classes/Chat/types.js.map +0 -1
  19. package/lib/module/classes/Inbox/index.js +0 -2
  20. package/lib/module/classes/Inbox/index.js.map +0 -1
  21. package/lib/module/classes/Inbox/types.js +0 -2
  22. package/lib/module/classes/Inbox/types.js.map +0 -1
  23. package/lib/module/classes/Message/index.js +0 -2
  24. package/lib/module/classes/Message/index.js.map +0 -1
  25. package/lib/module/classes/Message/types.js +0 -2
  26. package/lib/module/classes/Message/types.js.map +0 -1
  27. package/lib/module/classes/Reaction/index.js +0 -2
  28. package/lib/module/classes/Reaction/index.js.map +0 -1
  29. package/lib/module/classes/Reaction/types.js +0 -2
  30. package/lib/module/classes/Reaction/types.js.map +0 -1
  31. package/lib/module/classes/Room/index.js +0 -2
  32. package/lib/module/classes/Room/index.js.map +0 -1
  33. package/lib/module/classes/Room/types.js +0 -2
  34. package/lib/module/classes/Room/types.js.map +0 -1
  35. package/lib/module/classes/index.js +0 -2
  36. package/lib/module/classes/index.js.map +0 -1
  37. package/lib/module/components/Avatar/index.js +0 -2
  38. package/lib/module/components/Avatar/index.js.map +0 -1
  39. package/lib/module/components/Chat/Bubble/index.js +0 -2
  40. package/lib/module/components/Chat/Bubble/index.js.map +0 -1
  41. package/lib/module/components/Chat/Composer/Input/index.js +0 -2
  42. package/lib/module/components/Chat/Composer/Input/index.js.map +0 -1
  43. package/lib/module/components/Chat/Composer/Send/index.js +0 -2
  44. package/lib/module/components/Chat/Composer/Send/index.js.map +0 -1
  45. package/lib/module/components/Chat/Composer/index.js +0 -2
  46. package/lib/module/components/Chat/Composer/index.js.map +0 -1
  47. package/lib/module/components/Chat/Media/Image/index.js +0 -2
  48. package/lib/module/components/Chat/Media/Image/index.js.map +0 -1
  49. package/lib/module/components/Chat/Media/index.js +0 -2
  50. package/lib/module/components/Chat/Media/index.js.map +0 -1
  51. package/lib/module/components/Chat/Message/Swiper/Action/index.js +0 -2
  52. package/lib/module/components/Chat/Message/Swiper/Action/index.js.map +0 -1
  53. package/lib/module/components/Chat/Message/Swiper/index.js +0 -2
  54. package/lib/module/components/Chat/Message/Swiper/index.js.map +0 -1
  55. package/lib/module/components/Chat/Message/Touchable/index.js +0 -2
  56. package/lib/module/components/Chat/Message/Touchable/index.js.map +0 -1
  57. package/lib/module/components/Chat/Message/index.js +0 -2
  58. package/lib/module/components/Chat/Message/index.js.map +0 -1
  59. package/lib/module/components/Chat/SystemMessage/index.js +0 -2
  60. package/lib/module/components/Chat/SystemMessage/index.js.map +0 -1
  61. package/lib/module/components/Chat/TypingFooter/index.js +0 -2
  62. package/lib/module/components/Chat/TypingFooter/index.js.map +0 -1
  63. package/lib/module/components/Chat/index.js +0 -2
  64. package/lib/module/components/Chat/index.js.map +0 -1
  65. package/lib/module/components/Chat/types.js +0 -2
  66. package/lib/module/components/Chat/types.js.map +0 -1
  67. package/lib/module/components/Chat-Old/Bubble/index.js +0 -2
  68. package/lib/module/components/Chat-Old/Bubble/index.js.map +0 -1
  69. package/lib/module/components/Chat-Old/Composer/Input/index.js +0 -2
  70. package/lib/module/components/Chat-Old/Composer/Input/index.js.map +0 -1
  71. package/lib/module/components/Chat-Old/Composer/Send/index.js +0 -2
  72. package/lib/module/components/Chat-Old/Composer/Send/index.js.map +0 -1
  73. package/lib/module/components/Chat-Old/Composer/index.js +0 -2
  74. package/lib/module/components/Chat-Old/Composer/index.js.map +0 -1
  75. package/lib/module/components/Chat-Old/Message/index.js +0 -2
  76. package/lib/module/components/Chat-Old/Message/index.js.map +0 -1
  77. package/lib/module/components/Chat-Old/Swiper/Action/index.js +0 -2
  78. package/lib/module/components/Chat-Old/Swiper/Action/index.js.map +0 -1
  79. package/lib/module/components/Chat-Old/Swiper/index.js +0 -2
  80. package/lib/module/components/Chat-Old/Swiper/index.js.map +0 -1
  81. package/lib/module/components/Chat-Old/SystemMessage/index.js +0 -2
  82. package/lib/module/components/Chat-Old/SystemMessage/index.js.map +0 -1
  83. package/lib/module/components/Chat-Old/index.js +0 -2
  84. package/lib/module/components/Chat-Old/index.js.map +0 -1
  85. package/lib/module/components/Chat-Old/types.js +0 -2
  86. package/lib/module/components/Chat-Old/types.js.map +0 -1
  87. package/lib/module/components/ChatProvider/index.js +0 -2
  88. package/lib/module/components/ChatProvider/index.js.map +0 -1
  89. package/lib/module/components/ChatProvider/types.js +0 -2
  90. package/lib/module/components/ChatProvider/types.js.map +0 -1
  91. package/lib/module/components/Inbox/Item/Circle/index.js +0 -2
  92. package/lib/module/components/Inbox/Item/Circle/index.js.map +0 -1
  93. package/lib/module/components/Inbox/Item/Circle/types.js +0 -2
  94. package/lib/module/components/Inbox/Item/Circle/types.js.map +0 -1
  95. package/lib/module/components/Inbox/Item/Initials/index.js +0 -2
  96. package/lib/module/components/Inbox/Item/Initials/index.js.map +0 -1
  97. package/lib/module/components/Inbox/Item/ItemDate/index.js +0 -2
  98. package/lib/module/components/Inbox/Item/ItemDate/index.js.map +0 -1
  99. package/lib/module/components/Inbox/Item/Separator/index.js +0 -2
  100. package/lib/module/components/Inbox/Item/Separator/index.js.map +0 -1
  101. package/lib/module/components/Inbox/Item/Subtitle/index.js +0 -2
  102. package/lib/module/components/Inbox/Item/Subtitle/index.js.map +0 -1
  103. package/lib/module/components/Inbox/Item/Swipeable/index.js +0 -2
  104. package/lib/module/components/Inbox/Item/Swipeable/index.js.map +0 -1
  105. package/lib/module/components/Inbox/Item/Title/index.js +0 -2
  106. package/lib/module/components/Inbox/Item/Title/index.js.map +0 -1
  107. package/lib/module/components/Inbox/Item/UnreadIndicator/index.js +0 -2
  108. package/lib/module/components/Inbox/Item/UnreadIndicator/index.js.map +0 -1
  109. package/lib/module/components/Inbox/Item/index.js +0 -2
  110. package/lib/module/components/Inbox/Item/index.js.map +0 -1
  111. package/lib/module/components/Inbox/index.js +0 -2
  112. package/lib/module/components/Inbox/index.js.map +0 -1
  113. package/lib/module/components/Inbox/question.md +0 -21
  114. package/lib/module/components/Inbox/readme.md +0 -21
  115. package/lib/module/components/Inbox/types.js +0 -2
  116. package/lib/module/components/Inbox/types.js.map +0 -1
  117. package/lib/module/components/RoomCreator/Content/Footer/Button/index.js +0 -2
  118. package/lib/module/components/RoomCreator/Content/Footer/Button/index.js.map +0 -1
  119. package/lib/module/components/RoomCreator/Content/Footer/Input/index.js +0 -2
  120. package/lib/module/components/RoomCreator/Content/Footer/Input/index.js.map +0 -1
  121. package/lib/module/components/RoomCreator/Content/Footer/index.js +0 -2
  122. package/lib/module/components/RoomCreator/Content/Footer/index.js.map +0 -1
  123. package/lib/module/components/RoomCreator/Content/Item/Icon/index.js +0 -2
  124. package/lib/module/components/RoomCreator/Content/Item/Icon/index.js.map +0 -1
  125. package/lib/module/components/RoomCreator/Content/Item/index.js +0 -2
  126. package/lib/module/components/RoomCreator/Content/Item/index.js.map +0 -1
  127. package/lib/module/components/RoomCreator/Content/index.js +0 -2
  128. package/lib/module/components/RoomCreator/Content/index.js.map +0 -1
  129. package/lib/module/components/RoomCreator/Header/index.js +0 -2
  130. package/lib/module/components/RoomCreator/Header/index.js.map +0 -1
  131. package/lib/module/components/RoomCreator/index.js +0 -2
  132. package/lib/module/components/RoomCreator/index.js.map +0 -1
  133. package/lib/module/components/RoomCreator/types.js +0 -2
  134. package/lib/module/components/RoomCreator/types.js.map +0 -1
  135. package/lib/module/components/TypingIndicator/index.js +0 -2
  136. package/lib/module/components/TypingIndicator/index.js.map +0 -1
  137. package/lib/module/components/index.js +0 -2
  138. package/lib/module/components/index.js.map +0 -1
  139. package/lib/module/helpers/getInitials.js +0 -2
  140. package/lib/module/helpers/getInitials.js.map +0 -1
  141. package/lib/module/helpers/sortByAvatar.js +0 -2
  142. package/lib/module/helpers/sortByAvatar.js.map +0 -1
  143. package/lib/module/hooks/index.js +0 -2
  144. package/lib/module/hooks/index.js.map +0 -1
  145. package/lib/module/hooks/useCreateRoom/index.js +0 -2
  146. package/lib/module/hooks/useCreateRoom/index.js.map +0 -1
  147. package/lib/module/hooks/useCreator/index.js +0 -2
  148. package/lib/module/hooks/useCreator/index.js.map +0 -1
  149. package/lib/module/hooks/useInbox/index.js +0 -2
  150. package/lib/module/hooks/useInbox/index.js.map +0 -1
  151. package/lib/module/hooks/useInbox/types.js +0 -2
  152. package/lib/module/hooks/useInbox/types.js.map +0 -1
  153. package/lib/module/hooks/useMessages/index.js +0 -2
  154. package/lib/module/hooks/useMessages/index.js.map +0 -1
  155. package/lib/module/hooks/useMessages/types.js +0 -2
  156. package/lib/module/hooks/useMessages/types.js.map +0 -1
  157. package/lib/module/hooks/useRoom/index.js +0 -2
  158. package/lib/module/hooks/useRoom/index.js.map +0 -1
  159. package/lib/module/hooks/useRoom/types.js +0 -2
  160. package/lib/module/hooks/useRoom/types.js.map +0 -1
  161. package/lib/module/hooks/useSend/useSendToGroup/index.js +0 -2
  162. package/lib/module/hooks/useSend/useSendToGroup/index.js.map +0 -1
  163. package/lib/module/hooks/useSend/useSendToPeople/index.js +0 -2
  164. package/lib/module/hooks/useSend/useSendToPeople/index.js.map +0 -1
  165. package/lib/module/hooks/useTyping/index.js +0 -2
  166. package/lib/module/hooks/useTyping/index.js.map +0 -1
  167. package/lib/module/hooks/useTypingOLD/index.js +0 -2
  168. package/lib/module/hooks/useTypingOLD/index.js.map +0 -1
  169. package/lib/module/hooks/useTypingOLD/types.js +0 -2
  170. package/lib/module/hooks/useTypingOLD/types.js.map +0 -1
  171. package/lib/module/hooks/useViewMessages/index.js +0 -2
  172. package/lib/module/hooks/useViewMessages/index.js.map +0 -1
  173. package/lib/module/hooks/useViewMessages/types.js +0 -2
  174. package/lib/module/hooks/useViewMessages/types.js.map +0 -1
  175. package/lib/module/hooks/useViewMessagesOld/index.js +0 -2
  176. package/lib/module/hooks/useViewMessagesOld/index.js.map +0 -1
  177. package/lib/module/index.js +0 -2
  178. package/lib/module/index.js.map +0 -1
  179. package/lib/typescript/ChatContext/index.d.ts +0 -2
  180. package/lib/typescript/ChatContext/types.d.ts +0 -4
  181. package/lib/typescript/classes/Chat/index.d.ts +0 -14
  182. package/lib/typescript/classes/Chat/types.d.ts +0 -21
  183. package/lib/typescript/classes/Inbox/types.d.ts +0 -2
  184. package/lib/typescript/classes/Message/index.d.ts +0 -47
  185. package/lib/typescript/classes/Message/types.d.ts +0 -66
  186. package/lib/typescript/classes/Reaction/index.d.ts +0 -17
  187. package/lib/typescript/classes/Reaction/types.d.ts +0 -33
  188. package/lib/typescript/classes/Room/index.d.ts +0 -42
  189. package/lib/typescript/classes/Room/types.d.ts +0 -112
  190. package/lib/typescript/classes/index.d.ts +0 -4
  191. package/lib/typescript/components/Avatar/index.d.ts +0 -4
  192. package/lib/typescript/components/Chat/Bubble/index.d.ts +0 -4
  193. package/lib/typescript/components/Chat/Composer/Input/index.d.ts +0 -7
  194. package/lib/typescript/components/Chat/Composer/Send/index.d.ts +0 -4
  195. package/lib/typescript/components/Chat/Composer/index.d.ts +0 -8
  196. package/lib/typescript/components/Chat/Media/Image/index.d.ts +0 -7
  197. package/lib/typescript/components/Chat/Media/index.d.ts +0 -4
  198. package/lib/typescript/components/Chat/Message/Touchable/index.d.ts +0 -4
  199. package/lib/typescript/components/Chat/Message/index.d.ts +0 -8
  200. package/lib/typescript/components/Chat/SystemMessage/index.d.ts +0 -4
  201. package/lib/typescript/components/Chat/TypingFooter/index.d.ts +0 -4
  202. package/lib/typescript/components/Chat/index.d.ts +0 -8
  203. package/lib/typescript/components/Chat/types.d.ts +0 -843
  204. package/lib/typescript/components/ChatProvider/index.d.ts +0 -10
  205. package/lib/typescript/components/ChatProvider/types.d.ts +0 -7
  206. package/lib/typescript/components/Inbox/Item/Initials/index.d.ts +0 -4
  207. package/lib/typescript/components/Inbox/Item/ItemDate/index.d.ts +0 -4
  208. package/lib/typescript/components/Inbox/Item/Separator/index.d.ts +0 -6
  209. package/lib/typescript/components/Inbox/Item/Subtitle/index.d.ts +0 -3
  210. package/lib/typescript/components/Inbox/Item/Swipeable/index.d.ts +0 -4
  211. package/lib/typescript/components/Inbox/Item/Title/index.d.ts +0 -3
  212. package/lib/typescript/components/Inbox/Item/UnreadIndicator/index.d.ts +0 -4
  213. package/lib/typescript/components/Inbox/Item/index.d.ts +0 -6
  214. package/lib/typescript/components/Inbox/index.d.ts +0 -4
  215. package/lib/typescript/components/Inbox/types.d.ts +0 -304
  216. package/lib/typescript/components/RoomCreator/Content/Footer/Button/index.d.ts +0 -4
  217. package/lib/typescript/components/RoomCreator/Content/Footer/Input/index.d.ts +0 -4
  218. package/lib/typescript/components/RoomCreator/Content/Footer/index.d.ts +0 -3
  219. package/lib/typescript/components/RoomCreator/Content/Item/Icon/index.d.ts +0 -4
  220. package/lib/typescript/components/RoomCreator/Content/Item/index.d.ts +0 -4
  221. package/lib/typescript/components/RoomCreator/Content/index.d.ts +0 -4
  222. package/lib/typescript/components/RoomCreator/Header/index.d.ts +0 -4
  223. package/lib/typescript/components/RoomCreator/index.d.ts +0 -4
  224. package/lib/typescript/components/RoomCreator/types.d.ts +0 -208
  225. package/lib/typescript/components/TypingIndicator/index.d.ts +0 -9
  226. package/lib/typescript/components/index.d.ts +0 -12
  227. package/lib/typescript/helpers/getInitials.d.ts +0 -1
  228. package/lib/typescript/hooks/index.d.ts +0 -8
  229. package/lib/typescript/hooks/useCreator/index.d.ts +0 -27
  230. package/lib/typescript/hooks/useInbox/index.d.ts +0 -29
  231. package/lib/typescript/hooks/useInbox/types.d.ts +0 -5
  232. package/lib/typescript/hooks/useMessages/index.d.ts +0 -24
  233. package/lib/typescript/hooks/useMessages/types.d.ts +0 -5
  234. package/lib/typescript/hooks/useRoom/index.d.ts +0 -26
  235. package/lib/typescript/hooks/useRoom/types.d.ts +0 -5
  236. package/lib/typescript/hooks/useSend/useSendToGroup/index.d.ts +0 -6
  237. package/lib/typescript/hooks/useSend/useSendToPeople/index.d.ts +0 -6
  238. package/lib/typescript/hooks/useTyping/index.d.ts +0 -36
  239. package/lib/typescript/hooks/useViewMessages/index.d.ts +0 -18
  240. package/lib/typescript/hooks/useViewMessages/types.d.ts +0 -20
  241. package/lib/typescript/index.d.ts +0 -11
  242. package/readme.md +0 -201
  243. package/src/ChatContext/index.tsx +0 -9
  244. package/src/ChatContext/types.ts +0 -4
  245. package/src/classes/Chat/index.ts +0 -46
  246. package/src/classes/Chat/types.ts +0 -23
  247. package/src/classes/Inbox/index.ts +0 -12
  248. package/src/classes/Inbox/types.ts +0 -3
  249. package/src/classes/Message/index.ts +0 -310
  250. package/src/classes/Message/types.ts +0 -118
  251. package/src/classes/Reaction/index.ts +0 -108
  252. package/src/classes/Reaction/types.ts +0 -37
  253. package/src/classes/Room/index.ts +0 -323
  254. package/src/classes/Room/types.ts +0 -161
  255. package/src/classes/index.ts +0 -4
  256. package/src/components/Avatar/index.tsx +0 -25
  257. package/src/components/Chat/Bubble/index.tsx +0 -139
  258. package/src/components/Chat/Composer/Input/index.tsx +0 -45
  259. package/src/components/Chat/Composer/Send/index.tsx +0 -51
  260. package/src/components/Chat/Composer/index.tsx +0 -187
  261. package/src/components/Chat/Media/Image/index.tsx +0 -26
  262. package/src/components/Chat/Media/index.tsx +0 -11
  263. package/src/components/Chat/Message/Swiper/Action/index.tsx +0 -7
  264. package/src/components/Chat/Message/Swiper/index.tsx +0 -32
  265. package/src/components/Chat/Message/Touchable/index.tsx +0 -60
  266. package/src/components/Chat/Message/index.tsx +0 -328
  267. package/src/components/Chat/SystemMessage/index.tsx +0 -44
  268. package/src/components/Chat/TypingFooter/index.tsx +0 -48
  269. package/src/components/Chat/index.tsx +0 -596
  270. package/src/components/Chat/types.ts +0 -913
  271. package/src/components/Chat-Old/Bubble/index.tsx +0 -58
  272. package/src/components/Chat-Old/Composer/Input/index.tsx +0 -34
  273. package/src/components/Chat-Old/Composer/Send/index.tsx +0 -37
  274. package/src/components/Chat-Old/Composer/index.tsx +0 -131
  275. package/src/components/Chat-Old/Message/index.tsx +0 -160
  276. package/src/components/Chat-Old/Swiper/Action/index.tsx +0 -7
  277. package/src/components/Chat-Old/Swiper/index.tsx +0 -30
  278. package/src/components/Chat-Old/SystemMessage/index.tsx +0 -44
  279. package/src/components/Chat-Old/index.tsx +0 -356
  280. package/src/components/Chat-Old/types.ts +0 -752
  281. package/src/components/ChatProvider/index.tsx +0 -31
  282. package/src/components/ChatProvider/types.ts +0 -8
  283. package/src/components/Inbox/Item/Circle/index.tsx +0 -47
  284. package/src/components/Inbox/Item/Circle/types.ts +0 -8
  285. package/src/components/Inbox/Item/Initials/index.tsx +0 -41
  286. package/src/components/Inbox/Item/ItemDate/index.tsx +0 -26
  287. package/src/components/Inbox/Item/Separator/index.tsx +0 -13
  288. package/src/components/Inbox/Item/Subtitle/index.tsx +0 -23
  289. package/src/components/Inbox/Item/Swipeable/index.tsx +0 -143
  290. package/src/components/Inbox/Item/Title/index.tsx +0 -23
  291. package/src/components/Inbox/Item/UnreadIndicator/index.tsx +0 -84
  292. package/src/components/Inbox/Item/index.tsx +0 -307
  293. package/src/components/Inbox/index.tsx +0 -315
  294. package/src/components/Inbox/question.md +0 -21
  295. package/src/components/Inbox/readme.md +0 -21
  296. package/src/components/Inbox/types.ts +0 -371
  297. package/src/components/RoomCreator/Content/Footer/Button/index.tsx +0 -55
  298. package/src/components/RoomCreator/Content/Footer/Input/index.tsx +0 -27
  299. package/src/components/RoomCreator/Content/Footer/index.tsx +0 -72
  300. package/src/components/RoomCreator/Content/Item/Icon/index.tsx +0 -16
  301. package/src/components/RoomCreator/Content/Item/index.tsx +0 -87
  302. package/src/components/RoomCreator/Content/index.tsx +0 -75
  303. package/src/components/RoomCreator/Header/index.tsx +0 -74
  304. package/src/components/RoomCreator/index.tsx +0 -177
  305. package/src/components/RoomCreator/types.ts +0 -233
  306. package/src/components/TypingIndicator/index.tsx +0 -169
  307. package/src/components/index.ts +0 -18
  308. package/src/helpers/getInitials.ts +0 -11
  309. package/src/helpers/sortByAvatar.ts +0 -1
  310. package/src/hooks/index.ts +0 -8
  311. package/src/hooks/useCreateRoom/index.ts +0 -34
  312. package/src/hooks/useCreator/index.ts +0 -33
  313. package/src/hooks/useInbox/index.ts +0 -76
  314. package/src/hooks/useInbox/types.ts +0 -6
  315. package/src/hooks/useMessages/index.ts +0 -109
  316. package/src/hooks/useMessages/types.ts +0 -6
  317. package/src/hooks/useRoom/index.ts +0 -82
  318. package/src/hooks/useRoom/types.ts +0 -6
  319. package/src/hooks/useSend/useSendToGroup/index.ts +0 -38
  320. package/src/hooks/useSend/useSendToPeople/index.ts +0 -38
  321. package/src/hooks/useTyping/index.ts +0 -154
  322. package/src/hooks/useTypingOLD/index.ts +0 -67
  323. package/src/hooks/useTypingOLD/types.ts +0 -7
  324. package/src/hooks/useViewMessages/index.ts +0 -61
  325. package/src/hooks/useViewMessages/types.ts +0 -22
  326. package/src/hooks/useViewMessagesOld/index.ts +0 -39
  327. package/src/index.ts +0 -13
@@ -1 +0,0 @@
1
- {"version":3,"sources":["index.ts"],"names":["useFuego","Room","useMemo","id","config","options","path","data","loading","error","ref","create","room","createViaCallable","edit","members","usersAreTyping","getUsersTyping","length","namesOfUsersTyping","map","user","name","isDocument","r","model","lastMessage","createdAt","toDate"],"mappings":"o7BAAA,OAASA,QAAT,KAAyB,kBAAzB,CACA,MAAOC,CAAAA,IAAP,KAAiB,oBAAjB,CAUA,OAASC,OAAT,KAAwB,OAAxB,CAeA,eAAe,cAGV,IAFFC,CAAAA,EAEE,MAFFA,EAEE,CAFKC,MAEL,0CADJC,CAAAA,OACI,2DAD8C,EAC9C,WACa,GAAIJ,CAAAA,IAAJ,CAAS,CAAEE,EAAE,CAAFA,EAAF,CAAT,CADb,CACIG,IADJ,OACIA,IADJ,eAEkCN,QAAQ,kBAEzCI,MAFyC,EAG5CE,IAAI,CAAJA,IAH4C,GAK7CD,OAL6C,CAF1C,CAEIE,IAFJ,WAEIA,IAFJ,CAEUC,OAFV,WAEUA,OAFV,CAEmBC,KAFnB,WAEmBA,KAFnB,CAE0BC,GAF1B,WAE0BA,GAF1B,CASJ,GAAMC,CAAAA,MAAM,CAAG,QAATA,CAAAA,MAAS,CAACC,IAAD,CAAmC,CACjD,MAAO,IAAIX,CAAAA,IAAJ,CAASW,IAAT,EAAeC,iBAAf,EAAP,CACA,CAFD,CAGA,GAAMC,CAAAA,IAAI,CAAG,QAAPA,CAAAA,IAAO,CAACF,IAAD,CAAyB,CACrC,MAAO,IAAIX,CAAAA,IAAJ,CAASW,IAAT,EAAeE,IAAf,EAAP,CACA,CAFD,CAGA,GAAMC,CAAAA,OAAO,CAAGR,IAAI,EAAKA,IAAD,CAA+BQ,OAAvD,CACA,GAAMC,CAAAA,cAAc,CAAGd,OAAO,CAAC,UAAM,CACpC,MAAO,CAAC,EAAEa,OAAO,EAAI,GAAId,CAAAA,IAAJ,CAAS,CAAEc,OAAO,CAAPA,OAAF,CAAT,EAAsBE,cAAtB,GAAuCC,MAApD,CAAR,CACA,CAF6B,CAE3B,CAACH,OAAD,CAF2B,CAA9B,CAGA,GAAMI,CAAAA,kBAAkB,CAAGjB,OAAO,CAAC,UAAM,CACxC,MACEa,CAAAA,OAAO,EACP,GAAId,CAAAA,IAAJ,CAAS,CAAEc,OAAO,CAAPA,OAAF,CAAT,EAAsBE,cAAtB,GAAuCG,GAAvC,CAA2C,SAAAC,IAAI,QAAIA,CAAAA,IAAI,CAACC,IAAT,EAA/C,CADD,EAEA,EAHD,CAKA,CANiC,CAM/B,CAACP,OAAD,CAN+B,CAAlC,CAOA,GAAMH,CAAAA,IAAI,CAAGV,OAAO,CAAC,UAAM,CAC1B,QAASqB,CAAAA,UAAT,CAAoBC,CAApB,CAA+D,CAC9D,MAAO,CAAC,CAAEA,CAAV,CACA,CACD,GAAIjB,IAAI,EAAIgB,UAAU,CAAChB,IAAD,CAAtB,CAA8B,CAC7B,GAAMkB,CAAAA,KAAwB,kBAC1BlB,IAD0B,EAE7BmB,WAAW,kBACPnB,IAAI,CAACmB,WADE,EAEVC,SAAS,CAAEpB,IAAI,CAACmB,WAAL,CAAiBC,SAAjB,CAA2BC,MAA3B,EAFD,EAFkB,EAA9B,CAOA,MAAOH,CAAAA,KAAP,CACA,CACD,MAAO,KAAP,CACA,CAfmB,CAejB,CAAClB,IAAD,CAfiB,CAApB,CAgBA,MAAO,CACNA,IAAI,CAAEK,IADA,CAENJ,OAAO,CAAPA,OAFM,CAGNC,KAAK,CAALA,KAHM,CAINC,GAAG,CAAHA,GAJM,CAKNC,MAAM,CAANA,MALM,CAMNG,IAAI,CAAJA,IANM,CAONE,cAAc,CAAdA,cAPM,CAQNG,kBAAkB,CAAlBA,kBARM,CAAP,CAUA,CAvDD","sourcesContent":["import { useFuego } from '@nandorojo/fuego'\nimport Room from '../../classes/Room'\nimport {\n\tEditRoomModel,\n\tRoomPropertiesModel,\n\tCreateCallableRoomModel,\n\tExistingRoomDocument,\n\tExistingRoomModel\n} from '../../classes/Room/types'\nimport { UseRoomType } from './types'\nimport { QueryDataHandler } from '@nandorojo/fuego/lib/typescript/hooks/useFuego/types'\nimport { useMemo } from 'react'\n\n/**\n * Fetches or subscribes to a chatroom. It automatically handles unmounts, etc.\n *\n * @param config - config dictionary.\n * @param config.id - Required: the unique ID for this chatroom, typically generated by the backend. If using the [[useInbox]] hook, each item in [[useInbox]]'s data array has this ID.\n * @param config.listen Boolean to determine if this room should update state as a subscription. Default false.\n * @param options - added options dictionary for useRoom\n *\n * @remarks Look at the fuego library's useFuego hook to see all the available arguments for config and options.\n *\n * @returns { data: room, loading, error, ref, create, edit, usersAreTyping, namesOfUsersTyping } data is formatted for rendering room.\n */\n\nexport default (\n\t{ id, ...config }: UseRoomType,\n\toptions: QueryDataHandler<ExistingRoomDocument> = {}\n) => {\n\tconst { path } = new Room({ id } as RoomPropertiesModel)\n\tconst { data, loading, error, ref } = useFuego<ExistingRoomDocument>(\n\t\t{\n\t\t\t...config,\n\t\t\tpath\n\t\t},\n\t\toptions\n\t)\n\tconst create = (room: CreateCallableRoomModel) => {\n\t\treturn new Room(room).createViaCallable()\n\t}\n\tconst edit = (room: EditRoomModel) => {\n\t\treturn new Room(room).edit()\n\t}\n\tconst members = data && (data as ExistingRoomDocument).members\n\tconst usersAreTyping = useMemo(() => {\n\t\treturn !!(members && new Room({ members }).getUsersTyping().length)\n\t}, [members])\n\tconst namesOfUsersTyping = useMemo(() => {\n\t\treturn (\n\t\t\t(members &&\n\t\t\t\tnew Room({ members }).getUsersTyping().map(user => user.name)) ||\n\t\t\t[]\n\t\t)\n\t}, [members])\n\tconst room = useMemo(() => {\n\t\tfunction isDocument(r: typeof data): r is ExistingRoomDocument {\n\t\t\treturn !!(r as ExistingRoomDocument)\n\t\t}\n\t\tif (data && isDocument(data)) {\n\t\t\tconst model: ExistingRoomModel = {\n\t\t\t\t...data,\n\t\t\t\tlastMessage: {\n\t\t\t\t\t...data.lastMessage,\n\t\t\t\t\tcreatedAt: data.lastMessage.createdAt.toDate()\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn model\n\t\t}\n\t\treturn null\n\t}, [data])\n\treturn {\n\t\tdata: room,\n\t\tloading,\n\t\terror,\n\t\tref,\n\t\tcreate,\n\t\tedit,\n\t\tusersAreTyping,\n\t\tnamesOfUsersTyping\n\t}\n}\n"]}
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -1,2 +0,0 @@
1
- import _regeneratorRuntime from"@babel/runtime/regenerator";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useState,useRef,useEffect,useCallback}from'react';import Message from'../../../classes/Message';export default function(){var _useState=useState(false),_useState2=_slicedToArray(_useState,2),uploading=_useState2[0],setUploading=_useState2[1];var _useState3=useState(null),_useState4=_slicedToArray(_useState3,2),error=_useState4[0],setError=_useState4[1];var messageRef=useRef(null);var recipientsRef=useRef(null);useEffect(function(){if(uploading){var run=function run(){return _regeneratorRuntime.async(function run$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.prev=0;if(!(messageRef.current&&recipientsRef.current)){_context.next=4;break;}_context.next=4;return _regeneratorRuntime.awrap(new Message(messageRef.current).sendToGroup(recipientsRef.current));case 4:messageRef.current=null;recipientsRef.current=null;setUploading(false);_context.next=13;break;case 9:_context.prev=9;_context.t0=_context["catch"](0);console.error("failure sending message from useSendToPeople",_context.t0);setError(_context.t0);case 13:case"end":return _context.stop();}}},null,null,[[0,9]]);};run();}},[uploading]);var send=useCallback(function(message,recipients){messageRef.current=message;recipientsRef.current=recipients;setUploading(true);},[]);return{send:send,uploading:uploading,error:error};}
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["index.ts"],"names":["useState","useRef","useEffect","useCallback","Message","uploading","setUploading","error","setError","messageRef","recipientsRef","run","current","sendToGroup","console","send","message","recipients"],"mappings":"6HAAA,OAASA,QAAT,CAAmBC,MAAnB,CAA2BC,SAA3B,CAAsCC,WAAtC,KAAyD,OAAzD,CAEA,MAAOC,CAAAA,OAAP,KAAoB,0BAApB,CAEA,cAAe,WAAiD,eAC7BJ,QAAQ,CAAC,KAAD,CADqB,wCACxDK,SADwD,eAC7CC,YAD6C,8BAErCN,QAAQ,CAAC,IAAD,CAF6B,yCAExDO,KAFwD,eAEjDC,QAFiD,eAG/D,GAAMC,CAAAA,UAAU,CAAGR,MAAM,CAAsB,IAAtB,CAAzB,CACA,GAAMS,CAAAA,aAAa,CAAGT,MAAM,CAAkB,IAAlB,CAA5B,CAEAC,SAAS,CAAC,UAAM,CACf,GAAIG,SAAJ,CAAe,CACd,GAAMM,CAAAA,GAAG,CAAG,QAANA,CAAAA,GAAM,qIAENF,UAAU,CAACG,OAAX,EAAsBF,aAAa,CAACE,OAF9B,2EAGH,GAAIR,CAAAA,OAAJ,CAAYK,UAAU,CAACG,OAAvB,EAAgCC,WAAhC,CACLH,aAAa,CAACE,OADT,CAHG,SAMVH,UAAU,CAACG,OAAX,CAAqB,IAArB,CACAF,aAAa,CAACE,OAAd,CAAwB,IAAxB,CACAN,YAAY,CAAC,KAAD,CAAZ,CARU,+EAUVQ,OAAO,CAACP,KAAR,6DACAC,QAAQ,aAAR,CAXU,iEAAZ,CAcAG,GAAG,GACH,CACD,CAlBQ,CAkBN,CAACN,SAAD,CAlBM,CAAT,CAoBA,GAAMU,CAAAA,IAAI,CAAGZ,WAAW,CAAC,SAACa,OAAD,CAAwBC,UAAxB,CAAiD,CACzER,UAAU,CAACG,OAAX,CAAqBI,OAArB,CACAN,aAAa,CAACE,OAAd,CAAwBK,UAAxB,CACAX,YAAY,CAAC,IAAD,CAAZ,CACA,CAJuB,CAIrB,EAJqB,CAAxB,CAMA,MAAO,CAAES,IAAI,CAAJA,IAAF,CAAQV,SAAS,CAATA,SAAR,CAAmBE,KAAK,CAALA,KAAnB,CAAP,CACA","sourcesContent":["import { useState, useRef, useEffect, useCallback } from 'react'\nimport { NewMessageModel } from '../../../classes/Message/types'\nimport Message from '../../../classes/Message'\n\nexport default function<MessageModel extends NewMessageModel>() {\n\tconst [uploading, setUploading] = useState(false)\n\tconst [error, setError] = useState(null)\n\tconst messageRef = useRef<MessageModel | null>(null)\n\tconst recipientsRef = useRef<string[] | null>(null)\n\n\tuseEffect(() => {\n\t\tif (uploading) {\n\t\t\tconst run = async () => {\n\t\t\t\ttry {\n\t\t\t\t\tif (messageRef.current && recipientsRef.current)\n\t\t\t\t\t\tawait new Message(messageRef.current).sendToGroup(\n\t\t\t\t\t\t\trecipientsRef.current\n\t\t\t\t\t\t)\n\t\t\t\t\tmessageRef.current = null\n\t\t\t\t\trecipientsRef.current = null\n\t\t\t\t\tsetUploading(false)\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.error(`failure sending message from useSendToPeople`, e)\n\t\t\t\t\tsetError(e)\n\t\t\t\t}\n\t\t\t}\n\t\t\trun()\n\t\t}\n\t}, [uploading])\n\n\tconst send = useCallback((message: MessageModel, recipients: string[]) => {\n\t\tmessageRef.current = message\n\t\trecipientsRef.current = recipients\n\t\tsetUploading(true)\n\t}, [])\n\n\treturn { send, uploading, error }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import _regeneratorRuntime from"@babel/runtime/regenerator";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useState,useRef,useEffect,useCallback}from'react';import Message from'../../../classes/Message';export default function(){var _useState=useState(false),_useState2=_slicedToArray(_useState,2),uploading=_useState2[0],setUploading=_useState2[1];var _useState3=useState(null),_useState4=_slicedToArray(_useState3,2),error=_useState4[0],setError=_useState4[1];var messageRef=useRef(null);var recipientsRef=useRef(null);useEffect(function(){if(uploading){var run=function run(){return _regeneratorRuntime.async(function run$(_context){while(1){switch(_context.prev=_context.next){case 0:_context.prev=0;if(!(messageRef.current&&recipientsRef.current)){_context.next=4;break;}_context.next=4;return _regeneratorRuntime.awrap(new Message(messageRef.current).sendToPeople(recipientsRef.current));case 4:messageRef.current=null;recipientsRef.current=null;setUploading(false);_context.next=13;break;case 9:_context.prev=9;_context.t0=_context["catch"](0);console.error("failure sending message from useSendToPeople",_context.t0);setError(_context.t0);case 13:case"end":return _context.stop();}}},null,null,[[0,9]]);};run();}},[uploading]);var send=useCallback(function(message,recipients){messageRef.current=message;recipientsRef.current=recipients;setUploading(true);},[]);return{send:send,uploading:uploading,error:error};}
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["index.ts"],"names":["useState","useRef","useEffect","useCallback","Message","uploading","setUploading","error","setError","messageRef","recipientsRef","run","current","sendToPeople","console","send","message","recipients"],"mappings":"6HAAA,OAASA,QAAT,CAAmBC,MAAnB,CAA2BC,SAA3B,CAAsCC,WAAtC,KAAyD,OAAzD,CAEA,MAAOC,CAAAA,OAAP,KAAoB,0BAApB,CAEA,cAAe,WAAiD,eAC7BJ,QAAQ,CAAC,KAAD,CADqB,wCACxDK,SADwD,eAC7CC,YAD6C,8BAErCN,QAAQ,CAAC,IAAD,CAF6B,yCAExDO,KAFwD,eAEjDC,QAFiD,eAG/D,GAAMC,CAAAA,UAAU,CAAGR,MAAM,CAAsB,IAAtB,CAAzB,CACA,GAAMS,CAAAA,aAAa,CAAGT,MAAM,CAAkB,IAAlB,CAA5B,CAEAC,SAAS,CAAC,UAAM,CACf,GAAIG,SAAJ,CAAe,CACd,GAAMM,CAAAA,GAAG,CAAG,QAANA,CAAAA,GAAM,qIAENF,UAAU,CAACG,OAAX,EAAsBF,aAAa,CAACE,OAF9B,2EAGH,GAAIR,CAAAA,OAAJ,CAAYK,UAAU,CAACG,OAAvB,EAAgCC,YAAhC,CACLH,aAAa,CAACE,OADT,CAHG,SAMVH,UAAU,CAACG,OAAX,CAAqB,IAArB,CACAF,aAAa,CAACE,OAAd,CAAwB,IAAxB,CACAN,YAAY,CAAC,KAAD,CAAZ,CARU,+EAUVQ,OAAO,CAACP,KAAR,6DACAC,QAAQ,aAAR,CAXU,iEAAZ,CAcAG,GAAG,GACH,CACD,CAlBQ,CAkBN,CAACN,SAAD,CAlBM,CAAT,CAoBA,GAAMU,CAAAA,IAAI,CAAGZ,WAAW,CAAC,SAACa,OAAD,CAAwBC,UAAxB,CAAiD,CACzER,UAAU,CAACG,OAAX,CAAqBI,OAArB,CACAN,aAAa,CAACE,OAAd,CAAwBK,UAAxB,CACAX,YAAY,CAAC,IAAD,CAAZ,CACA,CAJuB,CAIrB,EAJqB,CAAxB,CAMA,MAAO,CAAES,IAAI,CAAJA,IAAF,CAAQV,SAAS,CAATA,SAAR,CAAmBE,KAAK,CAALA,KAAnB,CAAP,CACA","sourcesContent":["import { useState, useRef, useEffect, useCallback } from 'react'\nimport { NewMessageModel } from '../../../classes/Message/types'\nimport Message from '../../../classes/Message'\n\nexport default function<MessageModel extends NewMessageModel>() {\n\tconst [uploading, setUploading] = useState(false)\n\tconst [error, setError] = useState(null)\n\tconst messageRef = useRef<MessageModel | null>(null)\n\tconst recipientsRef = useRef<string[] | null>(null)\n\n\tuseEffect(() => {\n\t\tif (uploading) {\n\t\t\tconst run = async () => {\n\t\t\t\ttry {\n\t\t\t\t\tif (messageRef.current && recipientsRef.current)\n\t\t\t\t\t\tawait new Message(messageRef.current).sendToPeople(\n\t\t\t\t\t\t\trecipientsRef.current\n\t\t\t\t\t\t)\n\t\t\t\t\tmessageRef.current = null\n\t\t\t\t\trecipientsRef.current = null\n\t\t\t\t\tsetUploading(false)\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.error(`failure sending message from useSendToPeople`, e)\n\t\t\t\t\tsetError(e)\n\t\t\t\t}\n\t\t\t}\n\t\t\trun()\n\t\t}\n\t}, [uploading])\n\n\tconst send = useCallback((message: MessageModel, recipients: string[]) => {\n\t\tmessageRef.current = message\n\t\trecipientsRef.current = recipients\n\t\tsetUploading(true)\n\t}, [])\n\n\treturn { send, uploading, error }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import _regeneratorRuntime from"@babel/runtime/regenerator";import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import{useEffect,useState,useMemo,useRef}from'react';import{useFuegoContext}from'@nandorojo/fuego';export default(function(_ref){var roomId=_ref.roomId,text=_ref.text,_ref$delay=_ref.delay,delay=_ref$delay===void 0?5000:_ref$delay;var _useFuegoContext=useFuegoContext(),auth=_useFuegoContext.auth,firebase=_useFuegoContext.firebase;var _useState=useState(false),_useState2=_slicedToArray(_useState,2),ready=_useState2[0],setReady=_useState2[1];var _auth=auth(),currentUser=_auth.currentUser;try{if(!currentUser)throw new Error('🤯 error in useTyping hook. Looks like there is not a valid user signed in. \nConsider using the FuegoGate component from @nandorojo/fuego and wrapping it around your app.');}catch(e){console.error(e);}var _ref2=currentUser,uid=_ref2.uid;var databaseRef=useMemo(function(){return firebase.database().ref("/typing/"+uid);},[uid,firebase]);var previouslyTyped=useRef('');var timer=useRef();var lastStateSent=useRef('nothing');useEffect(function(){var subscriptionRef=firebase.database().ref('.info/connected');var notTyping={state:'nothing',lastChanged:firebase.database.ServerValue.TIMESTAMP,roomId:roomId};subscriptionRef.on('value',function _callee(snapshot){return _regeneratorRuntime.async(function _callee$(_context){while(1){switch(_context.prev=_context.next){case 0:if(snapshot.val()){_context.next=2;break;}return _context.abrupt("return");case 2:_context.prev=2;_context.next=5;return _regeneratorRuntime.awrap(databaseRef.onDisconnect().set(notTyping));case 5:setReady(true);_context.next=11;break;case 8:_context.prev=8;_context.t0=_context["catch"](2);console.error("useTyping error within snapshot listener "+_context.t0);case 11:case"end":return _context.stop();}}},null,null,[[2,8]]);});return function(){subscriptionRef.off('value');(function _callee2(){return _regeneratorRuntime.async(function _callee2$(_context2){while(1){switch(_context2.prev=_context2.next){case 0:_context2.prev=0;lastStateSent.current=notTyping.state;_context2.next=4;return _regeneratorRuntime.awrap(databaseRef.set(notTyping));case 4:_context2.next=9;break;case 6:_context2.prev=6;_context2.t0=_context2["catch"](0);console.error('useTyping errored on unmount setting not typing');case 9:case"end":return _context2.stop();}}},null,null,[[0,6]]);})();};},[roomId,databaseRef,firebase]);useEffect(function(){try{if(ready&&text!==previouslyTyped.current){previouslyTyped.current=text;var notTyping={state:'nothing',lastChanged:firebase.database.ServerValue.TIMESTAMP,roomId:roomId};var isTyping={state:'typing',lastChanged:firebase.database.ServerValue.TIMESTAMP,roomId:roomId};var setValue=text?isTyping:notTyping;if(setValue.state!==lastStateSent.current){lastStateSent.current=setValue.state;databaseRef.set(setValue);}if(delay!==null&&setValue.state==='typing'){timer.current=setTimeout(function(){lastStateSent.current=notTyping.state;databaseRef.set(notTyping);},delay);}}}catch(e){console.error('error in useTyping after timer',e);}return function(){if(timer.current)clearTimeout(timer.current);};},[ready,text,roomId,delay,uid,databaseRef,firebase]);});
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["index.ts"],"names":["useEffect","useState","useMemo","useRef","useFuegoContext","roomId","text","delay","auth","firebase","ready","setReady","currentUser","Error","e","console","error","uid","databaseRef","database","ref","previouslyTyped","timer","lastStateSent","subscriptionRef","notTyping","state","lastChanged","ServerValue","TIMESTAMP","on","snapshot","val","onDisconnect","set","off","current","isTyping","setValue","setTimeout","clearTimeout"],"mappings":"6HAAA,OAASA,SAAT,CAAoBC,QAApB,CAA8BC,OAA9B,CAAuCC,MAAvC,KAAqD,OAArD,CACA,OAASC,eAAT,KAAgC,kBAAhC,CAiCA,eAAe,cAQT,IAPLC,CAAAA,MAOK,MAPLA,MAOK,CANLC,IAMK,MANLA,IAMK,iBALLC,KAKK,CALLA,KAKK,qBALG,IAKH,iCACsBH,eAAe,EADrC,CACGI,IADH,kBACGA,IADH,CACSC,QADT,kBACSA,QADT,eAEqBR,QAAQ,CAAC,KAAD,CAF7B,wCAEES,KAFF,eAESC,QAFT,yBAGmBH,IAAI,EAHvB,CAGGI,WAHH,OAGGA,WAHH,CAIL,GAAI,CACH,GAAI,CAACA,WAAL,CACC,KAAM,IAAIC,CAAAA,KAAJ,CACL,6KADK,CAAN,CAGD,CAAC,MAAOC,CAAP,CAAU,CACXC,OAAO,CAACC,KAAR,CAAcF,CAAd,EACA,CAXI,UAYWF,WAZX,CAYGK,GAZH,OAYGA,GAZH,CAaL,GAAMC,CAAAA,WAAW,CAAGhB,OAAO,CAAC,iBAAMO,CAAAA,QAAQ,CAACU,QAAT,GAAoBC,GAApB,YAAmCH,GAAnC,CAAN,EAAD,CAAkD,CAC5EA,GAD4E,CAE5ER,QAF4E,CAAlD,CAA3B,CAIA,GAAMY,CAAAA,eAAe,CAAGlB,MAAM,CAAC,EAAD,CAA9B,CAEA,GAAMmB,CAAAA,KAAK,CAAGnB,MAAM,EAApB,CAEA,GAAMoB,CAAAA,aAAa,CAAGpB,MAAM,CAAoB,SAApB,CAA5B,CAKAH,SAAS,CAAC,UAAM,CACf,GAAMwB,CAAAA,eAAe,CAAGf,QAAQ,CAACU,QAAT,GAAoBC,GAApB,CAAwB,iBAAxB,CAAxB,CACA,GAAMK,CAAAA,SAAmB,CAAG,CAC3BC,KAAK,CAAE,SADoB,CAE3BC,WAAW,CAAElB,QAAQ,CAACU,QAAT,CAAkBS,WAAlB,CAA8BC,SAFhB,CAG3BxB,MAAM,CAANA,MAH2B,CAA5B,CAMAmB,eAAe,CAACM,EAAhB,CAAmB,OAAnB,CAA4B,iBAAMC,QAAN,sHACtBA,QAAQ,CAACC,GAAT,EADsB,kIAIpBd,WAAW,CAACe,YAAZ,GAA2BC,GAA3B,CAA+BT,SAA/B,CAJoB,SAK1Bd,QAAQ,CAAC,IAAD,CAAR,CAL0B,+EAO1BI,OAAO,CAACC,KAAR,0DAP0B,iEAA5B,EAWA,MAAO,WAAM,CAEZQ,eAAe,CAACW,GAAhB,CAAoB,OAApB,EACC,CAAC,0JAEAZ,aAAa,CAACa,OAAd,CAAwBX,SAAS,CAACC,KAAlC,CAFA,kDAGMR,WAAW,CAACgB,GAAZ,CAAgBT,SAAhB,CAHN,2FAKAV,OAAO,CAACC,KAAR,CAAc,iDAAd,EALA,iEAAD,IAQD,CAXD,CAYA,CA/BQ,CA+BN,CAACX,MAAD,CAASa,WAAT,CAAsBT,QAAtB,CA/BM,CAAT,CAqCAT,SAAS,CAAC,UAAM,CACf,GAAI,CAIH,GAAIU,KAAK,EAAIJ,IAAI,GAAKe,eAAe,CAACe,OAAtC,CAA+C,CAC9Cf,eAAe,CAACe,OAAhB,CAA0B9B,IAA1B,CAEA,GAAMmB,CAAAA,SAAmB,CAAG,CAC3BC,KAAK,CAAE,SADoB,CAE3BC,WAAW,CAAElB,QAAQ,CAACU,QAAT,CAAkBS,WAAlB,CAA8BC,SAFhB,CAG3BxB,MAAM,CAANA,MAH2B,CAA5B,CAKA,GAAMgC,CAAAA,QAAkB,CAAG,CAC1BX,KAAK,CAAE,QADmB,CAE1BC,WAAW,CAAElB,QAAQ,CAACU,QAAT,CAAkBS,WAAlB,CAA8BC,SAFjB,CAG1BxB,MAAM,CAANA,MAH0B,CAA3B,CAOA,GAAMiC,CAAAA,QAAQ,CAAGhC,IAAI,CAAG+B,QAAH,CAAcZ,SAAnC,CAGA,GAAIa,QAAQ,CAACZ,KAAT,GAAmBH,aAAa,CAACa,OAArC,CAA8C,CAC7Cb,aAAa,CAACa,OAAd,CAAwBE,QAAQ,CAACZ,KAAjC,CACAR,WAAW,CAACgB,GAAZ,CAAgBI,QAAhB,EACA,CAGD,GAAI/B,KAAK,GAAK,IAAV,EAAkB+B,QAAQ,CAACZ,KAAT,GAAmB,QAAzC,CAAmD,CAClDJ,KAAK,CAACc,OAAN,CAAgBG,UAAU,CAAC,UAAM,CAChChB,aAAa,CAACa,OAAd,CAAwBX,SAAS,CAACC,KAAlC,CACAR,WAAW,CAACgB,GAAZ,CAAgBT,SAAhB,EACA,CAHyB,CAGvBlB,KAHuB,CAA1B,CAIA,CACD,CACD,CAAC,MAAOO,CAAP,CAAU,CACXC,OAAO,CAACC,KAAR,CAAc,gCAAd,CAAgDF,CAAhD,EACA,CAED,MAAO,WAAM,CACZ,GAAIQ,KAAK,CAACc,OAAV,CAAmBI,YAAY,CAAClB,KAAK,CAACc,OAAP,CAAZ,CACnB,CAFD,CAGA,CA3CQ,CA2CN,CAAC1B,KAAD,CAAQJ,IAAR,CAAcD,MAAd,CAAsBE,KAAtB,CAA6BU,GAA7B,CAAkCC,WAAlC,CAA+CT,QAA/C,CA3CM,CAAT,CA4CA,CAnHD","sourcesContent":["import { useEffect, useState, useMemo, useRef } from 'react'\nimport { useFuegoContext } from '@nandorojo/fuego'\nimport { Typing } from '../../classes/Room/types'\n\n/**\n * useTyping automatically updates the backend whenever a user is typing.\n *\n * @param options - A dictionary to configure the typing.\n * @param options.roomId - **Required** unique id of the room you're typing in.\n * @param options.text - **Required** The current text state of your chat input\n * @param options.delay (Optional) Set the timeout delay to mark typing false. Set null if you don't want a time out.\n *\n * @example\n * ```javascript\n * // input text state\n * const [text, setText] = useState('')\n * // let's say we're getting our room id from our react-navigation params\n * const navigation = useNavigation()\n * const roomId = navigation.params.id\n *\n * useTyping({ roomId, text })\n *\n * <ChatComponent text={text} onChangeText={setText} />\n * ```\n *\n * @returns\n * Doesn't return anything. We live in an undefined world, I suppose.\n *\n * @remarks\n * The actual data of who is typing is stored in the chatroom object.\n * If you want to get this data realtime in a room, consider using useRoom({ listen: true }). This data will also be in useInbox().\n * See docs for useRoom or useInbox for more.\n *\n */\nexport default ({\n\troomId,\n\ttext,\n\tdelay = 5000\n}: {\n\troomId: string\n\ttext: string\n\tdelay?: number | null\n}) => {\n\tconst { auth, firebase } = useFuegoContext()\n\tconst [ready, setReady] = useState(false)\n\tconst { currentUser } = auth()\n\ttry {\n\t\tif (!currentUser)\n\t\t\tthrow new Error(\n\t\t\t\t'🤯 error in useTyping hook. Looks like there is not a valid user signed in. \\nConsider using the FuegoGate component from @nandorojo/fuego and wrapping it around your app.'\n\t\t\t)\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n\tconst { uid } = currentUser as firebase.User\n\tconst databaseRef = useMemo(() => firebase.database().ref(`/typing/${uid}`), [\n\t\tuid,\n\t\tfirebase\n\t])\n\tconst previouslyTyped = useRef('')\n\n\tconst timer = useRef<NodeJS.Timeout>()\n\n\tconst lastStateSent = useRef<IsTyping['state']>('nothing')\n\n\t// initialize the typing set to false when we disconnect\n\t// once that is set up, then we can mark that we are indeed typing elsewhere\n\t// ^ that will be done in the next hook\n\tuseEffect(() => {\n\t\tconst subscriptionRef = firebase.database().ref('.info/connected')\n\t\tconst notTyping: IsTyping = {\n\t\t\tstate: 'nothing',\n\t\t\tlastChanged: firebase.database.ServerValue.TIMESTAMP,\n\t\t\troomId\n\t\t}\n\n\t\tsubscriptionRef.on('value', async snapshot => {\n\t\t\tif (!snapshot.val()) return\n\n\t\t\ttry {\n\t\t\t\tawait databaseRef.onDisconnect().set(notTyping)\n\t\t\t\tsetReady(true)\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(`useTyping error within snapshot listener ${e}`)\n\t\t\t}\n\t\t})\n\n\t\treturn () => {\n\t\t\t// clean up the listener on unmount\n\t\t\tsubscriptionRef.off('value')\n\t\t\t;(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tlastStateSent.current = notTyping.state\n\t\t\t\t\tawait databaseRef.set(notTyping)\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.error('useTyping errored on unmount setting not typing')\n\t\t\t\t}\n\t\t\t})()\n\t\t}\n\t}, [roomId, databaseRef, firebase])\n\n\t// every time we type something new, upload that we're typing\n\t// and after a certain delay, we mark typing false\n\t// however, if we type before that timer has completed,\n\t// we clean it up and start it over\n\tuseEffect(() => {\n\t\ttry {\n\t\t\t// we're ready to upload from the previous effect\n\t\t\t// ...and the text we typed just changed.\n\t\t\t// if text is empty, set to false\n\t\t\tif (ready && text !== previouslyTyped.current) {\n\t\t\t\tpreviouslyTyped.current = text\n\n\t\t\t\tconst notTyping: IsTyping = {\n\t\t\t\t\tstate: 'nothing',\n\t\t\t\t\tlastChanged: firebase.database.ServerValue.TIMESTAMP,\n\t\t\t\t\troomId\n\t\t\t\t}\n\t\t\t\tconst isTyping: IsTyping = {\n\t\t\t\t\tstate: 'typing',\n\t\t\t\t\tlastChanged: firebase.database.ServerValue.TIMESTAMP,\n\t\t\t\t\troomId\n\t\t\t\t}\n\n\t\t\t\t// if the text is empty, we set it to not typing\n\t\t\t\tconst setValue = text ? isTyping : notTyping\n\n\t\t\t\t// don't resend the state we just sent to avoid redundancy\n\t\t\t\tif (setValue.state !== lastStateSent.current) {\n\t\t\t\t\tlastStateSent.current = setValue.state\n\t\t\t\t\tdatabaseRef.set(setValue)\n\t\t\t\t}\n\n\t\t\t\t// only need a notTyping timer timer if we're typing\n\t\t\t\tif (delay !== null && setValue.state === 'typing') {\n\t\t\t\t\ttimer.current = setTimeout(() => {\n\t\t\t\t\t\tlastStateSent.current = notTyping.state\n\t\t\t\t\t\tdatabaseRef.set(notTyping)\n\t\t\t\t\t}, delay)\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error('error in useTyping after timer', e)\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (timer.current) clearTimeout(timer.current)\n\t\t}\n\t}, [ready, text, roomId, delay, uid, databaseRef, firebase])\n}\n\ninterface IsTyping extends Typing {\n\troomId: string\n}\n"]}
@@ -1,2 +0,0 @@
1
- import _defineProperty from"@babel/runtime/helpers/defineProperty";import{useEffect,useRef}from'react';import{Room}from'../../index';import{fuego}from'../../components/ChatProvider';export default(function(config){var delay=arguments.length>1&&arguments[1]!==undefined?arguments[1]:1500;var _config$text=config.text,text=_config$text===void 0?'':_config$text,id=config.id;var _ref=new Room({id:id}),path=_ref.path;var ref=fuego.db.doc(path);var timer=useRef();var user=fuego.auth().currentUser;var uid=user&&user.uid||'tester_name';var mounted=useRef(false);var lastTyped=useRef(0);useEffect(function(){try{if(mounted.current){var typedAt=Date.now();lastTyped.current=typedAt;ref.update(_defineProperty({},"members."+uid+".typing",true));timer.current=setTimeout(function(){ref.update(_defineProperty({},"members."+uid+".typing",false));},delay);}else{mounted.current=true;}}catch(e){console.error('use typing update error',e);}return function(){if(timer.current)clearTimeout(timer.current);};},[text,uid,delay,path]);useEffect(function(){return function(){try{ref.update(_defineProperty({},"members."+uid+".typing",false));}catch(e){console.error('unmount usetyping error',e);}};},[]);});
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["index.ts"],"names":["useEffect","useRef","Room","fuego","config","delay","text","id","path","ref","db","doc","timer","user","auth","currentUser","uid","mounted","lastTyped","current","typedAt","Date","now","update","setTimeout","e","console","error","clearTimeout"],"mappings":"mEAAA,OAASA,SAAT,CAAoBC,MAApB,KAAkC,OAAlC,CACA,OAASC,IAAT,KAAqB,aAArB,CACA,OAASC,KAAT,KAAsB,+BAAtB,CAWA,eAAe,SAACC,MAAD,CAAmD,IAAzBC,CAAAA,KAAyB,2DAAT,IAAS,kBACvCD,MADuC,CACzDE,IADyD,CACzDA,IADyD,uBAClD,EADkD,cAC9CC,EAD8C,CACvCH,MADuC,CAC9CG,EAD8C,UAEhD,GAAIL,CAAAA,IAAJ,CAAS,CAAEK,EAAE,CAAFA,EAAF,CAAT,CAFgD,CAEzDC,IAFyD,MAEzDA,IAFyD,CAGjE,GAAMC,CAAAA,GAAG,CAAGN,KAAK,CAACO,EAAN,CAASC,GAAT,CAAaH,IAAb,CAAZ,CACA,GAAMI,CAAAA,KAAK,CAAGX,MAAM,EAApB,CACA,GAAMY,CAAAA,IAAI,CAAGV,KAAK,CAACW,IAAN,GAAaC,WAA1B,CACA,GAAMC,CAAAA,GAAG,CAAIH,IAAI,EAAIA,IAAI,CAACG,GAAd,EAAsB,aAAlC,CAEA,GAAMC,CAAAA,OAAO,CAAGhB,MAAM,CAAC,KAAD,CAAtB,CACA,GAAMiB,CAAAA,SAAS,CAAGjB,MAAM,CAAC,CAAD,CAAxB,CAEAD,SAAS,CAAC,UAAM,CACf,GAAI,CACH,GAAIiB,OAAO,CAACE,OAAZ,CAAqB,CACpB,GAAMC,CAAAA,OAAO,CAAGC,IAAI,CAACC,GAAL,EAAhB,CAEAJ,SAAS,CAACC,OAAV,CAAoBC,OAApB,CAEAX,GAAG,CAACc,MAAJ,+BACaP,GADb,WAC4B,IAD5B,GAIAJ,KAAK,CAACO,OAAN,CAAgBK,UAAU,CAAC,UAAM,CAChCf,GAAG,CAACc,MAAJ,+BACaP,GADb,WAC4B,KAD5B,GAGA,CAJyB,CAIvBX,KAJuB,CAA1B,CAMA,CAfD,IAeO,CACNY,OAAO,CAACE,OAAR,CAAkB,IAAlB,CACA,CACD,CAAC,MAAOM,CAAP,CAAU,CACXC,OAAO,CAACC,KAAR,CAAc,yBAAd,CAAyCF,CAAzC,EACA,CAED,MAAO,WAAM,CAEZ,GAAIb,KAAK,CAACO,OAAV,CAAmBS,YAAY,CAAChB,KAAK,CAACO,OAAP,CAAZ,CACnB,CAHD,CAIA,CA5BQ,CA4BN,CAACb,IAAD,CAAOU,GAAP,CAAYX,KAAZ,CAAmBG,IAAnB,CA5BM,CAAT,CA8BAR,SAAS,CAAC,UAAM,CACf,MAAO,WAAM,CACZ,GAAI,CAEHS,GAAG,CAACc,MAAJ,+BACaP,GADb,WAC4B,KAD5B,GAGA,CAAC,MAAOS,CAAP,CAAU,CACXC,OAAO,CAACC,KAAR,CAAc,yBAAd,CAAyCF,CAAzC,EACA,CACD,CATD,CAUA,CAXQ,CAWN,EAXM,CAAT,CAYA,CArDD","sourcesContent":["import { useEffect, useRef } from 'react'\nimport { Room } from '../../index'\nimport { fuego } from '../../components/ChatProvider'\nimport { UseTypingConfig } from './types'\n\n/**\n * useTyping updates the backend every time a user types, setting it to false after a certain delay.\n *\n * @param config { text, id } A dictionary that takes in the Input's current text value and the chatroom ID.\n * @param delay How long the timer delay should be before the backend is told we're no longer typing.\n *\n * @returns undefined\n */\nexport default (config: UseTypingConfig, delay: number = 1500) => {\n\tconst { text = '', id } = config\n\tconst { path } = new Room({ id })\n\tconst ref = fuego.db.doc(path)\n\tconst timer = useRef<number>()\n\tconst user = fuego.auth().currentUser as firebase.User\n\tconst uid = (user && user.uid) || 'tester_name'\n\t// ensures that typing only happens on update, not on mount\n\tconst mounted = useRef(false)\n\tconst lastTyped = useRef(0)\n\n\tuseEffect(() => {\n\t\ttry {\n\t\t\tif (mounted.current) {\n\t\t\t\tconst typedAt = Date.now()\n\t\t\t\t// const last = lastTyped.current\n\t\t\t\tlastTyped.current = typedAt\n\t\t\t\t// if ((typedAt - last) / 1000 >= delay) {\n\t\t\t\tref.update({\n\t\t\t\t\t[`members.${uid}.typing`]: true\n\t\t\t\t\t// [`members.${uid}.lastTyped`]: new Date()\n\t\t\t\t})\n\t\t\t\ttimer.current = setTimeout(() => {\n\t\t\t\t\tref.update({\n\t\t\t\t\t\t[`members.${uid}.typing`]: false\n\t\t\t\t\t})\n\t\t\t\t}, delay)\n\t\t\t\t// }\n\t\t\t} else {\n\t\t\t\tmounted.current = true\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error('use typing update error', e)\n\t\t}\n\n\t\treturn () => {\n\t\t\t// cleanup on update\n\t\t\tif (timer.current) clearTimeout(timer.current)\n\t\t}\n\t}, [text, uid, delay, path])\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\ttry {\n\t\t\t\t// mark indicator as false\n\t\t\t\tref.update({\n\t\t\t\t\t[`members.${uid}.typing`]: false\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('unmount usetyping error', e)\n\t\t\t}\n\t\t}\n\t}, [])\n}\n"]}
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -1,2 +0,0 @@
1
- import{useRef,useCallback,useEffect}from'react';import Room from'../../classes/Room';export default function(config){var methods=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var roomId=config.roomId;var lastUploadedMessageId=useRef(null);var onViewMessages=methods.onViewMessages;var roomIdRef=useRef(roomId);var onViewMessagesRef=useRef(onViewMessages);useEffect(function(){roomIdRef.current=roomId;if(onViewMessages)onViewMessagesRef.current=onViewMessages;},[roomId,onViewMessages]);return useCallback(function(_ref){var visibleMessages=_ref.visibleMessages,latestMessageId=_ref.latestMessageId;var message=visibleMessages&&visibleMessages.find(function(i){return i.id===latestMessageId;});if(visibleMessages&&visibleMessages.length&&onViewMessagesRef.current){onViewMessagesRef.current({visibleMessages:visibleMessages});}if(message&&message.id!==lastUploadedMessageId.current){lastUploadedMessageId.current=message.id;new Room({id:roomIdRef.current}).viewMessage(message.id,message.createdAt);}},[]);}
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["index.ts"],"names":["useRef","useCallback","useEffect","Room","config","methods","roomId","lastUploadedMessageId","onViewMessages","roomIdRef","onViewMessagesRef","current","visibleMessages","latestMessageId","message","find","i","id","length","viewMessage","createdAt"],"mappings":"AAAA,OAASA,MAAT,CAAiBC,WAAjB,CAA8BC,SAA9B,KAA+C,OAA/C,CAEA,MAAOC,CAAAA,IAAP,KAAiB,oBAAjB,CAeA,cAAe,UACdC,MADc,CAGb,IADDC,CAAAA,OACC,2DADwC,EACxC,IACOC,CAAAA,MADP,CACkBF,MADlB,CACOE,MADP,CAED,GAAMC,CAAAA,qBAAqB,CAAGP,MAAM,CAAgB,IAAhB,CAApC,CAFC,GAGOQ,CAAAA,cAHP,CAG0BH,OAH1B,CAGOG,cAHP,CAKD,GAAMC,CAAAA,SAAS,CAAGT,MAAM,CAACM,MAAD,CAAxB,CACA,GAAMI,CAAAA,iBAAiB,CAAGV,MAAM,CAACQ,cAAD,CAAhC,CAEAN,SAAS,CAAC,UAAM,CACfO,SAAS,CAACE,OAAV,CAAoBL,MAApB,CACA,GAAIE,cAAJ,CAAoBE,iBAAiB,CAACC,OAAlB,CAA4BH,cAA5B,CACpB,CAHQ,CAGN,CAACF,MAAD,CAASE,cAAT,CAHM,CAAT,CAKA,MAAOP,CAAAA,WAAW,CACjB,cAMM,IALLW,CAAAA,eAKK,MALLA,eAKK,CAJLC,eAIK,MAJLA,eAIK,CACL,GAAMC,CAAAA,OAAO,CACZF,eAAe,EAAIA,eAAe,CAACG,IAAhB,CAAqB,SAAAC,CAAC,QAAIA,CAAAA,CAAC,CAACC,EAAF,GAASJ,eAAb,EAAtB,CADpB,CAEA,GACCD,eAAe,EACfA,eAAe,CAACM,MADhB,EAEAR,iBAAiB,CAACC,OAHnB,CAIE,CACDD,iBAAiB,CAACC,OAAlB,CAA0B,CAAEC,eAAe,CAAfA,eAAF,CAA1B,EACA,CACD,GAAIE,OAAO,EAAIA,OAAO,CAACG,EAAR,GAAeV,qBAAqB,CAACI,OAApD,CAA6D,CAC5DJ,qBAAqB,CAACI,OAAtB,CAAgCG,OAAO,CAACG,EAAxC,CACA,GAAId,CAAAA,IAAJ,CAAS,CAAEc,EAAE,CAAER,SAAS,CAACE,OAAhB,CAAT,EAAoCQ,WAApC,CACCL,OAAO,CAACG,EADT,CAECH,OAAO,CAACM,SAFT,EAIA,CACD,CAxBgB,CAyBjB,EAzBiB,CAAlB,CA2BA","sourcesContent":["import { useRef, useCallback, useEffect } from 'react'\nimport { NewMessageModel } from '../../classes/Message/types'\nimport Room from '../../classes/Room'\nimport { UseViewMessagesConfig, UseViewMessagesMethods } from './types'\n\n/**\n * React hook that returns a function useful for marking messages as viewed on the backend.\n * It works by only clearing unread count when you've reached the most recent message, leveraging React Native FlatList's onViewableItemsChanged.\n * This is only useful if you're using the Juice chat backend.\n *\n * @example\n * ```js\n * const onViewMessages = useViewMessages({ roomId: 'some_chat_room_id' })\n *\n * return <Juice.Chat onViewMessages={onViewMessages} />\n * ```\n */\nexport default function<Model extends NewMessageModel = NewMessageModel>(\n\tconfig: UseViewMessagesConfig,\n\tmethods: UseViewMessagesMethods<Model> = {}\n) {\n\tconst { roomId } = config\n\tconst lastUploadedMessageId = useRef<string | null>(null)\n\tconst { onViewMessages } = methods\n\n\tconst roomIdRef = useRef(roomId)\n\tconst onViewMessagesRef = useRef(onViewMessages)\n\n\tuseEffect(() => {\n\t\troomIdRef.current = roomId\n\t\tif (onViewMessages) onViewMessagesRef.current = onViewMessages\n\t}, [roomId, onViewMessages])\n\n\treturn useCallback(\n\t\t({\n\t\t\tvisibleMessages,\n\t\t\tlatestMessageId\n\t\t}: {\n\t\t\tvisibleMessages: Model[] | null\n\t\t\tlatestMessageId: string | null\n\t\t}) => {\n\t\t\tconst message =\n\t\t\t\tvisibleMessages && visibleMessages.find(i => i.id === latestMessageId)\n\t\t\tif (\n\t\t\t\tvisibleMessages &&\n\t\t\t\tvisibleMessages.length &&\n\t\t\t\tonViewMessagesRef.current\n\t\t\t) {\n\t\t\t\tonViewMessagesRef.current({ visibleMessages })\n\t\t\t}\n\t\t\tif (message && message.id !== lastUploadedMessageId.current) {\n\t\t\t\tlastUploadedMessageId.current = message.id\n\t\t\t\tnew Room({ id: roomIdRef.current }).viewMessage(\n\t\t\t\t\tmessage.id,\n\t\t\t\t\tmessage.createdAt\n\t\t\t\t)\n\t\t\t}\n\t\t},\n\t\t[]\n\t)\n}\n"]}
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -1,2 +0,0 @@
1
- import{useRef,useMemo,useCallback,useEffect}from'react';import Room from'../../classes/Room';export default function(_ref){var messages=_ref.messages,roomId=_ref.roomId;var lastMessageId=useRef(null);var formatted=useMemo(function(){return messages||[];},[messages]);var messagesRef=useRef([]);var roomIdRef=useRef('');useEffect(function(){roomIdRef.current=roomId;messagesRef.current=formatted;},[formatted,roomId]);var onViewableItemsChanged=useCallback(function(info){info.viewableItems.forEach(function(item){if(!item.isViewable)return;var message=item.item;var id=message.id;var mostRecentMessageId=messagesRef.current[0].id;if(id===mostRecentMessageId&&lastMessageId.current!==id){lastMessageId.current=id;new Room({id:roomIdRef.current}).viewMessage(id,message.createdAt);}});},[]);return onViewableItemsChanged;}
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["index.ts"],"names":["useRef","useMemo","useCallback","useEffect","Room","messages","roomId","lastMessageId","formatted","messagesRef","roomIdRef","current","onViewableItemsChanged","info","viewableItems","forEach","item","isViewable","message","id","mostRecentMessageId","viewMessage","createdAt"],"mappings":"AAAA,OAASA,MAAT,CAAiBC,OAAjB,CAA0BC,WAA1B,CAAuCC,SAAvC,KAAwD,OAAxD,CAGA,MAAOC,CAAAA,IAAP,KAAiB,oBAAjB,CAEA,cAAe,eAMZ,IALFC,CAAAA,QAKE,MALFA,QAKE,CAJFC,MAIE,MAJFA,MAIE,CACF,GAAMC,CAAAA,aAAa,CAAGP,MAAM,CAAgB,IAAhB,CAA5B,CACA,GAAMQ,CAAAA,SAAkB,CAAGP,OAAO,CAAC,iBAAMI,CAAAA,QAAQ,EAAI,EAAlB,EAAD,CAAuB,CAACA,QAAD,CAAvB,CAAlC,CAEA,GAAMI,CAAAA,WAAW,CAAGT,MAAM,CAAU,EAAV,CAA1B,CACA,GAAMU,CAAAA,SAAS,CAAGV,MAAM,CAAC,EAAD,CAAxB,CAEAG,SAAS,CAAC,UAAM,CACfO,SAAS,CAACC,OAAV,CAAoBL,MAApB,CACAG,WAAW,CAACE,OAAZ,CAAsBH,SAAtB,CACA,CAHQ,CAGN,CAACA,SAAD,CAAYF,MAAZ,CAHM,CAAT,CAKA,GAAMM,CAAAA,sBAEqB,CAAGV,WAAW,CAAC,SAAAW,IAAI,CAAI,CACjDA,IAAI,CAACC,aAAL,CAAmBC,OAAnB,CAA2B,SAACC,IAAD,CAAqB,CAC/C,GAAI,CAACA,IAAI,CAACC,UAAV,CAAsB,OACtB,GAAMC,CAAAA,OAAO,CAAGF,IAAI,CAACA,IAArB,CACA,GAAMG,CAAAA,EAAE,CAAGD,OAAO,CAACC,EAAnB,CACA,GAAMC,CAAAA,mBAAmB,CAAGX,WAAW,CAACE,OAAZ,CAAoB,CAApB,EAAuBQ,EAAnD,CACA,GAAIA,EAAE,GAAKC,mBAAP,EAA8Bb,aAAa,CAACI,OAAd,GAA0BQ,EAA5D,CAAgE,CAC/DZ,aAAa,CAACI,OAAd,CAAwBQ,EAAxB,CACA,GAAIf,CAAAA,IAAJ,CAAS,CAAEe,EAAE,CAAET,SAAS,CAACC,OAAhB,CAAT,EAAoCU,WAApC,CAAgDF,EAAhD,CAAoDD,OAAO,CAACI,SAA5D,EACA,CACD,CATD,EAUA,CAXwC,CAWtC,EAXsC,CAFzC,CAcA,MAAOV,CAAAA,sBAAP,CACA","sourcesContent":["import { useRef, useMemo, useCallback, useEffect } from 'react'\nimport { NewMessageModel } from '../../classes/Message/types'\nimport { FlatListProps, ViewToken } from 'react-native'\nimport Room from '../../classes/Room'\n\nexport default function<Model extends NewMessageModel>({\n\tmessages,\n\troomId\n}: {\n\tmessages: Model[] | null\n\troomId: string\n}) {\n\tconst lastMessageId = useRef<string | null>(null)\n\tconst formatted: Model[] = useMemo(() => messages || [], [messages])\n\n\tconst messagesRef = useRef<Model[]>([])\n\tconst roomIdRef = useRef('')\n\n\tuseEffect(() => {\n\t\troomIdRef.current = roomId\n\t\tmessagesRef.current = formatted\n\t}, [formatted, roomId])\n\n\tconst onViewableItemsChanged: FlatListProps<\n\t\tModel\n\t>['onViewableItemsChanged'] = useCallback(info => {\n\t\tinfo.viewableItems.forEach((item: ViewToken) => {\n\t\t\tif (!item.isViewable) return\n\t\t\tconst message = item.item as Model\n\t\t\tconst id = message.id\n\t\t\tconst mostRecentMessageId = messagesRef.current[0].id\n\t\t\tif (id === mostRecentMessageId && lastMessageId.current !== id) {\n\t\t\t\tlastMessageId.current = id\n\t\t\t\tnew Room({ id: roomIdRef.current }).viewMessage(id, message.createdAt)\n\t\t\t}\n\t\t})\n\t}, [])\n\treturn onViewableItemsChanged\n}\n"]}
@@ -1,2 +0,0 @@
1
- export*from'./components';export*from'./classes';export*from'./hooks';import*as ChatType from'./components/Chat/types';import*as InboxType from'./components/Inbox/types';import*as MessageType from'./classes/Message/types';import*as RoomType from'./classes/Room/types';export var ChatTypes=ChatType;export var InboxTypes=InboxType;export var MessageTypes=MessageType;export var RoomTypes=RoomType;
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["index.ts"],"names":["ChatType","InboxType","MessageType","RoomType","ChatTypes","InboxTypes","MessageTypes","RoomTypes"],"mappings":"AAAA,WAAc,cAAd,CACA,WAAc,WAAd,CACA,WAAc,SAAd,CAEA,MAAO,GAAKA,CAAAA,QAAZ,KAA0B,yBAA1B,CACA,MAAO,GAAKC,CAAAA,SAAZ,KAA2B,0BAA3B,CACA,MAAO,GAAKC,CAAAA,WAAZ,KAA6B,yBAA7B,CACA,MAAO,GAAKC,CAAAA,QAAZ,KAA0B,sBAA1B,CAEA,MAAO,IAAMC,CAAAA,SAAS,CAAGJ,QAAlB,CACP,MAAO,IAAMK,CAAAA,UAAU,CAAGJ,SAAnB,CACP,MAAO,IAAMK,CAAAA,YAAY,CAAGJ,WAArB,CACP,MAAO,IAAMK,CAAAA,SAAS,CAAGJ,QAAlB","sourcesContent":["export * from './components'\nexport * from './classes'\nexport * from './hooks'\n\nimport * as ChatType from './components/Chat/types'\nimport * as InboxType from './components/Inbox/types'\nimport * as MessageType from './classes/Message/types'\nimport * as RoomType from './classes/Room/types'\n\nexport const ChatTypes = ChatType\nexport const InboxTypes = InboxType\nexport const MessageTypes = MessageType\nexport const RoomTypes = RoomType\n"]}
@@ -1,2 +0,0 @@
1
- declare const context: any;
2
- export default context;
@@ -1,4 +0,0 @@
1
- export interface ChatContextType {
2
- userId: string;
3
- authToken: string;
4
- }
@@ -1,14 +0,0 @@
1
- import { ChatConfig } from './types';
2
- export default class Chat {
3
- private chat;
4
- constructor(chat?: ChatConfig);
5
- get roomsCollection(): string;
6
- get messagesCollection(): string;
7
- get httpCallables(): {
8
- sendMessageFromFeed: string;
9
- sendMessageToPeople: string;
10
- sendMessageToGroup: string;
11
- createRoom: string;
12
- sendMessageToRooms: string;
13
- };
14
- }
@@ -1,21 +0,0 @@
1
- export declare type RoomPathFunc = (roomId: string) => string;
2
- export interface ChatConfig {
3
- roomsCollection?: string;
4
- messagesCollection?: string;
5
- httpCallables?: {
6
- sendMessageFromFeed: string;
7
- sendMessageToPeople: string;
8
- sendMessageToGroup: string;
9
- sendMessageToRooms: string;
10
- createRoom: string;
11
- };
12
- }
13
- export interface ChatModel {
14
- roomsCollection: string;
15
- messagesCollection: string;
16
- httpCallables: {
17
- sendMessageFromFeed: string;
18
- sendMessageToPeople: string;
19
- sendMessageToGroup: string;
20
- };
21
- }
@@ -1,2 +0,0 @@
1
- import { ExistingRoomModel } from '../Room/types';
2
- export declare type InboxModel = ExistingRoomModel[];
@@ -1,47 +0,0 @@
1
- import { MessageModel, RoomId, NewMessageModel, SendFromFeedRecipients } from './types';
2
- import { RoomMembers, RoomMember } from '../Room/types';
3
- import { ReactionOption } from '../Reaction/types';
4
- export default class {
5
- private message;
6
- constructor(message: MessageModel);
7
- /**
8
- * A function to send one message to many different existing rooms/group chats separately.
9
- *
10
- * @param recipients An array of rooms ids where this message will be sent to separately
11
- * @returns Promise that returns a room ID if there is only one (or promise that resolves as null if the message object isn't valid)
12
- */
13
- sendToRooms(recipients: string[]): Promise<import("firebase").functions.HttpsCallableResult>;
14
- /**
15
- * A function to send one message to many different people individually.
16
- * For each recipient, if a room for them doesn't exist, it will get created and the message will be added to it.
17
- * If the room does exist, the message will be added to it.
18
- *
19
- * @param recipients An array of user ids whom this message will be sent to separately
20
- * @returns Promise that returns a room ID (or promise that resolves as null if the message object isn't valid)
21
- */
22
- sendToPeople(recipients: string[]): Promise<import("firebase").functions.HttpsCallableResult>;
23
- /**
24
- * Sends message to a group. This is useful when you don't have a room id but do have a list of people you want to send a message to. If you want to send the message to them separately, try sendToPeople instead.
25
- * This function will create a group chat with the specified users if one doesn't exist yet. If it does exist already, then it will add to that existing room.
26
- * @param recipients Array of uids for people in the group this message should send to.
27
- * @returns Promise that returns a room ID (or promise that resolves as null if the message object isn't valid)
28
- */
29
- sendToGroup(recipients: string[]): Promise<import("firebase").functions.HttpsCallableResult>;
30
- /**
31
- * deprecated: fuck this function
32
- */
33
- sendFromFeed(to: SendFromFeedRecipients): Promise<any[]>;
34
- /**
35
- * Send message by adding it directly to the backend
36
- * @param roomId The id of the room you want to send this to. Could also be an array of ids, if the same message should go to multiple rooms.
37
- */
38
- send(roomId: RoomId): void;
39
- edit(roomId: string): Promise<void>;
40
- formatForRender(): NewMessageModel[] | NewMessageModel | null;
41
- formatForSend(): this;
42
- addToFirebase(roomId: RoomId): Promise<void>;
43
- updateOnFirebase(roomId: string): Promise<void>;
44
- getUsersWhoReacted(reaction: ReactionOption, { roomMembers }: {
45
- roomMembers: RoomMembers;
46
- }): RoomMember[];
47
- }
@@ -1,66 +0,0 @@
1
- import { FieldValue } from '@firebase/firestore-types';
2
- import { ReactionOption } from '../Reaction/types';
3
- export interface Message {
4
- id: string;
5
- }
6
- export interface NewMessageModel extends Omit<Message, 'roomId'> {
7
- text: string;
8
- createdAt: Date;
9
- user: {
10
- id: string;
11
- name: string;
12
- avatar: string;
13
- };
14
- system?: boolean;
15
- media?: MessageMedia;
16
- reactions?: {
17
- [option in ReactionOption]: string[];
18
- };
19
- }
20
- export interface MessageMediaWithUrl {
21
- url: string;
22
- uri?: string;
23
- height: number;
24
- width: number;
25
- contentType: 'video' | 'image';
26
- }
27
- export interface MessageMediaWithUri {
28
- url: string;
29
- uri?: string;
30
- height: number;
31
- width: number;
32
- contentType: 'video' | 'image';
33
- }
34
- export declare type MessageMedia = MessageMediaWithUrl | MessageMediaWithUri;
35
- export interface NewMessageFormattedForServer extends Omit<NewMessageModel, 'createdAt'> {
36
- createdAt: FieldValue;
37
- }
38
- export declare function isNewMessageModel(message: MessageModel): message is NewMessageModel;
39
- export declare function isNewMessageFormattedForServer(message: MessageModel): message is NewMessageFormattedForServer;
40
- export interface EditMessageModel extends Message {
41
- text?: string;
42
- }
43
- export declare type SendToRecipients = string[];
44
- export declare type RoomId = string | string[];
45
- export declare type MessageModel = Message | NewMessageModel[] | EditMessageModel | MessageModelDocument[] | NewMessageFormattedForServer[] | NewMessageFormattedForServer;
46
- export interface MessageModelDocument extends Omit<NewMessageModel, 'createdAt'> {
47
- id: string;
48
- createdAt: firebase.firestore.Timestamp;
49
- }
50
- export declare type SendFromFeedRecipient = {
51
- id: string;
52
- } | SendFromFeedRecipientArray;
53
- export interface SendFromFeedRecipientArray {
54
- recipients: {
55
- id: string;
56
- name: string;
57
- }[];
58
- }
59
- export declare const recipientHasId: (recipient: SendFromFeedRecipient) => recipient is {
60
- id: string;
61
- };
62
- export declare const recipientHasMembers: (recipient: SendFromFeedRecipient) => recipient is SendFromFeedRecipientArray;
63
- export declare type SendFromFeedRecipients = SendFromFeedRecipient[];
64
- export interface SendFromFeedModel extends Omit<NewMessageModel, 'id'> {
65
- recipients: SendFromFeedRecipientArray['recipients'];
66
- }
@@ -1,17 +0,0 @@
1
- import { ReactionConfig } from './types';
2
- import { LastMessageServer } from '../Room/types';
3
- export default class {
4
- private config;
5
- constructor(config: ReactionConfig);
6
- get path(): string;
7
- verb(): {
8
- add: string;
9
- remove: string;
10
- };
11
- add(): Promise<void>;
12
- remove(): Promise<void>;
13
- makeReactionDescriptionText(remove?: boolean): string;
14
- makeLastMessage(options: {
15
- remove?: boolean;
16
- }): LastMessageServer;
17
- }
@@ -1,33 +0,0 @@
1
- export interface ReactionConfig {
2
- myName?: string;
3
- messageId: string;
4
- roomId: string;
5
- text: string;
6
- reaction: ReactionOption;
7
- /**
8
- * An **optional** string or pure function to override the default description text.
9
- * The description text is used to create the last message that shows up in the inbox.
10
- *
11
- * By default, this will look something like: <name> <reaction>d "<message text>". For instance: Fernando liked "I want a pair of PATOS Shoes."
12
- *
13
- * If `null`, text will be an empty string.
14
- *
15
- * A verb for like will be 'liked', and if it's a removal, then it's 'unlike'. This pattern follows for other reactions too.
16
- *
17
- * @example
18
- * ```js
19
- * const reaction = new Reaction({
20
- * descriptionText: ({ reaction, name, text, verb, remove }) => remove ? \`${name} happily ${verb} ${text}\` : \`${name} sadly ${verb} ${text}\`,
21
- * text: message.text, roomId: room.id, messageId: message.id, text: message.text
22
- * })
23
- * ```
24
- */
25
- descriptionText?: null | string | ((info: {
26
- reaction: ReactionOption;
27
- name: string;
28
- text: string;
29
- verb: string;
30
- remove: boolean;
31
- }) => string);
32
- }
33
- export declare type ReactionOption = 'like' | 'love';
@@ -1,42 +0,0 @@
1
- import { RoomModel, RoomMembers } from './types';
2
- export default class {
3
- private room;
4
- constructor(room: RoomModel);
5
- get path(): string;
6
- get messagesPath(): string;
7
- getUnreadCount(): number;
8
- /**
9
- * Views message function for a room.
10
- *
11
- * To use this in a react component out-of-the-box, I recommend using the [[useViewMessage]] hook. It will handle all this for you.
12
- *
13
- * @param messageId ID of the message you're viewing
14
- * @param messageCreatedAt Timestamp of the message which you're viewing, found in message.createdAt
15
- *
16
- * @remarks
17
- * If you aren't using the useViewMessage hook:
18
- * This function should be used with care. You don't want to send 500 writes if someone views 500 messages.
19
- * You only want to send a read for the most recent message being viewed, assuming it's someone else's message.
20
- * Also, you should be memoizing the last message you sent that you viewed to avoid repeats. Again, this is all handled by useViewMessages.
21
- *
22
- * @returns Promise that only resolves while you're online.
23
- */
24
- viewMessage(messageId: string, messageCreatedAt: Date): Promise<void>;
25
- getArrayOfMembersOtherThanMe(): import("./types").RoomMember[];
26
- getName(): string;
27
- getInitials(maxNumberOfInitials?: number): string;
28
- /**
29
- * @returns
30
- * A promise.all array of responses. The first array is for adding a system message; the second is for updating the room object.
31
- */
32
- leave(): Promise<void | null>;
33
- join(): Promise<void> | null;
34
- addMembers(members: RoomMembers): Promise<void>;
35
- removeMembers(members: RoomMembers): Promise<void>;
36
- create(): Promise<void | null>;
37
- createViaCallable(): Promise<firebase.functions.HttpsCallableResult>;
38
- edit(): Promise<void> | null;
39
- getUsersTyping(): import("./types").RoomMember[];
40
- updateOnFirebase(): Promise<void>;
41
- addToFirebase(): Promise<void>;
42
- }
@@ -1,112 +0,0 @@
1
- import { FieldValue, Timestamp } from '@firebase/firestore-types';
2
- import * as firebase from 'firebase';
3
- export interface LastMessage {
4
- createdAt: Date;
5
- text: string;
6
- name: string;
7
- system: boolean;
8
- id: string;
9
- }
10
- export interface LastMessageServer extends Omit<LastMessage, 'createdAt'> {
11
- createdAt: FieldValue;
12
- }
13
- /**
14
- * Unread count schema in the members dictionary for each room
15
- */
16
- export interface UnreadCount {
17
- count: number;
18
- /**
19
- * The timestamp of the last time you cleared messages.
20
- */
21
- lastCleared: Date;
22
- /**
23
- * Details of the last message you saw.
24
- */
25
- lastSeen: {
26
- id: string;
27
- createdAt: Date;
28
- };
29
- }
30
- export interface UnreadCountDocument extends Omit<UnreadCount, 'lastCleared'> {
31
- lastCleared: firebase.firestore.Timestamp;
32
- }
33
- export interface UnreadCountServer extends Omit<UnreadCount, 'lastCleared'> {
34
- lastCleared: firebase.firestore.FieldValue;
35
- }
36
- export interface RoomPropertiesModel {
37
- id: string;
38
- avatar?: string;
39
- members?: RoomMembers;
40
- name?: string;
41
- }
42
- export interface Typing {
43
- state: 'typing' | 'nothing';
44
- lastChanged: typeof firebase.database.ServerValue.TIMESTAMP;
45
- }
46
- export interface RoomMember {
47
- typing?: Typing;
48
- exists: boolean;
49
- name: string;
50
- nickname?: string;
51
- avatar?: string;
52
- joinedAt: FieldValue;
53
- unreadCount?: UnreadCount;
54
- }
55
- export interface ExistingRoomMember {
56
- nickname?: string;
57
- avatar?: string;
58
- }
59
- export interface NewRoomMember extends RoomMember {
60
- }
61
- /**
62
- * Dictionary of members in the room.
63
- */
64
- export interface RoomMembers {
65
- [id: string]: RoomMember;
66
- }
67
- /**
68
- * Configuration for the room class. Members doesn't need to include me.
69
- *
70
- * @example
71
- * ```
72
- * const room = new Room(config: NewRoomModel)
73
- * await room.create()
74
- * ```
75
- */
76
- export interface NewRoomModel extends Omit<RoomPropertiesModel, 'id'> {
77
- members: RoomMembers;
78
- }
79
- export interface CreateCallableRoomModel extends Partial<RoomPropertiesModel> {
80
- recipients: string[];
81
- }
82
- export interface EditRoomModel extends Omit<RoomPropertiesModel, 'members'> {
83
- members?: RoomMembers;
84
- name?: string;
85
- lastMessage?: LastMessage;
86
- }
87
- export interface ExistingRoomModel extends RoomPropertiesModel {
88
- lastMessage: LastMessage;
89
- members: RoomMembers;
90
- unreadCount?: number;
91
- createdAt: FieldValue;
92
- lastEdited: FieldValue;
93
- currentMembers: string[];
94
- }
95
- export interface CreateRoomModel extends Omit<Omit<ExistingRoomModel, 'id'>, 'lastMessage'> {
96
- lastMessage: LastMessageServer;
97
- }
98
- export interface CreateRoomCallableModel extends Omit<RoomPropertiesModel, 'id'> {
99
- members: RoomMembers;
100
- }
101
- interface LastMessageDocument extends Omit<LastMessage, 'createdAt'> {
102
- createdAt: Timestamp;
103
- }
104
- export interface ExistingRoomDocument extends Omit<ExistingRoomModel, 'lastMessage'> {
105
- lastMessage: LastMessageDocument;
106
- }
107
- export declare type RoomModel = RoomPropertiesModel | NewRoomModel | ExistingRoomModel | CreateCallableRoomModel;
108
- export declare function currentUserExists(user: firebase.User | null): user is firebase.User;
109
- export declare function roomIsEditModel(room: RoomModel): room is EditRoomModel;
110
- export declare function roomIsNewModel(room: RoomModel): room is NewRoomModel;
111
- export declare function roomIsCreateCallable(room: RoomModel): room is CreateCallableRoomModel;
112
- export {};
@@ -1,4 +0,0 @@
1
- export { default as Reaction } from './Reaction';
2
- export { default as Message } from './Message';
3
- export { default as Room } from './Room';
4
- export { default as Chat } from './Chat';
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { AvatarProps } from '../Inbox/types';
3
- declare const _default: React.NamedExoticComponent<AvatarProps>;
4
- export default _default;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { BubbleProps } from '../types';
3
- declare const _default: React.NamedExoticComponent<BubbleProps>;
4
- export default _default;
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import { InputProps } from '../../types';
3
- declare const _default: React.MemoExoticComponent<{
4
- (props: InputProps<import("../../../../classes/Message/types").NewMessageModel>): JSX.Element;
5
- displayName: string;
6
- }>;
7
- export default _default;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SendButtonProps } from '../../types';
3
- declare const _default: React.MemoExoticComponent<(props: SendButtonProps<import("../../../../classes/Message/types").NewMessageModel>) => JSX.Element | null>;
4
- export default _default;
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- import { ComposerProps } from '../types';
3
- import { NewMessageModel } from '../../../classes/Message/types';
4
- declare const _default: React.MemoExoticComponent<{
5
- (props: ComposerProps<NewMessageModel>): JSX.Element;
6
- displayName: string;
7
- }>;
8
- export default _default;
@@ -1,7 +0,0 @@
1
- import React from 'react';
2
- import { MessageMedia } from '../../../../classes/Message/types';
3
- declare const _default: React.MemoExoticComponent<{
4
- (props: Pick<MessageMedia, "width" | "height" | "url" | "uri">): JSX.Element;
5
- displayName: string;
6
- }>;
7
- export default _default;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { MessageMedia } from '../../../classes/Message/types';
3
- declare const _default: React.MemoExoticComponent<({ contentType, ...props }: MessageMedia) => JSX.Element | null>;
4
- export default _default;
@@ -1,4 +0,0 @@
1
- import { FunctionComponent } from 'react';
2
- import { TouchableProps } from '../../types';
3
- declare const Touchable: FunctionComponent<TouchableProps>;
4
- export default Touchable;
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- import { MessageProps } from '../types';
3
- import { NewMessageModel } from '../../../classes/Message/types';
4
- declare const _default: React.MemoExoticComponent<{
5
- <Model extends NewMessageModel = NewMessageModel>(props: MessageProps<Model>): JSX.Element;
6
- displayName: string;
7
- }>;
8
- export default _default;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { SystemMessageProps } from '../types';
3
- declare const SystemMessage: React.MemoExoticComponent<(props: SystemMessageProps<import("../../../classes/Message/types").NewMessageModel>) => JSX.Element>;
4
- export default SystemMessage;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { TypingFooterProps } from '../types';
3
- declare const _default: React.MemoExoticComponent<({ typingText, containerStyle, numberOfUsersTyping, ...indicatorProps }: TypingFooterProps) => JSX.Element>;
4
- export default _default;