chat 1.0.6 → 3.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 (318) hide show
  1. package/package.json +2 -96
  2. package/readme.md +1 -201
  3. package/lib/module/ChatContext/index.js +0 -2
  4. package/lib/module/ChatContext/index.js.map +0 -1
  5. package/lib/module/ChatContext/types.js +0 -2
  6. package/lib/module/ChatContext/types.js.map +0 -1
  7. package/lib/module/classes/Chat/index.js +0 -2
  8. package/lib/module/classes/Chat/index.js.map +0 -1
  9. package/lib/module/classes/Chat/types.js +0 -2
  10. package/lib/module/classes/Chat/types.js.map +0 -1
  11. package/lib/module/classes/Inbox/index.js +0 -2
  12. package/lib/module/classes/Inbox/index.js.map +0 -1
  13. package/lib/module/classes/Inbox/types.js +0 -2
  14. package/lib/module/classes/Inbox/types.js.map +0 -1
  15. package/lib/module/classes/Message/index.js +0 -2
  16. package/lib/module/classes/Message/index.js.map +0 -1
  17. package/lib/module/classes/Message/types.js +0 -2
  18. package/lib/module/classes/Message/types.js.map +0 -1
  19. package/lib/module/classes/Reaction/index.js +0 -2
  20. package/lib/module/classes/Reaction/index.js.map +0 -1
  21. package/lib/module/classes/Reaction/types.js +0 -2
  22. package/lib/module/classes/Reaction/types.js.map +0 -1
  23. package/lib/module/classes/Room/index.js +0 -2
  24. package/lib/module/classes/Room/index.js.map +0 -1
  25. package/lib/module/classes/Room/types.js +0 -2
  26. package/lib/module/classes/Room/types.js.map +0 -1
  27. package/lib/module/classes/index.js +0 -2
  28. package/lib/module/classes/index.js.map +0 -1
  29. package/lib/module/components/Avatar/index.js +0 -2
  30. package/lib/module/components/Avatar/index.js.map +0 -1
  31. package/lib/module/components/Chat/Bubble/index.js +0 -2
  32. package/lib/module/components/Chat/Bubble/index.js.map +0 -1
  33. package/lib/module/components/Chat/Composer/Input/index.js +0 -2
  34. package/lib/module/components/Chat/Composer/Input/index.js.map +0 -1
  35. package/lib/module/components/Chat/Composer/Send/index.js +0 -2
  36. package/lib/module/components/Chat/Composer/Send/index.js.map +0 -1
  37. package/lib/module/components/Chat/Composer/index.js +0 -2
  38. package/lib/module/components/Chat/Composer/index.js.map +0 -1
  39. package/lib/module/components/Chat/Media/Image/index.js +0 -2
  40. package/lib/module/components/Chat/Media/Image/index.js.map +0 -1
  41. package/lib/module/components/Chat/Media/index.js +0 -2
  42. package/lib/module/components/Chat/Media/index.js.map +0 -1
  43. package/lib/module/components/Chat/Message/Swiper/Action/index.js +0 -2
  44. package/lib/module/components/Chat/Message/Swiper/Action/index.js.map +0 -1
  45. package/lib/module/components/Chat/Message/Swiper/index.js +0 -2
  46. package/lib/module/components/Chat/Message/Swiper/index.js.map +0 -1
  47. package/lib/module/components/Chat/Message/Touchable/index.js +0 -2
  48. package/lib/module/components/Chat/Message/Touchable/index.js.map +0 -1
  49. package/lib/module/components/Chat/Message/index.js +0 -2
  50. package/lib/module/components/Chat/Message/index.js.map +0 -1
  51. package/lib/module/components/Chat/SystemMessage/index.js +0 -2
  52. package/lib/module/components/Chat/SystemMessage/index.js.map +0 -1
  53. package/lib/module/components/Chat/TypingFooter/index.js +0 -2
  54. package/lib/module/components/Chat/TypingFooter/index.js.map +0 -1
  55. package/lib/module/components/Chat/index.js +0 -2
  56. package/lib/module/components/Chat/index.js.map +0 -1
  57. package/lib/module/components/Chat/types.js +0 -2
  58. package/lib/module/components/Chat/types.js.map +0 -1
  59. package/lib/module/components/Chat-Old/Bubble/index.js +0 -2
  60. package/lib/module/components/Chat-Old/Bubble/index.js.map +0 -1
  61. package/lib/module/components/Chat-Old/Composer/Input/index.js +0 -2
  62. package/lib/module/components/Chat-Old/Composer/Input/index.js.map +0 -1
  63. package/lib/module/components/Chat-Old/Composer/Send/index.js +0 -2
  64. package/lib/module/components/Chat-Old/Composer/Send/index.js.map +0 -1
  65. package/lib/module/components/Chat-Old/Composer/index.js +0 -2
  66. package/lib/module/components/Chat-Old/Composer/index.js.map +0 -1
  67. package/lib/module/components/Chat-Old/Message/index.js +0 -2
  68. package/lib/module/components/Chat-Old/Message/index.js.map +0 -1
  69. package/lib/module/components/Chat-Old/Swiper/Action/index.js +0 -2
  70. package/lib/module/components/Chat-Old/Swiper/Action/index.js.map +0 -1
  71. package/lib/module/components/Chat-Old/Swiper/index.js +0 -2
  72. package/lib/module/components/Chat-Old/Swiper/index.js.map +0 -1
  73. package/lib/module/components/Chat-Old/SystemMessage/index.js +0 -2
  74. package/lib/module/components/Chat-Old/SystemMessage/index.js.map +0 -1
  75. package/lib/module/components/Chat-Old/index.js +0 -2
  76. package/lib/module/components/Chat-Old/index.js.map +0 -1
  77. package/lib/module/components/Chat-Old/types.js +0 -2
  78. package/lib/module/components/Chat-Old/types.js.map +0 -1
  79. package/lib/module/components/ChatProvider/index.js +0 -2
  80. package/lib/module/components/ChatProvider/index.js.map +0 -1
  81. package/lib/module/components/ChatProvider/types.js +0 -2
  82. package/lib/module/components/ChatProvider/types.js.map +0 -1
  83. package/lib/module/components/Inbox/Item/Circle/index.js +0 -2
  84. package/lib/module/components/Inbox/Item/Circle/index.js.map +0 -1
  85. package/lib/module/components/Inbox/Item/Circle/types.js +0 -2
  86. package/lib/module/components/Inbox/Item/Circle/types.js.map +0 -1
  87. package/lib/module/components/Inbox/Item/Initials/index.js +0 -2
  88. package/lib/module/components/Inbox/Item/Initials/index.js.map +0 -1
  89. package/lib/module/components/Inbox/Item/ItemDate/index.js +0 -2
  90. package/lib/module/components/Inbox/Item/ItemDate/index.js.map +0 -1
  91. package/lib/module/components/Inbox/Item/Separator/index.js +0 -2
  92. package/lib/module/components/Inbox/Item/Separator/index.js.map +0 -1
  93. package/lib/module/components/Inbox/Item/Subtitle/index.js +0 -2
  94. package/lib/module/components/Inbox/Item/Subtitle/index.js.map +0 -1
  95. package/lib/module/components/Inbox/Item/Swipeable/index.js +0 -2
  96. package/lib/module/components/Inbox/Item/Swipeable/index.js.map +0 -1
  97. package/lib/module/components/Inbox/Item/Title/index.js +0 -2
  98. package/lib/module/components/Inbox/Item/Title/index.js.map +0 -1
  99. package/lib/module/components/Inbox/Item/UnreadIndicator/index.js +0 -2
  100. package/lib/module/components/Inbox/Item/UnreadIndicator/index.js.map +0 -1
  101. package/lib/module/components/Inbox/Item/index.js +0 -2
  102. package/lib/module/components/Inbox/Item/index.js.map +0 -1
  103. package/lib/module/components/Inbox/index.js +0 -2
  104. package/lib/module/components/Inbox/index.js.map +0 -1
  105. package/lib/module/components/Inbox/question.md +0 -21
  106. package/lib/module/components/Inbox/readme.md +0 -21
  107. package/lib/module/components/Inbox/types.js +0 -2
  108. package/lib/module/components/Inbox/types.js.map +0 -1
  109. package/lib/module/components/RoomCreator/Content/Footer/Button/index.js +0 -2
  110. package/lib/module/components/RoomCreator/Content/Footer/Button/index.js.map +0 -1
  111. package/lib/module/components/RoomCreator/Content/Footer/Input/index.js +0 -2
  112. package/lib/module/components/RoomCreator/Content/Footer/Input/index.js.map +0 -1
  113. package/lib/module/components/RoomCreator/Content/Footer/index.js +0 -2
  114. package/lib/module/components/RoomCreator/Content/Footer/index.js.map +0 -1
  115. package/lib/module/components/RoomCreator/Content/Item/Icon/index.js +0 -2
  116. package/lib/module/components/RoomCreator/Content/Item/Icon/index.js.map +0 -1
  117. package/lib/module/components/RoomCreator/Content/Item/index.js +0 -2
  118. package/lib/module/components/RoomCreator/Content/Item/index.js.map +0 -1
  119. package/lib/module/components/RoomCreator/Content/index.js +0 -2
  120. package/lib/module/components/RoomCreator/Content/index.js.map +0 -1
  121. package/lib/module/components/RoomCreator/Header/index.js +0 -2
  122. package/lib/module/components/RoomCreator/Header/index.js.map +0 -1
  123. package/lib/module/components/RoomCreator/index.js +0 -2
  124. package/lib/module/components/RoomCreator/index.js.map +0 -1
  125. package/lib/module/components/RoomCreator/types.js +0 -2
  126. package/lib/module/components/RoomCreator/types.js.map +0 -1
  127. package/lib/module/components/TypingIndicator/index.js +0 -2
  128. package/lib/module/components/TypingIndicator/index.js.map +0 -1
  129. package/lib/module/components/index.js +0 -2
  130. package/lib/module/components/index.js.map +0 -1
  131. package/lib/module/helpers/getInitials.js +0 -2
  132. package/lib/module/helpers/getInitials.js.map +0 -1
  133. package/lib/module/helpers/sortByAvatar.js +0 -2
  134. package/lib/module/helpers/sortByAvatar.js.map +0 -1
  135. package/lib/module/hooks/index.js +0 -2
  136. package/lib/module/hooks/index.js.map +0 -1
  137. package/lib/module/hooks/useCreateRoom/index.js +0 -2
  138. package/lib/module/hooks/useCreateRoom/index.js.map +0 -1
  139. package/lib/module/hooks/useCreator/index.js +0 -2
  140. package/lib/module/hooks/useCreator/index.js.map +0 -1
  141. package/lib/module/hooks/useInbox/index.js +0 -2
  142. package/lib/module/hooks/useInbox/index.js.map +0 -1
  143. package/lib/module/hooks/useInbox/types.js +0 -2
  144. package/lib/module/hooks/useInbox/types.js.map +0 -1
  145. package/lib/module/hooks/useMessages/index.js +0 -2
  146. package/lib/module/hooks/useMessages/index.js.map +0 -1
  147. package/lib/module/hooks/useMessages/types.js +0 -2
  148. package/lib/module/hooks/useMessages/types.js.map +0 -1
  149. package/lib/module/hooks/useRoom/index.js +0 -2
  150. package/lib/module/hooks/useRoom/index.js.map +0 -1
  151. package/lib/module/hooks/useRoom/types.js +0 -2
  152. package/lib/module/hooks/useRoom/types.js.map +0 -1
  153. package/lib/module/hooks/useSend/useSendToGroup/index.js +0 -2
  154. package/lib/module/hooks/useSend/useSendToGroup/index.js.map +0 -1
  155. package/lib/module/hooks/useSend/useSendToPeople/index.js +0 -2
  156. package/lib/module/hooks/useSend/useSendToPeople/index.js.map +0 -1
  157. package/lib/module/hooks/useTyping/index.js +0 -2
  158. package/lib/module/hooks/useTyping/index.js.map +0 -1
  159. package/lib/module/hooks/useTypingOLD/index.js +0 -2
  160. package/lib/module/hooks/useTypingOLD/index.js.map +0 -1
  161. package/lib/module/hooks/useTypingOLD/types.js +0 -2
  162. package/lib/module/hooks/useTypingOLD/types.js.map +0 -1
  163. package/lib/module/hooks/useViewMessages/index.js +0 -2
  164. package/lib/module/hooks/useViewMessages/index.js.map +0 -1
  165. package/lib/module/hooks/useViewMessages/types.js +0 -2
  166. package/lib/module/hooks/useViewMessages/types.js.map +0 -1
  167. package/lib/module/hooks/useViewMessagesOld/index.js +0 -2
  168. package/lib/module/hooks/useViewMessagesOld/index.js.map +0 -1
  169. package/lib/module/index.js +0 -2
  170. package/lib/module/index.js.map +0 -1
  171. package/lib/typescript/ChatContext/index.d.ts +0 -2
  172. package/lib/typescript/ChatContext/types.d.ts +0 -4
  173. package/lib/typescript/classes/Chat/index.d.ts +0 -14
  174. package/lib/typescript/classes/Chat/types.d.ts +0 -21
  175. package/lib/typescript/classes/Inbox/types.d.ts +0 -2
  176. package/lib/typescript/classes/Message/index.d.ts +0 -47
  177. package/lib/typescript/classes/Message/types.d.ts +0 -66
  178. package/lib/typescript/classes/Reaction/index.d.ts +0 -17
  179. package/lib/typescript/classes/Reaction/types.d.ts +0 -33
  180. package/lib/typescript/classes/Room/index.d.ts +0 -42
  181. package/lib/typescript/classes/Room/types.d.ts +0 -112
  182. package/lib/typescript/classes/index.d.ts +0 -4
  183. package/lib/typescript/components/Avatar/index.d.ts +0 -4
  184. package/lib/typescript/components/Chat/Bubble/index.d.ts +0 -4
  185. package/lib/typescript/components/Chat/Composer/Input/index.d.ts +0 -7
  186. package/lib/typescript/components/Chat/Composer/Send/index.d.ts +0 -4
  187. package/lib/typescript/components/Chat/Composer/index.d.ts +0 -8
  188. package/lib/typescript/components/Chat/Media/Image/index.d.ts +0 -7
  189. package/lib/typescript/components/Chat/Media/index.d.ts +0 -4
  190. package/lib/typescript/components/Chat/Message/Touchable/index.d.ts +0 -4
  191. package/lib/typescript/components/Chat/Message/index.d.ts +0 -8
  192. package/lib/typescript/components/Chat/SystemMessage/index.d.ts +0 -4
  193. package/lib/typescript/components/Chat/TypingFooter/index.d.ts +0 -4
  194. package/lib/typescript/components/Chat/index.d.ts +0 -8
  195. package/lib/typescript/components/Chat/types.d.ts +0 -844
  196. package/lib/typescript/components/ChatProvider/index.d.ts +0 -10
  197. package/lib/typescript/components/ChatProvider/types.d.ts +0 -7
  198. package/lib/typescript/components/Inbox/Item/Initials/index.d.ts +0 -4
  199. package/lib/typescript/components/Inbox/Item/ItemDate/index.d.ts +0 -4
  200. package/lib/typescript/components/Inbox/Item/Separator/index.d.ts +0 -6
  201. package/lib/typescript/components/Inbox/Item/Subtitle/index.d.ts +0 -3
  202. package/lib/typescript/components/Inbox/Item/Swipeable/index.d.ts +0 -4
  203. package/lib/typescript/components/Inbox/Item/Title/index.d.ts +0 -3
  204. package/lib/typescript/components/Inbox/Item/UnreadIndicator/index.d.ts +0 -4
  205. package/lib/typescript/components/Inbox/Item/index.d.ts +0 -6
  206. package/lib/typescript/components/Inbox/index.d.ts +0 -4
  207. package/lib/typescript/components/Inbox/types.d.ts +0 -304
  208. package/lib/typescript/components/RoomCreator/Content/Footer/Button/index.d.ts +0 -4
  209. package/lib/typescript/components/RoomCreator/Content/Footer/Input/index.d.ts +0 -4
  210. package/lib/typescript/components/RoomCreator/Content/Footer/index.d.ts +0 -3
  211. package/lib/typescript/components/RoomCreator/Content/Item/Icon/index.d.ts +0 -4
  212. package/lib/typescript/components/RoomCreator/Content/Item/index.d.ts +0 -4
  213. package/lib/typescript/components/RoomCreator/Content/index.d.ts +0 -4
  214. package/lib/typescript/components/RoomCreator/Header/index.d.ts +0 -4
  215. package/lib/typescript/components/RoomCreator/index.d.ts +0 -4
  216. package/lib/typescript/components/RoomCreator/types.d.ts +0 -208
  217. package/lib/typescript/components/TypingIndicator/index.d.ts +0 -9
  218. package/lib/typescript/components/index.d.ts +0 -12
  219. package/lib/typescript/helpers/getInitials.d.ts +0 -1
  220. package/lib/typescript/hooks/index.d.ts +0 -8
  221. package/lib/typescript/hooks/useCreator/index.d.ts +0 -27
  222. package/lib/typescript/hooks/useInbox/index.d.ts +0 -29
  223. package/lib/typescript/hooks/useInbox/types.d.ts +0 -5
  224. package/lib/typescript/hooks/useMessages/index.d.ts +0 -24
  225. package/lib/typescript/hooks/useMessages/types.d.ts +0 -5
  226. package/lib/typescript/hooks/useRoom/index.d.ts +0 -26
  227. package/lib/typescript/hooks/useRoom/types.d.ts +0 -5
  228. package/lib/typescript/hooks/useSend/useSendToGroup/index.d.ts +0 -6
  229. package/lib/typescript/hooks/useSend/useSendToPeople/index.d.ts +0 -6
  230. package/lib/typescript/hooks/useTyping/index.d.ts +0 -36
  231. package/lib/typescript/hooks/useViewMessages/index.d.ts +0 -18
  232. package/lib/typescript/hooks/useViewMessages/types.d.ts +0 -20
  233. package/lib/typescript/index.d.ts +0 -11
  234. package/src/ChatContext/index.tsx +0 -9
  235. package/src/ChatContext/types.ts +0 -4
  236. package/src/classes/Chat/index.ts +0 -46
  237. package/src/classes/Chat/types.ts +0 -23
  238. package/src/classes/Inbox/index.ts +0 -12
  239. package/src/classes/Inbox/types.ts +0 -3
  240. package/src/classes/Message/index.ts +0 -310
  241. package/src/classes/Message/types.ts +0 -118
  242. package/src/classes/Reaction/index.ts +0 -108
  243. package/src/classes/Reaction/types.ts +0 -37
  244. package/src/classes/Room/index.ts +0 -323
  245. package/src/classes/Room/types.ts +0 -161
  246. package/src/classes/index.ts +0 -4
  247. package/src/components/Avatar/index.tsx +0 -25
  248. package/src/components/Chat/Bubble/index.tsx +0 -139
  249. package/src/components/Chat/Composer/Input/index.tsx +0 -45
  250. package/src/components/Chat/Composer/Send/index.tsx +0 -51
  251. package/src/components/Chat/Composer/index.tsx +0 -184
  252. package/src/components/Chat/Media/Image/index.tsx +0 -26
  253. package/src/components/Chat/Media/index.tsx +0 -11
  254. package/src/components/Chat/Message/Swiper/Action/index.tsx +0 -7
  255. package/src/components/Chat/Message/Swiper/index.tsx +0 -32
  256. package/src/components/Chat/Message/Touchable/index.tsx +0 -60
  257. package/src/components/Chat/Message/index.tsx +0 -328
  258. package/src/components/Chat/SystemMessage/index.tsx +0 -44
  259. package/src/components/Chat/TypingFooter/index.tsx +0 -48
  260. package/src/components/Chat/index.tsx +0 -592
  261. package/src/components/Chat/types.ts +0 -911
  262. package/src/components/Chat-Old/Bubble/index.tsx +0 -58
  263. package/src/components/Chat-Old/Composer/Input/index.tsx +0 -34
  264. package/src/components/Chat-Old/Composer/Send/index.tsx +0 -37
  265. package/src/components/Chat-Old/Composer/index.tsx +0 -131
  266. package/src/components/Chat-Old/Message/index.tsx +0 -160
  267. package/src/components/Chat-Old/Swiper/Action/index.tsx +0 -7
  268. package/src/components/Chat-Old/Swiper/index.tsx +0 -30
  269. package/src/components/Chat-Old/SystemMessage/index.tsx +0 -44
  270. package/src/components/Chat-Old/index.tsx +0 -356
  271. package/src/components/Chat-Old/types.ts +0 -752
  272. package/src/components/ChatProvider/index.tsx +0 -31
  273. package/src/components/ChatProvider/types.ts +0 -8
  274. package/src/components/Inbox/Item/Circle/index.tsx +0 -47
  275. package/src/components/Inbox/Item/Circle/types.ts +0 -8
  276. package/src/components/Inbox/Item/Initials/index.tsx +0 -41
  277. package/src/components/Inbox/Item/ItemDate/index.tsx +0 -26
  278. package/src/components/Inbox/Item/Separator/index.tsx +0 -13
  279. package/src/components/Inbox/Item/Subtitle/index.tsx +0 -23
  280. package/src/components/Inbox/Item/Swipeable/index.tsx +0 -143
  281. package/src/components/Inbox/Item/Title/index.tsx +0 -23
  282. package/src/components/Inbox/Item/UnreadIndicator/index.tsx +0 -84
  283. package/src/components/Inbox/Item/index.tsx +0 -307
  284. package/src/components/Inbox/index.tsx +0 -315
  285. package/src/components/Inbox/question.md +0 -21
  286. package/src/components/Inbox/readme.md +0 -21
  287. package/src/components/Inbox/types.ts +0 -371
  288. package/src/components/RoomCreator/Content/Footer/Button/index.tsx +0 -55
  289. package/src/components/RoomCreator/Content/Footer/Input/index.tsx +0 -27
  290. package/src/components/RoomCreator/Content/Footer/index.tsx +0 -72
  291. package/src/components/RoomCreator/Content/Item/Icon/index.tsx +0 -16
  292. package/src/components/RoomCreator/Content/Item/index.tsx +0 -87
  293. package/src/components/RoomCreator/Content/index.tsx +0 -75
  294. package/src/components/RoomCreator/Header/index.tsx +0 -74
  295. package/src/components/RoomCreator/index.tsx +0 -177
  296. package/src/components/RoomCreator/types.ts +0 -233
  297. package/src/components/TypingIndicator/index.tsx +0 -169
  298. package/src/components/index.ts +0 -18
  299. package/src/helpers/getInitials.ts +0 -11
  300. package/src/helpers/sortByAvatar.ts +0 -1
  301. package/src/hooks/index.ts +0 -8
  302. package/src/hooks/useCreateRoom/index.ts +0 -34
  303. package/src/hooks/useCreator/index.ts +0 -33
  304. package/src/hooks/useInbox/index.ts +0 -76
  305. package/src/hooks/useInbox/types.ts +0 -6
  306. package/src/hooks/useMessages/index.ts +0 -109
  307. package/src/hooks/useMessages/types.ts +0 -6
  308. package/src/hooks/useRoom/index.ts +0 -82
  309. package/src/hooks/useRoom/types.ts +0 -6
  310. package/src/hooks/useSend/useSendToGroup/index.ts +0 -38
  311. package/src/hooks/useSend/useSendToPeople/index.ts +0 -38
  312. package/src/hooks/useTyping/index.ts +0 -154
  313. package/src/hooks/useTypingOLD/index.ts +0 -67
  314. package/src/hooks/useTypingOLD/types.ts +0 -7
  315. package/src/hooks/useViewMessages/index.ts +0 -61
  316. package/src/hooks/useViewMessages/types.ts +0 -22
  317. package/src/hooks/useViewMessagesOld/index.ts +0 -39
  318. package/src/index.ts +0 -13
@@ -1,74 +0,0 @@
1
- import React from 'react'
2
- import { View, Text, StyleSheet, Image } from 'react-native'
3
- import { RoomCreatorHeaderProps } from '../types'
4
- import Animated from 'react-native-reanimated'
5
-
6
- export default (props: RoomCreatorHeaderProps) => {
7
- return (
8
- <Animated.View
9
- style={[
10
- styles.container,
11
- { backgroundColor: props.backgroundColor },
12
- props.containerStyle
13
- ]}
14
- >
15
- <View style={[styles.notchContainer]}>
16
- <View style={styles.notch} />
17
- </View>
18
- <View style={styles.wrapper}>
19
- {!!props.image && (
20
- <View style={[styles.imageContainer, props.imageStyle]}>
21
- <Image style={[styles.image]} source={{ uri: props.image }} />
22
- </View>
23
- )}
24
- <View>
25
- {!!props.title && (
26
- <Text style={[styles.text, props.titleStyle]}>{props.title}</Text>
27
- )}
28
- {!!props.subtitle && (
29
- <Text style={[props.subtitleStyle]}>{props.subtitle}</Text>
30
- )}
31
- </View>
32
- </View>
33
- </Animated.View>
34
- )
35
- }
36
-
37
- const styles = StyleSheet.create({
38
- container: {
39
- // height: 75,
40
- borderTopRightRadius: 10,
41
- borderTopLeftRadius: 10,
42
- overflow: 'hidden',
43
- backgroundColor: 'white',
44
- borderBottomColor: 'lightgray',
45
- borderBottomWidth: 1,
46
- padding: 10,
47
- zIndex: -1
48
- },
49
- wrapper: {
50
- flexDirection: 'row'
51
- },
52
- text: {
53
- fontWeight: 'bold',
54
- fontSize: 18
55
- },
56
- notchContainer: {
57
- alignItems: 'center',
58
- paddingVertical: 10
59
- },
60
- notch: {
61
- width: 40,
62
- height: 5,
63
- borderRadius: 5,
64
- backgroundColor: 'lightgray'
65
- },
66
- image: {
67
- ...StyleSheet.absoluteFillObject
68
- },
69
- imageContainer: {
70
- height: 80,
71
- width: 80,
72
- marginRight: 10
73
- }
74
- })
@@ -1,177 +0,0 @@
1
- import React, { useMemo, useRef, useState, useEffect } from 'react'
2
- import BottomSheet from 'reanimated-bottom-sheet'
3
- import Header from './Header'
4
- import Content from './Content'
5
- import Animated from 'react-native-reanimated'
6
- import {
7
- RoomCreatorProps,
8
- Selected,
9
- RoomCreatorContentProps,
10
- RoomCreatorHeaderProps
11
- } from './types'
12
-
13
- const { Value, useCode, block, cond, eq, call, and } = Animated
14
-
15
- const initialSelected: Selected = {}
16
-
17
- function RoomCreator(props: RoomCreatorProps) {
18
- const sheetRef = useRef<BottomSheet>(null)
19
- const callbackNode = useMemo(() => props.callbackNode || new Value(1), [
20
- props.callbackNode
21
- ])
22
- const [selectedState, setSelected] = useState<Selected>(initialSelected)
23
- const [text, setText] = useState('')
24
-
25
- const ref = props.sheetRef !== undefined ? props.sheetRef : sheetRef
26
-
27
- // should we handle selected state or not
28
- const selected = props.selected || selectedState
29
-
30
- const ready = useMemo(
31
- () =>
32
- props.isReadyFunc
33
- ? props.isReadyFunc(selected)
34
- : !!Object.keys(selected).filter(Boolean).length,
35
- [props, selected]
36
- )
37
-
38
- const mounted = useRef(0)
39
-
40
- useCode(
41
- () =>
42
- block([
43
- cond(
44
- // if the sheet just opened
45
- eq(callbackNode, 1),
46
- call([], onDidClose),
47
- // if the sheet just closed
48
- cond(
49
- and(eq(callbackNode, 0), (mounted.current, 1)),
50
- call([], onDidOpen)
51
- )
52
- )
53
- ]),
54
- [callbackNode, onDidClose, onDidOpen]
55
- )
56
-
57
- useEffect(() => {
58
- if (!mounted.current) mounted.current = 1
59
- }, [])
60
-
61
- function reset() {
62
- setSelected(initialSelected)
63
- setText('')
64
- }
65
-
66
- const toggleSelected = (id: string) => {
67
- if (props.onSelectItem) return props.onSelectItem(id)
68
-
69
- setSelected(currentlySelected => {
70
- const user = props.users.find(u => u.id === id)
71
- if (currentlySelected[id] || !user) {
72
- const { [id]: pressed, ...ommitted } = currentlySelected
73
- return ommitted
74
- }
75
- return {
76
- ...currentlySelected,
77
- [id]: user.type
78
- }
79
- })
80
- }
81
-
82
- const open = () => ref.current && ref.current.snapTo(1)
83
- const close = () => ref.current && ref.current.snapTo(0)
84
-
85
- if (props.creatorRef) {
86
- props.creatorRef.current = {
87
- open,
88
- close
89
- }
90
- }
91
-
92
- // useEffect(() => {
93
- // if (props.isOpen === true) open()
94
- // else close()
95
- // }, [props.isOpen])
96
-
97
- function onDidClose() {
98
- if (props.onDidClose) props.onDidClose()
99
- reset()
100
- }
101
-
102
- function onDidOpen() {
103
- if (props.onDidOpen) props.onDidOpen()
104
- }
105
-
106
- const renderHeader = () => {
107
- const headerProps: RoomCreatorHeaderProps = {
108
- callbackNode,
109
- image: props.headerImage,
110
- imageStyle: props.headerImageStyle,
111
- subtitle: props.headerSubtitle,
112
- subtitleStyle: props.headerSubtitleStyle,
113
- title: props.headerTitle || 'New Message',
114
- titleStyle: props.headerTitleStyle,
115
- backgroundColor: props.headerBackgroundColor || '#f8f8f8',
116
- containerStyle: props.headerContainerStyle
117
- }
118
- if (props.renderHeader) return props.renderHeader(headerProps)
119
- if (props.renderHeader === null) return null
120
-
121
- return <Header {...headerProps} />
122
- }
123
-
124
- const renderContent = () => {
125
- const contentProps: RoomCreatorContentProps = {
126
- toggleSelected,
127
- selected,
128
- renderFooter: props.renderFooter,
129
- buttons: props.buttons,
130
- renderButton: props.renderButton,
131
- ButtonComponent: props.ButtonComponent,
132
- users: props.users,
133
- renderItem: props.renderItem,
134
- ready,
135
- renderSelectedIcon: props.renderSelectedIcon,
136
- selectedIconActiveColor: props.selectedIconActiveColor,
137
- selectedIconInactiveColor: props.selectedIconInactiveColor,
138
- enableTextInput: props.enableTextInput,
139
- inputContainerStyle: props.inputContainerStyle,
140
- inputStyle: props.inputStyle,
141
- showInputWhenNotReady: props.showInputWhenNotReady,
142
- inputProps: props.inputProps,
143
- onChangeText: setText,
144
- text
145
- }
146
- if (props.renderContent) return props.renderContent(contentProps)
147
- if (props.renderContent === null) return null
148
-
149
- return <Content {...contentProps} />
150
- }
151
-
152
- const snapPoints = useMemo(() => props.snapPoints || ['0%', '90%'], [
153
- props.snapPoints
154
- ])
155
-
156
- const initialSnap = props.startOpen ? 1 : 0
157
-
158
- const renderSheet = () => {
159
- return (
160
- <BottomSheet
161
- {...{ initialSnap }}
162
- {...props.sheetProps}
163
- {...{
164
- renderHeader,
165
- renderContent,
166
- snapPoints,
167
- callbackNode,
168
- ref
169
- }}
170
- />
171
- )
172
- }
173
-
174
- return <>{renderSheet()}</>
175
- }
176
-
177
- export default RoomCreator
@@ -1,233 +0,0 @@
1
- import { ReactNode, ComponentType, ReactElement } from 'react'
2
- import Animated from 'react-native-reanimated'
3
- import BottomSheet from 'reanimated-bottom-sheet'
4
- import {
5
- NewMessageModel,
6
- SendFromFeedRecipients,
7
- SendFromFeedRecipientArray
8
- } from '../../classes/Message/types'
9
- import { RoomMembers } from '../../classes/Room/types'
10
- import {
11
- TextStyle,
12
- StyleProp,
13
- ImageStyle,
14
- ViewStyle,
15
- TextInputProps
16
- } from 'react-native'
17
- // import { RoomCreatorItemProps } from './types'
18
-
19
- export interface RoomCreatorRef {
20
- open: () => void
21
- close: () => void
22
- }
23
-
24
- interface RoomCreatorItem extends User {
25
- type: Selected[keyof Selected]
26
- }
27
-
28
- export interface RoomCreatorProps {
29
- renderHeader?: null | ((props: RoomCreatorHeaderProps) => ReactNode)
30
- renderContent?: null | ((props: RoomCreatorContentProps) => ReactNode)
31
- snapPoints?: [string, string] | [number, number]
32
- callbackNode?: Animated.Value<number>
33
- sheetProps?: Omit<BottomSheet['props'], 'snapPoints'>
34
- sheetRef?: React.MutableRefObject<BottomSheet>
35
- creatorRef?: React.MutableRefObject<RoomCreatorRef>
36
- message?: null | NewMessageModel
37
- renderFooter?: null | ((props: RoomCreatorFooterProps) => ReactNode)
38
- disableSendAsGroup?: boolean
39
- onSendSeparately?: RoomCreatorFunctions['onSendSeparately']
40
- onCreateRoom?: RoomCreatorFunctions['onCreateRoom']
41
- onSendAsGroup?: RoomCreatorFunctions['onSendAsGroup']
42
- selected?: Selected
43
- /**
44
- * (Optional) Function called when a user is pressed.
45
- * If used, the internal state manager of pressed items is disabled.
46
- *
47
- * **Important** you must use the `selected` too prop if you use this prop.
48
- *
49
- * @param id - the ID of the pressed user
50
- *
51
- * @example
52
- * ```javascript
53
- * return <Inbox selected={selected} onSelectItem />
54
- * ```
55
- */
56
- onSelectItem?: (id: string) => void
57
- users: Array<RoomCreatorItem>
58
- onDidClose?: () => void
59
- onDidOpen?: () => void
60
- text?: string
61
- onChangeText?: string
62
- disableComposer?: boolean
63
- isReadyFunc?: (selected: Selected) => boolean
64
- startOpen?: boolean
65
- buttons: Buttons
66
- renderButton?: (props: RenderButtonProps) => ReactNode | null
67
- ButtonComponent?: ComponentType<RenderButtonProps>
68
- headerTitle?: string
69
- headerTitleStyle?: RoomCreatorHeaderProps['titleStyle']
70
- headerSubtitle?: RoomCreatorHeaderProps['subtitle']
71
- headerSubtitleStyle?: RoomCreatorHeaderProps['subtitleStyle']
72
- headerImage?: RoomCreatorHeaderProps['image']
73
- headerImageStyle?: RoomCreatorHeaderProps['imageStyle']
74
- renderItem?: null | ((props: RoomCreatorItemProps) => ReactElement)
75
- selectedIconActiveColor?: string
76
- selectedIconInactiveColor?: string
77
- renderSelectedIcon?: (iconProps: SelectedIconProps) => ReactNode | null
78
- /**
79
- * Optionally enable text box. Text will be passed to onPress function for all buttons.
80
- */
81
- enableTextInput?: RoomCreatorFooterProps['enableTextInput']
82
- inputStyle?: RoomCreatorFooterProps['inputStyle']
83
- inputContainerStyle?: RoomCreatorFooterProps['inputContainerStyle']
84
- showInputWhenNotReady?: RoomCreatorFooterProps['showInputWhenNotReady']
85
- inputProps?: RoomCreatorInputProps['inputProps']
86
- headerBackgroundColor?: string
87
- headerContainerStyle?: ViewStyle
88
- }
89
-
90
- export type RoomCreatorFunctions = {
91
- onSendSeparately: (details: {
92
- message: NewMessageModel
93
- members: SendFromFeedRecipients
94
- }) => Promise<void>
95
- onCreateRoom: (members: RoomMembers) => void
96
- onSendAsGroup: (details: {
97
- message: NewMessageModel
98
- members: SendFromFeedRecipientArray['recipients']
99
- }) => Promise<any>
100
- }
101
-
102
- export interface RoomCreatorItemProps {
103
- name: string
104
- id: string
105
- avatar: string
106
- selected: boolean
107
- handle?: string
108
- toggleSelected: (id: string) => void
109
- renderSelectedIcon?: RoomCreatorProps['renderSelectedIcon']
110
- selectedIconActiveColor?: RoomCreatorProps['selectedIconActiveColor']
111
- selectedIconInactiveColor?: RoomCreatorProps['selectedIconInactiveColor']
112
- }
113
-
114
- export interface SelectedIconProps {
115
- activeColor: string
116
- inactiveColor: string
117
- active: boolean
118
- }
119
-
120
- export interface RoomCreatorContentProps {
121
- toggleSelected: (id: string) => void
122
- selected: Selected
123
- renderFooter?: RoomCreatorProps['renderFooter']
124
- renderButton?: RoomCreatorProps['renderButton']
125
- buttons: RoomCreatorProps['buttons']
126
- ButtonComponent?: RoomCreatorProps['ButtonComponent']
127
- users: RoomCreatorProps['users']
128
- renderItem?: RoomCreatorProps['renderItem']
129
- ready: boolean
130
- renderSelectedIcon?: RoomCreatorProps['renderSelectedIcon']
131
- selectedIconActiveColor?: RoomCreatorProps['selectedIconActiveColor']
132
- selectedIconInactiveColor?: RoomCreatorProps['selectedIconInactiveColor']
133
- enableTextInput?: RoomCreatorFooterProps['enableTextInput']
134
- inputStyle?: RoomCreatorFooterProps['inputStyle']
135
- inputContainerStyle?: RoomCreatorFooterProps['inputContainerStyle']
136
- showInputWhenNotReady?: RoomCreatorFooterProps['showInputWhenNotReady']
137
- inputProps?: RoomCreatorInputProps['inputProps']
138
- text: RoomCreatorInputProps['text']
139
- onChangeText: RoomCreatorInputProps['onChangeText']
140
- }
141
-
142
- export interface RoomCreatorHeaderProps {
143
- callbackNode: Animated.Value<number>
144
- title: string
145
- subtitle?: string
146
- image?: string
147
- imageStyle?: StyleProp<ImageStyle>
148
- titleStyle?: StyleProp<TextStyle>
149
- subtitleStyle?: StyleProp<TextStyle>
150
- backgroundColor?: string
151
- containerStyle?: ViewStyle
152
- }
153
-
154
- export interface RoomCreatorFooterProps {
155
- ButtonComponent?: RoomCreatorProps['ButtonComponent']
156
- renderButton?: RoomCreatorProps['renderButton']
157
- buttons: RoomCreatorProps['buttons']
158
- ready: boolean
159
- selected: Selected
160
- enableTextInput: boolean
161
- inputStyle?: RoomCreatorInputProps['inputStyle']
162
- inputContainerStyle?: RoomCreatorInputProps['inputContainerStyle']
163
- inputProps?: RoomCreatorInputProps['inputProps']
164
- showInputWhenNotReady: boolean
165
- text: RoomCreatorInputProps['text']
166
- onChangeText: RoomCreatorInputProps['onChangeText']
167
- }
168
-
169
- export interface RoomCreatorInputProps {
170
- text: string
171
- onChangeText: TextInputProps['onChangeText']
172
- inputProps?: TextInputProps
173
- inputStyle?: TextInputProps['style']
174
- inputContainerStyle?: StyleProp<ViewStyle>
175
- }
176
-
177
- export interface Selected {
178
- [id: string]: 'room' | 'user'
179
- }
180
-
181
- /**
182
- * Buttons will show up at the bottom of the room creator
183
- *
184
- * @example
185
- * Note that in the example below, you will need to make sure that selected matches the proper schema for members. It is left this way for simplicity.
186
- * ```javascript
187
- * <Inbox
188
- * buttons={[
189
- * {
190
- * text: 'Start Chat',
191
- * onPress: (selected) => new Room({ members: selected }).create()
192
- * }
193
- * ]}
194
- * />
195
- * ```
196
- *
197
- *
198
- */
199
- export interface Button {
200
- text: string
201
- onPress: (config: {
202
- selected: Selected
203
- ready: boolean
204
- loading: boolean
205
- text: string
206
- }) => any | Promise<any>
207
- disabledString?: string
208
- color?: string
209
- textColor?: string
210
- disabledColor?: string
211
- disabledTextColor?: string
212
- ready?: boolean
213
- loading?: boolean
214
- }
215
-
216
- export interface RenderButtonProps {
217
- backgroundColor: string
218
- text: string
219
- textColor: string
220
- onPress: () => void
221
- ready: boolean
222
- index: number
223
- loading: boolean
224
- }
225
-
226
- export interface User {
227
- id: string
228
- name: string
229
- avatar: string
230
- handle?: string
231
- }
232
-
233
- export type Buttons = Button[]
@@ -1,169 +0,0 @@
1
- import React from 'react'
2
- import { View, StyleSheet } from 'react-native'
3
- import { LinearGradient } from 'expo-linear-gradient'
4
- import Animated, { Easing } from 'react-native-reanimated'
5
-
6
- const {
7
- Value,
8
- useCode,
9
- interpolate,
10
- Clock,
11
- set,
12
- block,
13
- startClock,
14
- cond,
15
- stopClock,
16
- timing
17
- } = Animated
18
-
19
- const dots = [1, 2, 3]
20
- const length = dots.length
21
-
22
- export default function(props: TypingIndicatorProps) {
23
- const animatedValue = new Value(0)
24
- const config = {
25
- duration: 2500,
26
- toValue: new Value(length + 1),
27
- easing: Easing.inOut(Easing.linear)
28
- }
29
- useCode(() => set(animatedValue, runLoop(config)), [animatedValue])
30
-
31
- const { theme = 'red' } = props
32
-
33
- if (props.hide) return null
34
-
35
- const renderDot = (index: number) => {
36
- const opacity = interpolate(animatedValue, {
37
- inputRange: [index - 1, index, index + 1],
38
- outputRange: [0, 1, 0]
39
- })
40
- return (
41
- <View key={index.toString()} style={styles.dot}>
42
- <LinearGradient
43
- {...{
44
- colors: props.dotEmptyColors || themes[theme].emptyDotColors,
45
- start: [0.9, 0.9],
46
- end: [0.1, 0.1]
47
- }}
48
- style={{ flex: 1 }}
49
- />
50
- <Animated.View style={{ opacity, ...StyleSheet.absoluteFillObject }}>
51
- <LinearGradient
52
- {...{
53
- colors: props.dotColors || themes[theme].dotColors,
54
- start: [0.1, 0.1],
55
- end: [0.9, 0.9]
56
- }}
57
- style={{ flex: 1 }}
58
- />
59
- </Animated.View>
60
- </View>
61
- )
62
- }
63
- return (
64
- <View style={styles.container}>
65
- <LinearGradient
66
- {...{
67
- colors: props.backgroundColors || themes[theme].backgroundColors,
68
- start: [0.1, 0.1],
69
- end: [0.9, 0.9]
70
- }}
71
- style={styles.wrapper}
72
- >
73
- <View style={styles.dots}>{dots.map(renderDot)}</View>
74
- </LinearGradient>
75
- </View>
76
- )
77
- }
78
-
79
- const themes = {
80
- purple: {
81
- backgroundColors: ['#7950f2', '#5f3dc4'],
82
- dotColors: ['white', 'white'],
83
- emptyDotColors: ['#adb5bd', '#adb5bd']
84
- },
85
- red: {
86
- backgroundColors: ['#E5E5EA', '#E5E5EA'],
87
- dotColors: ['#ff8000', '#ec2a80'],
88
- emptyDotColors: ['#D1D1D6', '#D1D1D6']
89
- },
90
- default: {
91
- backgroundColors: ['#E5E5EA', '#E5E5EA'],
92
- dotColors: ['#8E8E93', '#8E8E93'],
93
- emptyDotColors: ['#D1D1D6', '#D1D1D6']
94
- }
95
- }
96
-
97
- export interface TypingIndicatorProps {
98
- hide?: boolean
99
- backgroundColors?: string[]
100
- dotColors?: string[]
101
- dotEmptyColors?: string[]
102
- theme?: 'purple' | 'red' | 'default'
103
- }
104
-
105
- const dotSize = 9
106
- const padding = dotSize / 4
107
- const paddingVertical = padding * 5
108
- const totalHeight = dotSize + paddingVertical * 2
109
-
110
- const styles = StyleSheet.create({
111
- container: {
112
- alignItems: 'flex-start'
113
- },
114
- wrapper: {
115
- paddingHorizontal: padding * 3,
116
- paddingVertical,
117
- borderRadius: totalHeight / 2
118
- },
119
- dots: {
120
- flexDirection: 'row'
121
- },
122
- dot: {
123
- height: dotSize,
124
- width: dotSize,
125
- borderRadius: dotSize / 2,
126
- backgroundColor: 'white',
127
- marginHorizontal: padding,
128
- overflow: 'hidden'
129
- }
130
- })
131
-
132
- function runLoop(config: Animated.TimingConfig) {
133
- const clock = new Clock()
134
-
135
- const state = {
136
- finished: new Value(0),
137
- position: new Value(0),
138
- time: new Value(0),
139
- frameTime: new Value(0)
140
- }
141
-
142
- return block([
143
- // start right away
144
- startClock(clock),
145
-
146
- // process your state
147
- timing(clock, state, config),
148
-
149
- // when over (processed by timing at the end)
150
- cond(state.finished, [
151
- // we stop
152
- stopClock(clock),
153
-
154
- // set flag ready to be restarted
155
- set(state.finished, 0),
156
- // same value as the initial defined in the state creation
157
- set(state.position, 0),
158
-
159
- // very important to reset this ones !!! as mentioned in the doc about timing is saying
160
- set(state.time, 0),
161
- set(state.frameTime, 0),
162
-
163
- // and we restart
164
- startClock(clock)
165
- ]),
166
-
167
- state.position
168
- ])
169
- }
@@ -1,18 +0,0 @@
1
- export { default as Inbox } from './Inbox'
2
- export { default as RoomCreator } from './RoomCreator'
3
- export { default as CreateRoomList } from './RoomCreator/Content'
4
- export { default as TypingIndicator } from './TypingIndicator'
5
- export { default as Messages } from './Chat'
6
- export { default as Avatar } from './Avatar'
7
- export {
8
- default as ChatProvider,
9
- chat,
10
- fuego,
11
- setChat,
12
- setFuego,
13
- } from './ChatProvider'
14
- export { default as Initials } from './Inbox/Item/Initials'
15
- export { default as Bubble } from './Chat/Bubble'
16
- export { default as UnreadIndicator } from './Inbox/Item/UnreadIndicator'
17
- export { default as Composer } from './Chat/Composer'
18
- export { default as SystemMessage } from './Chat/SystemMessage'
@@ -1,11 +0,0 @@
1
- export const getInitials = function(name: string | null, maxLength = 2) {
2
- const parts = name?.split(' ') ?? ''
3
- let initials = ''
4
- for (let i = 0; i < parts.length; i++) {
5
- if (parts[i].length > 0 && parts[i] !== '') {
6
- initials += parts[i][0]
7
- }
8
- }
9
- if (maxLength) initials = initials.slice(0, maxLength)
10
- return initials
11
- }
@@ -1 +0,0 @@
1
- export default (a, b) => (a.avatar > b.avatar ? 1 : -1)
@@ -1,8 +0,0 @@
1
- export { default as useMessages } from './useMessages'
2
- export { default as useRoom } from './useRoom'
3
- export { default as useTyping } from './useTyping'
4
- export { default as useInbox } from './useInbox'
5
- export { default as useCreator } from './useCreator'
6
- export { default as useViewMessages } from './useViewMessages'
7
- export { default as useSendToPeople } from './useSend/useSendToPeople'
8
- export { default as useSendToGroup } from './useSend/useSendToGroup'