@ethora/chat-component-rn 26.5.7 → 26.5.10

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 (371) hide show
  1. package/CHANGELOG.md +133 -0
  2. package/README.md +67 -10
  3. package/index.js +24 -0
  4. package/lib/commonjs/assets/icons.js +5 -1
  5. package/lib/commonjs/assets/icons.js.map +1 -1
  6. package/lib/commonjs/components/ContextMenu/ContextMenuComponents.js +11 -5
  7. package/lib/commonjs/components/ContextMenu/ContextMenuComponents.js.map +1 -1
  8. package/lib/commonjs/components/MainComponents/ChatRoom.js +64 -38
  9. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  10. package/lib/commonjs/components/MainComponents/ChatWrapper.js +57 -13
  11. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  12. package/lib/commonjs/components/MainComponents/MediaMessage.js +4 -2
  13. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  14. package/lib/commonjs/components/MainComponents/MessageContainer.js +2 -2
  15. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  16. package/lib/commonjs/components/MainComponents/MessageList.js +165 -28
  17. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  18. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +17 -8
  19. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  20. package/lib/commonjs/components/MainComponents/SystemMessage.js +34 -22
  21. package/lib/commonjs/components/MainComponents/SystemMessage.js.map +1 -1
  22. package/lib/commonjs/components/MessageBubble/Message.js +84 -39
  23. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  24. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +82 -22
  25. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  26. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +16 -4
  27. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  28. package/lib/commonjs/components/Modals/FilePreviewModal/DocumentViewer.js +104 -0
  29. package/lib/commonjs/components/Modals/FilePreviewModal/DocumentViewer.js.map +1 -0
  30. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +140 -24
  31. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  32. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +29 -1
  33. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  34. package/lib/commonjs/components/Modals/Modal/Modal.js +5 -1
  35. package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
  36. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js +77 -47
  37. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  38. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +3 -3
  39. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  40. package/lib/commonjs/components/Modals/styledModalComponents.js +4 -9
  41. package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
  42. package/lib/commonjs/components/styled/MediaFilePreview.js +47 -28
  43. package/lib/commonjs/components/styled/MediaFilePreview.js.map +1 -1
  44. package/lib/commonjs/components/styled/MessageImage.js +49 -9
  45. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  46. package/lib/commonjs/components/styled/NewMessageLabel.js +8 -6
  47. package/lib/commonjs/components/styled/NewMessageLabel.js.map +1 -1
  48. package/lib/commonjs/components/styled/SendInput.js +49 -27
  49. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  50. package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js +14 -4
  51. package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
  52. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +7 -2
  53. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  54. package/lib/commonjs/components/styled/UnsupportedType.js +5 -1
  55. package/lib/commonjs/components/styled/UnsupportedType.js.map +1 -1
  56. package/lib/commonjs/components/styled/VideoMessage.js +60 -14
  57. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  58. package/lib/commonjs/context/MessageNotificationContext.js +7 -7
  59. package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
  60. package/lib/commonjs/context/xmppProvider.js +244 -32
  61. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  62. package/lib/commonjs/helpers/chatAutoEnterer.js +2 -7
  63. package/lib/commonjs/helpers/chatAutoEnterer.js.map +1 -1
  64. package/lib/commonjs/helpers/historyPreloadScheduler.js +4 -1
  65. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  66. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +15 -5
  67. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  68. package/lib/commonjs/helpers/keyboardLayout.js +18 -0
  69. package/lib/commonjs/helpers/keyboardLayout.js.map +1 -0
  70. package/lib/commonjs/helpers/mediaDimensions.js +51 -0
  71. package/lib/commonjs/helpers/mediaDimensions.js.map +1 -0
  72. package/lib/commonjs/helpers/normalizeRoomJid.js +20 -0
  73. package/lib/commonjs/helpers/normalizeRoomJid.js.map +1 -0
  74. package/lib/commonjs/hooks/useChatRoomFocus.js +87 -0
  75. package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -0
  76. package/lib/commonjs/hooks/useHeapSender.js +1 -1
  77. package/lib/commonjs/hooks/useHeapSender.js.map +1 -1
  78. package/lib/commonjs/hooks/useLogout.js +3 -3
  79. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  80. package/lib/commonjs/hooks/usePushNotifications.js +6 -2
  81. package/lib/commonjs/hooks/usePushNotifications.js.map +1 -1
  82. package/lib/commonjs/hooks/useRoomState.js +2 -0
  83. package/lib/commonjs/hooks/useRoomState.js.map +1 -1
  84. package/lib/commonjs/hooks/useSendMessage.js +201 -10
  85. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  86. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +12 -14
  87. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  88. package/lib/commonjs/main.js +7 -0
  89. package/lib/commonjs/main.js.map +1 -1
  90. package/lib/commonjs/networking/api-requests/auth.api.js +67 -0
  91. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  92. package/lib/commonjs/networking/apiClient.js +2 -1
  93. package/lib/commonjs/networking/apiClient.js.map +1 -1
  94. package/lib/commonjs/networking/outboundQueue.js +92 -0
  95. package/lib/commonjs/networking/outboundQueue.js.map +1 -0
  96. package/lib/commonjs/networking/xmpp/createTimeoutPromise.xmpp.js +4 -1
  97. package/lib/commonjs/networking/xmpp/createTimeoutPromise.xmpp.js.map +1 -1
  98. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +7 -8
  99. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  100. package/lib/commonjs/networking/xmpp/getRoomsPaged.xmpp.js +26 -3
  101. package/lib/commonjs/networking/xmpp/getRoomsPaged.xmpp.js.map +1 -1
  102. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +26 -8
  103. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  104. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +2 -1
  105. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  106. package/lib/commonjs/networking/xmppClient.js +294 -35
  107. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  108. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js +22 -6
  109. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  110. package/lib/commonjs/roomStore/roomsSlice.js +157 -23
  111. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  112. package/lib/commonjs/utils/installPromiseRejectionTracker.js +83 -0
  113. package/lib/commonjs/utils/installPromiseRejectionTracker.js.map +1 -0
  114. package/lib/commonjs/utils/resendMessage.js +1 -1
  115. package/lib/commonjs/utils/resendMessage.js.map +1 -1
  116. package/lib/module/assets/icons.js +5 -1
  117. package/lib/module/assets/icons.js.map +1 -1
  118. package/lib/module/components/ContextMenu/ContextMenuComponents.js +11 -5
  119. package/lib/module/components/ContextMenu/ContextMenuComponents.js.map +1 -1
  120. package/lib/module/components/MainComponents/ChatRoom.js +65 -39
  121. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  122. package/lib/module/components/MainComponents/ChatWrapper.js +57 -13
  123. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  124. package/lib/module/components/MainComponents/MediaMessage.js +4 -2
  125. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  126. package/lib/module/components/MainComponents/MessageContainer.js +2 -2
  127. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  128. package/lib/module/components/MainComponents/MessageList.js +166 -29
  129. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  130. package/lib/module/components/MainComponents/ReduxWrapper.js +18 -8
  131. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  132. package/lib/module/components/MainComponents/SystemMessage.js +33 -21
  133. package/lib/module/components/MainComponents/SystemMessage.js.map +1 -1
  134. package/lib/module/components/MessageBubble/Message.js +85 -40
  135. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  136. package/lib/module/components/MessageBubble/MessageInteractions.js +84 -24
  137. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  138. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +15 -3
  139. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  140. package/lib/module/components/Modals/FilePreviewModal/DocumentViewer.js +99 -0
  141. package/lib/module/components/Modals/FilePreviewModal/DocumentViewer.js.map +1 -0
  142. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +143 -25
  143. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  144. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +31 -3
  145. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  146. package/lib/module/components/Modals/Modal/Modal.js +5 -1
  147. package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
  148. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js +79 -49
  149. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  150. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +3 -3
  151. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  152. package/lib/module/components/Modals/styledModalComponents.js +4 -9
  153. package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
  154. package/lib/module/components/styled/MediaFilePreview.js +47 -28
  155. package/lib/module/components/styled/MediaFilePreview.js.map +1 -1
  156. package/lib/module/components/styled/MessageImage.js +51 -11
  157. package/lib/module/components/styled/MessageImage.js.map +1 -1
  158. package/lib/module/components/styled/NewMessageLabel.js +8 -6
  159. package/lib/module/components/styled/NewMessageLabel.js.map +1 -1
  160. package/lib/module/components/styled/SendInput.js +50 -28
  161. package/lib/module/components/styled/SendInput.js.map +1 -1
  162. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js +14 -4
  163. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
  164. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +7 -2
  165. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  166. package/lib/module/components/styled/UnsupportedType.js +5 -1
  167. package/lib/module/components/styled/UnsupportedType.js.map +1 -1
  168. package/lib/module/components/styled/VideoMessage.js +61 -15
  169. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  170. package/lib/module/context/MessageNotificationContext.js +7 -7
  171. package/lib/module/context/MessageNotificationContext.js.map +1 -1
  172. package/lib/module/context/xmppProvider.js +246 -34
  173. package/lib/module/context/xmppProvider.js.map +1 -1
  174. package/lib/module/helpers/chatAutoEnterer.js +2 -7
  175. package/lib/module/helpers/chatAutoEnterer.js.map +1 -1
  176. package/lib/module/helpers/historyPreloadScheduler.js +4 -1
  177. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  178. package/lib/module/helpers/insertMessageWithDelimiter.js +15 -5
  179. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  180. package/lib/module/helpers/keyboardLayout.js +12 -0
  181. package/lib/module/helpers/keyboardLayout.js.map +1 -0
  182. package/lib/module/helpers/mediaDimensions.js +46 -0
  183. package/lib/module/helpers/mediaDimensions.js.map +1 -0
  184. package/lib/module/helpers/normalizeRoomJid.js +15 -0
  185. package/lib/module/helpers/normalizeRoomJid.js.map +1 -0
  186. package/lib/module/hooks/useChatRoomFocus.js +82 -0
  187. package/lib/module/hooks/useChatRoomFocus.js.map +1 -0
  188. package/lib/module/hooks/useHeapSender.js +1 -1
  189. package/lib/module/hooks/useHeapSender.js.map +1 -1
  190. package/lib/module/hooks/useLogout.js +3 -3
  191. package/lib/module/hooks/useLogout.js.map +1 -1
  192. package/lib/module/hooks/usePushNotifications.js +6 -2
  193. package/lib/module/hooks/usePushNotifications.js.map +1 -1
  194. package/lib/module/hooks/useRoomState.js +2 -0
  195. package/lib/module/hooks/useRoomState.js.map +1 -1
  196. package/lib/module/hooks/useSendMessage.js +203 -12
  197. package/lib/module/hooks/useSendMessage.js.map +1 -1
  198. package/lib/module/hooks/useUnreadMessagesCounter.js +12 -14
  199. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  200. package/lib/module/main.js +1 -0
  201. package/lib/module/main.js.map +1 -1
  202. package/lib/module/networking/api-requests/auth.api.js +67 -1
  203. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  204. package/lib/module/networking/apiClient.js +2 -1
  205. package/lib/module/networking/apiClient.js.map +1 -1
  206. package/lib/module/networking/outboundQueue.js +84 -0
  207. package/lib/module/networking/outboundQueue.js.map +1 -0
  208. package/lib/module/networking/xmpp/createTimeoutPromise.xmpp.js +4 -1
  209. package/lib/module/networking/xmpp/createTimeoutPromise.xmpp.js.map +1 -1
  210. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +7 -8
  211. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  212. package/lib/module/networking/xmpp/getRoomsPaged.xmpp.js +26 -3
  213. package/lib/module/networking/xmpp/getRoomsPaged.xmpp.js.map +1 -1
  214. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +26 -8
  215. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  216. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +2 -1
  217. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  218. package/lib/module/networking/xmppClient.js +294 -35
  219. package/lib/module/networking/xmppClient.js.map +1 -1
  220. package/lib/module/roomStore/Middleware/unreadMidlleware.js +22 -6
  221. package/lib/module/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  222. package/lib/module/roomStore/roomsSlice.js +154 -22
  223. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  224. package/lib/module/utils/installPromiseRejectionTracker.js +78 -0
  225. package/lib/module/utils/installPromiseRejectionTracker.js.map +1 -0
  226. package/lib/module/utils/resendMessage.js +1 -1
  227. package/lib/module/utils/resendMessage.js.map +1 -1
  228. package/lib/typescript/assets/icons.d.ts +8 -4
  229. package/lib/typescript/assets/icons.d.ts.map +1 -1
  230. package/lib/typescript/components/ContextMenu/ContextMenuComponents.d.ts.map +1 -1
  231. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  232. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  233. package/lib/typescript/components/MainComponents/MediaMessage.d.ts +1 -0
  234. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  235. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  236. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  237. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts +1 -0
  238. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  239. package/lib/typescript/components/MainComponents/SystemMessage.d.ts +0 -7
  240. package/lib/typescript/components/MainComponents/SystemMessage.d.ts.map +1 -1
  241. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  242. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts +4 -2
  243. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  244. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  245. package/lib/typescript/components/Modals/FilePreviewModal/DocumentViewer.d.ts +29 -0
  246. package/lib/typescript/components/Modals/FilePreviewModal/DocumentViewer.d.ts.map +1 -0
  247. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts +0 -1
  248. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  249. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  250. package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
  251. package/lib/typescript/components/Modals/ModalWrapper/ModalWrapper.d.ts.map +1 -1
  252. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  253. package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
  254. package/lib/typescript/components/styled/MediaFilePreview.d.ts.map +1 -1
  255. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  256. package/lib/typescript/components/styled/NewMessageLabel.d.ts +1 -5
  257. package/lib/typescript/components/styled/NewMessageLabel.d.ts.map +1 -1
  258. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  259. package/lib/typescript/components/styled/StyledInputComponents/MediaComponents.d.ts +9 -1
  260. package/lib/typescript/components/styled/StyledInputComponents/MediaComponents.d.ts.map +1 -1
  261. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
  262. package/lib/typescript/components/styled/UnsupportedType.d.ts +1 -0
  263. package/lib/typescript/components/styled/UnsupportedType.d.ts.map +1 -1
  264. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  265. package/lib/typescript/context/xmppProvider.d.ts +1 -0
  266. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  267. package/lib/typescript/helpers/chatAutoEnterer.d.ts.map +1 -1
  268. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  269. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  270. package/lib/typescript/helpers/keyboardLayout.d.ts +9 -0
  271. package/lib/typescript/helpers/keyboardLayout.d.ts.map +1 -0
  272. package/lib/typescript/helpers/mediaDimensions.d.ts +9 -0
  273. package/lib/typescript/helpers/mediaDimensions.d.ts.map +1 -0
  274. package/lib/typescript/helpers/normalizeRoomJid.d.ts +2 -0
  275. package/lib/typescript/helpers/normalizeRoomJid.d.ts.map +1 -0
  276. package/lib/typescript/hooks/useChatRoomFocus.d.ts +42 -0
  277. package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -0
  278. package/lib/typescript/hooks/useHeapSender.d.ts.map +1 -1
  279. package/lib/typescript/hooks/usePushNotifications.d.ts.map +1 -1
  280. package/lib/typescript/hooks/useRoomState.d.ts +1 -0
  281. package/lib/typescript/hooks/useRoomState.d.ts.map +1 -1
  282. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  283. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
  284. package/lib/typescript/main.d.ts +1 -0
  285. package/lib/typescript/main.d.ts.map +1 -1
  286. package/lib/typescript/networking/api-requests/auth.api.d.ts +3 -0
  287. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  288. package/lib/typescript/networking/apiClient.d.ts.map +1 -1
  289. package/lib/typescript/networking/outboundQueue.d.ts +57 -0
  290. package/lib/typescript/networking/outboundQueue.d.ts.map +1 -0
  291. package/lib/typescript/networking/xmpp/createTimeoutPromise.xmpp.d.ts.map +1 -1
  292. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +1 -1
  293. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
  294. package/lib/typescript/networking/xmpp/getRoomsPaged.xmpp.d.ts +1 -1
  295. package/lib/typescript/networking/xmpp/getRoomsPaged.xmpp.d.ts.map +1 -1
  296. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  297. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
  298. package/lib/typescript/networking/xmppClient.d.ts +33 -4
  299. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  300. package/lib/typescript/roomStore/Middleware/unreadMidlleware.d.ts.map +1 -1
  301. package/lib/typescript/roomStore/roomsSlice.d.ts +8 -1
  302. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  303. package/lib/typescript/types/models/media.model.d.ts +1 -0
  304. package/lib/typescript/types/models/media.model.d.ts.map +1 -1
  305. package/lib/typescript/types/models/xmpp.model.d.ts +1 -1
  306. package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
  307. package/lib/typescript/types/types.d.ts +4 -0
  308. package/lib/typescript/types/types.d.ts.map +1 -1
  309. package/lib/typescript/utils/installPromiseRejectionTracker.d.ts +20 -0
  310. package/lib/typescript/utils/installPromiseRejectionTracker.d.ts.map +1 -0
  311. package/lib/typescript/utils/resendMessage.d.ts.map +1 -1
  312. package/package.json +18 -2
  313. package/src/assets/icons.tsx +23 -14
  314. package/src/components/ContextMenu/ContextMenuComponents.tsx +10 -5
  315. package/src/components/MainComponents/ChatRoom.tsx +81 -66
  316. package/src/components/MainComponents/ChatWrapper.tsx +99 -21
  317. package/src/components/MainComponents/MediaMessage.tsx +3 -0
  318. package/src/components/MainComponents/MessageContainer.tsx +4 -2
  319. package/src/components/MainComponents/MessageList.tsx +175 -28
  320. package/src/components/MainComponents/ReduxWrapper.tsx +19 -9
  321. package/src/components/MainComponents/SystemMessage.tsx +38 -26
  322. package/src/components/MessageBubble/Message.tsx +91 -62
  323. package/src/components/MessageBubble/MessageInteractions.tsx +98 -29
  324. package/src/components/Modals/AttachSheet/AttachSheet.tsx +17 -3
  325. package/src/components/Modals/FilePreviewModal/DocumentViewer.tsx +93 -0
  326. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +152 -25
  327. package/src/components/Modals/FilePreviewModal/PdfView.tsx +32 -4
  328. package/src/components/Modals/Modal/Modal.tsx +4 -1
  329. package/src/components/Modals/ModalWrapper/ModalWrapper.tsx +70 -58
  330. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +19 -15
  331. package/src/components/Modals/styledModalComponents.tsx +4 -9
  332. package/src/components/styled/MediaFilePreview.tsx +46 -26
  333. package/src/components/styled/MessageImage.tsx +58 -13
  334. package/src/components/styled/NewMessageLabel.tsx +8 -5
  335. package/src/components/styled/SendInput.tsx +64 -29
  336. package/src/components/styled/StyledInputComponents/MediaComponents.tsx +15 -5
  337. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +7 -2
  338. package/src/components/styled/UnsupportedType.tsx +7 -1
  339. package/src/components/styled/VideoMessage.tsx +59 -11
  340. package/src/context/MessageNotificationContext.tsx +8 -8
  341. package/src/context/xmppProvider.tsx +247 -30
  342. package/src/helpers/chatAutoEnterer.ts +2 -8
  343. package/src/helpers/historyPreloadScheduler.ts +4 -1
  344. package/src/helpers/insertMessageWithDelimiter.ts +22 -15
  345. package/src/helpers/keyboardLayout.ts +18 -0
  346. package/src/helpers/mediaDimensions.ts +47 -0
  347. package/src/helpers/normalizeRoomJid.ts +6 -0
  348. package/src/hooks/useChatRoomFocus.ts +95 -0
  349. package/src/hooks/useHeapSender.tsx +2 -1
  350. package/src/hooks/useLogout.tsx +3 -3
  351. package/src/hooks/usePushNotifications.ts +21 -8
  352. package/src/hooks/useRoomState.tsx +4 -0
  353. package/src/hooks/useSendMessage.tsx +258 -13
  354. package/src/hooks/useUnreadMessagesCounter.ts +13 -16
  355. package/src/main.ts +1 -0
  356. package/src/networking/api-requests/auth.api.ts +55 -1
  357. package/src/networking/apiClient.ts +2 -1
  358. package/src/networking/outboundQueue.ts +98 -0
  359. package/src/networking/xmpp/createTimeoutPromise.xmpp.ts +5 -1
  360. package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +11 -13
  361. package/src/networking/xmpp/getRoomsPaged.xmpp.ts +27 -3
  362. package/src/networking/xmpp/presenceInRoom.xmpp.ts +24 -9
  363. package/src/networking/xmpp/sendTextMessage.xmpp.ts +2 -1
  364. package/src/networking/xmppClient.ts +317 -43
  365. package/src/roomStore/Middleware/unreadMidlleware.tsx +23 -5
  366. package/src/roomStore/roomsSlice.ts +177 -27
  367. package/src/types/models/media.model.ts +3 -0
  368. package/src/types/models/xmpp.model.ts +2 -1
  369. package/src/types/types.ts +15 -0
  370. package/src/utils/installPromiseRejectionTracker.ts +91 -0
  371. package/src/utils/resendMessage.ts +2 -1
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ import React, { useState } from 'react';
4
+ import { ActivityIndicator, StyleSheet, Text, View } from 'react-native';
5
+ import { WebView } from 'react-native-webview';
6
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
+ /**
8
+ * Inline preview for office documents (DOC / DOCX / XLS / XLSX / PPT /
9
+ * PPTX / TXT / RTF / CSV) and other non-PDF formats supported by
10
+ * Google's free gview rendering service.
11
+ *
12
+ * Strategy: embed `https://docs.google.com/gview?url=<encoded>&embedded=true`
13
+ * inside a WebView. Google fetches the doc from its public URL and
14
+ * renders it to a viewable iframe — no client-side dependency on
15
+ * native office libraries, no extra peer dep. Works for any backend
16
+ * whose file URLs are publicly reachable (which Ethora's `/files/`
17
+ * already are — they're CDN URLs returned in `item.location`).
18
+ *
19
+ * Limitations (documented for the integrator):
20
+ * - Requires public URL — won't work for auth-gated downloads.
21
+ * - First load can take 2-5s on slow networks.
22
+ * - Read-only — no editing, no print/share buttons.
23
+ *
24
+ * For PDFs use the existing PdfViewer (downloads then renders locally).
25
+ */
26
+ const DocumentViewer = ({
27
+ url,
28
+ fileName
29
+ }) => {
30
+ const [loaded, setLoaded] = useState(false);
31
+ const [errored, setErrored] = useState(false);
32
+ const viewerUrl = `https://docs.google.com/gview?url=${encodeURIComponent(url)}&embedded=true`;
33
+ if (errored) {
34
+ return /*#__PURE__*/_jsxs(View, {
35
+ style: styles.center,
36
+ children: [/*#__PURE__*/_jsx(Text, {
37
+ style: styles.errorTitle,
38
+ children: fileName || 'Document'
39
+ }), /*#__PURE__*/_jsx(Text, {
40
+ style: styles.errorBody,
41
+ children: "Couldn't render an inline preview. Tap the save icon above to download the file."
42
+ })]
43
+ });
44
+ }
45
+ return /*#__PURE__*/_jsxs(View, {
46
+ style: styles.container,
47
+ children: [/*#__PURE__*/_jsx(WebView, {
48
+ source: {
49
+ uri: viewerUrl
50
+ },
51
+ style: styles.webview,
52
+ originWhitelist: ['*'],
53
+ startInLoadingState: true,
54
+ onLoadEnd: () => setLoaded(true),
55
+ onError: () => setErrored(true),
56
+ onHttpError: () => setErrored(true)
57
+ }), !loaded && /*#__PURE__*/_jsx(View, {
58
+ style: styles.loadingOverlay,
59
+ pointerEvents: "none",
60
+ children: /*#__PURE__*/_jsx(ActivityIndicator, {
61
+ size: "large"
62
+ })
63
+ })]
64
+ });
65
+ };
66
+ export default DocumentViewer;
67
+ const styles = StyleSheet.create({
68
+ container: {
69
+ flex: 1,
70
+ width: '100%',
71
+ backgroundColor: '#fff'
72
+ },
73
+ webview: {
74
+ flex: 1,
75
+ backgroundColor: '#fff'
76
+ },
77
+ loadingOverlay: {
78
+ ...StyleSheet.absoluteFillObject,
79
+ justifyContent: 'center',
80
+ alignItems: 'center',
81
+ backgroundColor: '#ffffff'
82
+ },
83
+ center: {
84
+ flex: 1,
85
+ alignItems: 'center',
86
+ justifyContent: 'center',
87
+ padding: 24,
88
+ gap: 8
89
+ },
90
+ errorTitle: {
91
+ fontSize: 16,
92
+ fontWeight: '600'
93
+ },
94
+ errorBody: {
95
+ color: '#666',
96
+ textAlign: 'center'
97
+ }
98
+ });
99
+ //# sourceMappingURL=DocumentViewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","ActivityIndicator","StyleSheet","Text","View","WebView","jsx","_jsx","jsxs","_jsxs","DocumentViewer","url","fileName","loaded","setLoaded","errored","setErrored","viewerUrl","encodeURIComponent","style","styles","center","children","errorTitle","errorBody","container","source","uri","webview","originWhitelist","startInLoadingState","onLoadEnd","onError","onHttpError","loadingOverlay","pointerEvents","size","create","flex","width","backgroundColor","absoluteFillObject","justifyContent","alignItems","padding","gap","fontSize","fontWeight","color","textAlign"],"sourceRoot":"../../../../../src","sources":["components/Modals/FilePreviewModal/DocumentViewer.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AACvC,SAASC,iBAAiB,EAAEC,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACxE,SAASC,OAAO,QAAQ,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAS/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,cAA6C,GAAGA,CAAC;EAAEC,GAAG;EAAEC;AAAS,CAAC,KAAK;EAC3E,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGd,QAAQ,CAAC,KAAK,CAAC;EAC3C,MAAM,CAACe,OAAO,EAAEC,UAAU,CAAC,GAAGhB,QAAQ,CAAC,KAAK,CAAC;EAE7C,MAAMiB,SAAS,GAAG,qCAAqCC,kBAAkB,CACvEP,GACF,CAAC,gBAAgB;EAEjB,IAAII,OAAO,EAAE;IACX,oBACEN,KAAA,CAACL,IAAI;MAACe,KAAK,EAAEC,MAAM,CAACC,MAAO;MAAAC,QAAA,gBACzBf,IAAA,CAACJ,IAAI;QAACgB,KAAK,EAAEC,MAAM,CAACG,UAAW;QAAAD,QAAA,EAC5BV,QAAQ,IAAI;MAAU,CACnB,CAAC,eACPL,IAAA,CAACJ,IAAI;QAACgB,KAAK,EAAEC,MAAM,CAACI,SAAU;QAAAF,QAAA,EAAC;MAG/B,CAAM,CAAC;IAAA,CACH,CAAC;EAEX;EAEA,oBACEb,KAAA,CAACL,IAAI;IAACe,KAAK,EAAEC,MAAM,CAACK,SAAU;IAAAH,QAAA,gBAC5Bf,IAAA,CAACF,OAAO;MACNqB,MAAM,EAAE;QAAEC,GAAG,EAAEV;MAAU,CAAE;MAC3BE,KAAK,EAAEC,MAAM,CAACQ,OAAQ;MACtBC,eAAe,EAAE,CAAC,GAAG,CAAE;MACvBC,mBAAmB;MACnBC,SAAS,EAAEA,CAAA,KAAMjB,SAAS,CAAC,IAAI,CAAE;MACjCkB,OAAO,EAAEA,CAAA,KAAMhB,UAAU,CAAC,IAAI,CAAE;MAChCiB,WAAW,EAAEA,CAAA,KAAMjB,UAAU,CAAC,IAAI;IAAE,CACrC,CAAC,EACD,CAACH,MAAM,iBACNN,IAAA,CAACH,IAAI;MAACe,KAAK,EAAEC,MAAM,CAACc,cAAe;MAACC,aAAa,EAAC,MAAM;MAAAb,QAAA,eACtDf,IAAA,CAACN,iBAAiB;QAACmC,IAAI,EAAC;MAAO,CAAE;IAAC,CAC9B,CACP;EAAA,CACG,CAAC;AAEX,CAAC;AAED,eAAe1B,cAAc;AAE7B,MAAMU,MAAM,GAAGlB,UAAU,CAACmC,MAAM,CAAC;EAC/BZ,SAAS,EAAE;IAAEa,IAAI,EAAE,CAAC;IAAEC,KAAK,EAAE,MAAM;IAAEC,eAAe,EAAE;EAAO,CAAC;EAC9DZ,OAAO,EAAE;IAAEU,IAAI,EAAE,CAAC;IAAEE,eAAe,EAAE;EAAO,CAAC;EAC7CN,cAAc,EAAE;IACd,GAAGhC,UAAU,CAACuC,kBAAkB;IAChCC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBH,eAAe,EAAE;EACnB,CAAC;EACDnB,MAAM,EAAE;IACNiB,IAAI,EAAE,CAAC;IACPK,UAAU,EAAE,QAAQ;IACpBD,cAAc,EAAE,QAAQ;IACxBE,OAAO,EAAE,EAAE;IACXC,GAAG,EAAE;EACP,CAAC;EACDtB,UAAU,EAAE;IAAEuB,QAAQ,EAAE,EAAE;IAAEC,UAAU,EAAE;EAAM,CAAC;EAC/CvB,SAAS,EAAE;IAAEwB,KAAK,EAAE,MAAM;IAAEC,SAAS,EAAE;EAAS;AAClD,CAAC,CAAC","ignoreList":[]}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
- import React, { useMemo } from 'react';
4
- import styled from 'styled-components/native';
3
+ import React, { useEffect, useState } from 'react';
5
4
  import { CenterContainer, ModalContainerFullScreen } from '../styledModalComponents';
6
5
  import { SaveIcon } from '../../../assets/icons';
7
6
  import ModalHeaderComponent from '../ModalHeaderComponent';
@@ -9,19 +8,86 @@ import { useDispatch, useSelector } from 'react-redux';
9
8
  import Button from '../../styled/Button';
10
9
  import { FullScreenImage } from '../../styled/StyledInputComponents/MediaComponents';
11
10
  import { setActiveFile } from '../../../roomStore/chatSettingsSlice';
12
- import { Alert, Text, View, Platform } from 'react-native';
13
- import { Video, ResizeMode } from 'expo-av';
11
+ import { Alert, Text, View, Platform, TouchableOpacity, StyleSheet } from 'react-native';
12
+ import { useVideoPlayer, VideoView } from 'expo-video';
13
+ import { PlayIcon } from '../../../assets/icons';
14
14
  import * as FileSystem from 'expo-file-system/legacy';
15
15
  import * as MediaLibrary from 'expo-media-library';
16
16
  import { useToast } from '../../../context/ToastContext';
17
17
  import PdfViewer from './PdfView';
18
+ import DocumentViewer from './DocumentViewer';
19
+ import AudioMessage from '../../styled/AudioMessage';
18
20
  import { ensureFilenameHasExtension } from '../../../helpers/mimeToExtension';
21
+
22
+ // MIME types Google's gview embed renders reliably. Everything else
23
+ // falls through to the info-card so the user can still download.
19
24
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
20
- export const FullScreenVideo = styled.View`
21
- width: 100%;
22
- height: 100%;
23
- object-fit: contain;
24
- `;
25
+ const GVIEW_PREVIEWABLE = new Set(['application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'text/plain', 'text/csv', 'application/rtf']);
26
+ const isGviewPreviewable = mime => {
27
+ if (!mime) {
28
+ return false;
29
+ }
30
+ return GVIEW_PREVIEWABLE.has(mime.toLowerCase().split(';')[0].trim());
31
+ };
32
+
33
+ // Full-screen video preview on expo-video (expo-av <Video> is deprecated
34
+ // and rendered blank on Android). `contentFit: contain` fits the clip to
35
+ // the area with the surrounding letterbox painted as the view's own
36
+ // (transparent → theme) background, NOT black. `textureView` so the play
37
+ // overlay composites on top and nothing is clipped on Android.
38
+ const ModalVideo = ({
39
+ uri
40
+ }) => {
41
+ const [showPlay, setShowPlay] = useState(true);
42
+ const player = useVideoPlayer(uri, p => {
43
+ p.muted = false;
44
+ });
45
+ useEffect(() => {
46
+ const sub = player.addListener('playingChange', ({
47
+ isPlaying
48
+ }) => {
49
+ if (isPlaying) {
50
+ setShowPlay(false);
51
+ }
52
+ });
53
+ return () => sub.remove();
54
+ }, [player]);
55
+ const handlePlay = () => {
56
+ setShowPlay(false);
57
+ player.play();
58
+ };
59
+ return /*#__PURE__*/_jsxs(View, {
60
+ style: {
61
+ flex: 1,
62
+ width: '100%'
63
+ },
64
+ children: [/*#__PURE__*/_jsx(VideoView, {
65
+ player: player,
66
+ style: {
67
+ flex: 1,
68
+ backgroundColor: 'transparent'
69
+ },
70
+ contentFit: "contain",
71
+ nativeControls: true,
72
+ surfaceType: "textureView",
73
+ allowsFullscreen: true
74
+ }), showPlay && /*#__PURE__*/_jsx(TouchableOpacity, {
75
+ activeOpacity: 0.8,
76
+ onPress: handlePlay,
77
+ style: StyleSheet.absoluteFillObject,
78
+ children: /*#__PURE__*/_jsx(View, {
79
+ style: styles.playOverlay,
80
+ children: /*#__PURE__*/_jsx(View, {
81
+ style: styles.playButton,
82
+ children: /*#__PURE__*/_jsx(PlayIcon, {
83
+ width: 28,
84
+ height: 28
85
+ })
86
+ })
87
+ })
88
+ })]
89
+ });
90
+ };
25
91
  const FilePreviewModal = ({
26
92
  handleCloseModal
27
93
  }) => {
@@ -33,7 +99,7 @@ const FilePreviewModal = ({
33
99
  activeFile
34
100
  } = useSelector(state => state.chatSettingStore);
35
101
  if (!activeFile) {
36
- return;
102
+ return null;
37
103
  }
38
104
  const requestStoragePermission = async () => {
39
105
  try {
@@ -116,25 +182,45 @@ const FilePreviewModal = ({
116
182
  }));
117
183
  handleCloseModal?.();
118
184
  };
119
- const getMediaComponent = useMemo(() => {
185
+
186
+ // NOTE: plain computed value, NOT useMemo. It sits AFTER the
187
+ // `if (!activeFile) return` guard above, so as a hook it would run
188
+ // conditionally (skipped when activeFile is null) — changing the hook
189
+ // count between renders and throwing "rendered more hooks than during
190
+ // the previous render", which crashed the modal the instant you tapped
191
+ // a video/image to open it. Recomputing this on each render is cheap.
192
+ const getMediaComponent = (() => {
120
193
  switch (true) {
121
194
  case activeFile.mimetype.startsWith('image/'):
122
195
  return /*#__PURE__*/_jsx(FullScreenImage, {
123
- src: activeFile.fileURL || 'https://as2.ftcdn.net/v2/jpg/02/51/95/53/1000_F_251955356_FAQH0U1y1TZw3ZcdPGybwUkH90a3VAhb.jpg',
124
- alt: activeFile.fileName
196
+ source: {
197
+ uri: activeFile.fileURL || 'https://as2.ftcdn.net/v2/jpg/02/51/95/53/1000_F_251955356_FAQH0U1y1TZw3ZcdPGybwUkH90a3VAhb.jpg'
198
+ },
199
+ resizeMode: "contain",
200
+ accessibilityLabel: activeFile.fileName
125
201
  });
126
202
  case activeFile.mimetype.startsWith('video/'):
127
- return /*#__PURE__*/_jsx(Video, {
203
+ return /*#__PURE__*/_jsx(ModalVideo, {
204
+ uri: activeFile.fileURL
205
+ });
206
+ case activeFile.mimetype.startsWith('audio/'):
207
+ return /*#__PURE__*/_jsxs(View, {
128
208
  style: {
129
209
  width: '100%',
130
- height: '100%'
210
+ padding: 20,
211
+ gap: 12,
212
+ backgroundColor: '#FFF8ED',
213
+ borderRadius: 16
131
214
  },
132
- source: {
133
- uri: activeFile.fileURL
134
- },
135
- useNativeControls: true,
136
- resizeMode: ResizeMode.CONTAIN,
137
- shouldPlay: false
215
+ children: [/*#__PURE__*/_jsx(Text, {
216
+ style: {
217
+ fontSize: 16,
218
+ fontWeight: '600'
219
+ },
220
+ children: ensureFilenameHasExtension(activeFile.fileName, activeFile.mimetype)
221
+ }), /*#__PURE__*/_jsx(AudioMessage, {
222
+ src: activeFile.fileURL
223
+ })]
138
224
  });
139
225
  case activeFile.mimetype === 'application/pdf':
140
226
  return /*#__PURE__*/_jsx(PdfViewer, {
@@ -143,6 +229,18 @@ const FilePreviewModal = ({
143
229
  default:
144
230
  {
145
231
  const displayName = ensureFilenameHasExtension(activeFile.fileName, activeFile.mimetype);
232
+ // Office docs (.docx / .xlsx / .pptx / .doc / .xls / .ppt /
233
+ // .txt / .csv / .rtf) → render inline via Google's gview embed
234
+ // — fixes the "blank preview" complaint for docs (bug #9).
235
+ if (isGviewPreviewable(activeFile.mimetype)) {
236
+ return /*#__PURE__*/_jsx(DocumentViewer, {
237
+ url: activeFile.fileURL,
238
+ fileName: displayName
239
+ });
240
+ }
241
+ // True last-resort fallback for genuinely unrenderable types
242
+ // (binary blobs, exotic MIMEs). Friendly info card with the
243
+ // filename so the user can still download.
146
244
  return /*#__PURE__*/_jsxs(View, {
147
245
  style: {
148
246
  backgroundColor: '#FFF8ED',
@@ -170,7 +268,7 @@ const FilePreviewModal = ({
170
268
  });
171
269
  }
172
270
  }
173
- }, [activeFile]);
271
+ })();
174
272
  return /*#__PURE__*/_jsxs(ModalContainerFullScreen, {
175
273
  children: [/*#__PURE__*/_jsx(ModalHeaderComponent, {
176
274
  handleCloseModal: closeModal,
@@ -184,14 +282,34 @@ const FilePreviewModal = ({
184
282
  }), /*#__PURE__*/_jsx(CenterContainer, {
185
283
  style: {
186
284
  display: 'flex',
187
- height: '100%',
285
+ flex: 1,
188
286
  justifyContent: 'center',
189
- overflow: 'hidden',
190
- padding: 16
287
+ // NOTE: do NOT set overflow:'hidden' here — on Android it clips
288
+ // hardware-accelerated children (expo-av Video TextureView and
289
+ // react-native-webview) to nothing, so video/PDF/doc previews
290
+ // render blank while plain <Image> survives.
291
+ overflow: 'visible',
292
+ padding: 16,
293
+ paddingBottom: 48
191
294
  },
192
295
  children: getMediaComponent
193
296
  })]
194
297
  });
195
298
  };
299
+ const styles = StyleSheet.create({
300
+ playOverlay: {
301
+ ...StyleSheet.absoluteFillObject,
302
+ justifyContent: 'center',
303
+ alignItems: 'center'
304
+ },
305
+ playButton: {
306
+ width: 64,
307
+ height: 64,
308
+ borderRadius: 32,
309
+ backgroundColor: 'rgba(0, 0, 0, 0.55)',
310
+ justifyContent: 'center',
311
+ alignItems: 'center'
312
+ }
313
+ });
196
314
  export default FilePreviewModal;
197
315
  //# sourceMappingURL=FilePreviewModal.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","styled","CenterContainer","ModalContainerFullScreen","SaveIcon","ModalHeaderComponent","useDispatch","useSelector","Button","FullScreenImage","setActiveFile","Alert","Text","View","Platform","Video","ResizeMode","FileSystem","MediaLibrary","useToast","PdfViewer","ensureFilenameHasExtension","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","FullScreenVideo","FilePreviewModal","handleCloseModal","dispatch","showToast","activeFile","state","chatSettingStore","requestStoragePermission","status","requestPermissionsAsync","error","console","saveToGallery","hasPermission","alert","fileName","mimetype","filePath","cacheDirectory","download","downloadAsync","fileURL","saveToLibraryAsync","uri","id","Date","now","toString","title","message","type","err","saveFileToDownloads","OS","createAssetAsync","saveClick","startsWith","closeModal","getMediaComponent","src","alt","style","width","height","source","useNativeControls","resizeMode","CONTAIN","shouldPlay","pdfUrl","displayName","backgroundColor","borderRadius","padding","gap","children","fontSize","fontWeight","color","marginTop","headerTitle","rightMenu","onPress","display","justifyContent","overflow"],"sourceRoot":"../../../../../src","sources":["components/Modals/FilePreviewModal/FilePreviewModal.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useState","CenterContainer","ModalContainerFullScreen","SaveIcon","ModalHeaderComponent","useDispatch","useSelector","Button","FullScreenImage","setActiveFile","Alert","Text","View","Platform","TouchableOpacity","StyleSheet","useVideoPlayer","VideoView","PlayIcon","FileSystem","MediaLibrary","useToast","PdfViewer","DocumentViewer","AudioMessage","ensureFilenameHasExtension","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GVIEW_PREVIEWABLE","Set","isGviewPreviewable","mime","has","toLowerCase","split","trim","ModalVideo","uri","showPlay","setShowPlay","player","p","muted","sub","addListener","isPlaying","remove","handlePlay","play","style","flex","width","children","backgroundColor","contentFit","nativeControls","surfaceType","allowsFullscreen","activeOpacity","onPress","absoluteFillObject","styles","playOverlay","playButton","height","FilePreviewModal","handleCloseModal","dispatch","showToast","activeFile","state","chatSettingStore","requestStoragePermission","status","requestPermissionsAsync","error","console","saveToGallery","hasPermission","alert","fileName","mimetype","filePath","cacheDirectory","download","downloadAsync","fileURL","saveToLibraryAsync","id","Date","now","toString","title","message","type","err","saveFileToDownloads","OS","createAssetAsync","saveClick","startsWith","closeModal","getMediaComponent","source","resizeMode","accessibilityLabel","padding","gap","borderRadius","fontSize","fontWeight","src","pdfUrl","displayName","url","color","marginTop","headerTitle","rightMenu","display","justifyContent","overflow","paddingBottom","create","alignItems"],"sourceRoot":"../../../../../src","sources":["components/Modals/FilePreviewModal/FilePreviewModal.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,16 +1,24 @@
1
1
  "use strict";
2
2
 
3
3
  import React, { useEffect, useState } from 'react';
4
- import { ActivityIndicator, StyleSheet, Text, View } from 'react-native';
4
+ import { ActivityIndicator, Platform, StyleSheet, Text, View } from 'react-native';
5
5
  import { WebView } from 'react-native-webview';
6
6
  import * as FileSystem from 'expo-file-system/legacy';
7
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
8
  const PdfViewer = ({
9
9
  pdfUrl
10
10
  }) => {
11
11
  const [localUri, setLocalUri] = useState(null);
12
12
  const [error, setError] = useState(null);
13
+ // Android's WebView has NO native PDF renderer, so a file:// (or direct)
14
+ // PDF loads blank. Route it through Google's gview embed using the
15
+ // (public) remote URL — same approach as DocumentViewer for office docs.
16
+ // iOS WKWebView renders PDFs natively, so we download + show the file.
17
+ const isAndroid = Platform.OS === 'android';
13
18
  useEffect(() => {
19
+ if (isAndroid) {
20
+ return;
21
+ }
14
22
  let cancelled = false;
15
23
  const run = async () => {
16
24
  try {
@@ -32,7 +40,27 @@ const PdfViewer = ({
32
40
  return () => {
33
41
  cancelled = true;
34
42
  };
35
- }, [pdfUrl]);
43
+ }, [pdfUrl, isAndroid]);
44
+ if (isAndroid) {
45
+ const gviewUrl = `https://docs.google.com/gview?embedded=true&url=${encodeURIComponent(pdfUrl)}`;
46
+ return /*#__PURE__*/_jsx(View, {
47
+ style: styles.container,
48
+ children: /*#__PURE__*/_jsx(WebView, {
49
+ source: {
50
+ uri: gviewUrl
51
+ },
52
+ style: styles.webview,
53
+ originWhitelist: ['*'],
54
+ startInLoadingState: true,
55
+ renderLoading: () => /*#__PURE__*/_jsx(View, {
56
+ style: styles.center,
57
+ children: /*#__PURE__*/_jsx(ActivityIndicator, {
58
+ size: "large"
59
+ })
60
+ })
61
+ })
62
+ });
63
+ }
36
64
  if (error) {
37
65
  return /*#__PURE__*/_jsx(View, {
38
66
  style: styles.center,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useState","ActivityIndicator","StyleSheet","Text","View","WebView","FileSystem","jsxs","_jsxs","jsx","_jsx","PdfViewer","pdfUrl","localUri","setLocalUri","error","setError","cancelled","run","target","cacheDirectory","Date","now","result","downloadAsync","uri","e","console","log","message","style","styles","center","children","size","container","source","webview","originWhitelist","allowFileAccess","allowFileAccessFromFileURLs","allowUniversalAccessFromFileURLs","create","flex","width","backgroundColor","alignItems","justifyContent"],"sourceRoot":"../../../../../src","sources":["components/Modals/FilePreviewModal/PdfView.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAClD,SAASC,iBAAiB,EAAEC,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACxE,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,OAAO,KAAKC,UAAU,MAAM,yBAAyB;AAAC,SAAAC,IAAA,IAAAC,KAAA,EAAAC,GAAA,IAAAC,IAAA;AAMtD,MAAMC,SAAmC,GAAGA,CAAC;EAAEC;AAAO,CAAC,KAAK;EAC1D,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGd,QAAQ,CAAgB,IAAI,CAAC;EAC7D,MAAM,CAACe,KAAK,EAAEC,QAAQ,CAAC,GAAGhB,QAAQ,CAAgB,IAAI,CAAC;EAEvDD,SAAS,CAAC,MAAM;IACd,IAAIkB,SAAS,GAAG,KAAK;IACrB,MAAMC,GAAG,GAAG,MAAAA,CAAA,KAAY;MACtB,IAAI;QACF,MAAMC,MAAM,GACVb,UAAU,CAACc,cAAc,GAAG,OAAOC,IAAI,CAACC,GAAG,CAAC,CAAC,MAAM;QACrD,MAAMC,MAAM,GAAG,MAAMjB,UAAU,CAACkB,aAAa,CAACZ,MAAM,EAAEO,MAAM,CAAC;QAC7D,IAAIF,SAAS,EAAE;UAAC;QAAO;QACvBH,WAAW,CAACS,MAAM,CAACE,GAAG,CAAC;MACzB,CAAC,CAAC,OAAOC,CAAM,EAAE;QACf,IAAIT,SAAS,EAAE;UAAC;QAAO;QACvBU,OAAO,CAACC,GAAG,CAACF,CAAC,EAAEG,OAAO,CAAC;QACvBb,QAAQ,CAACU,CAAC,EAAEG,OAAO,IAAI,iBAAiB,CAAC;MAC3C;IACF,CAAC;IACDX,GAAG,CAAC,CAAC;IACL,OAAO,MAAM;MACXD,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CAACL,MAAM,CAAC,CAAC;EAEZ,IAAIG,KAAK,EAAE;IACT,oBACEL,IAAA,CAACN,IAAI;MAAC0B,KAAK,EAAEC,MAAM,CAACC,MAAO;MAAAC,QAAA,eACzBzB,KAAA,CAACL,IAAI;QAAA8B,QAAA,GAAC,qBAAmB,EAAClB,KAAK;MAAA,CAAO;IAAC,CACnC,CAAC;EAEX;EAEA,IAAI,CAACF,QAAQ,EAAE;IACb,oBACEH,IAAA,CAACN,IAAI;MAAC0B,KAAK,EAAEC,MAAM,CAACC,MAAO;MAAAC,QAAA,eACzBvB,IAAA,CAACT,iBAAiB;QAACiC,IAAI,EAAC;MAAO,CAAE;IAAC,CAC9B,CAAC;EAEX;EAEA,oBACExB,IAAA,CAACN,IAAI;IAAC0B,KAAK,EAAEC,MAAM,CAACI,SAAU;IAAAF,QAAA,eAC5BvB,IAAA,CAACL,OAAO;MACN+B,MAAM,EAAE;QAAEX,GAAG,EAAEZ;MAAS,CAAE;MAC1BiB,KAAK,EAAEC,MAAM,CAACM,OAAQ;MACtBC,eAAe,EAAE,CAAC,GAAG,CAAE;MACvBC,eAAe;MACfC,2BAA2B;MAC3BC,gCAAgC;IAAA,CACjC;EAAC,CACE,CAAC;AAEX,CAAC;AAED,eAAe9B,SAAS;AAExB,MAAMoB,MAAM,GAAG7B,UAAU,CAACwC,MAAM,CAAC;EAC/BP,SAAS,EAAE;IAAEQ,IAAI,EAAE,CAAC;IAAEC,KAAK,EAAE,MAAM;IAAEC,eAAe,EAAE;EAAO,CAAC;EAC9DR,OAAO,EAAE;IAAEM,IAAI,EAAE,CAAC;IAAEE,eAAe,EAAE;EAAO,CAAC;EAC7Cb,MAAM,EAAE;IAAEW,IAAI,EAAE,CAAC;IAAEG,UAAU,EAAE,QAAQ;IAAEC,cAAc,EAAE;EAAS;AACpE,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useState","ActivityIndicator","Platform","StyleSheet","Text","View","WebView","FileSystem","jsx","_jsx","jsxs","_jsxs","PdfViewer","pdfUrl","localUri","setLocalUri","error","setError","isAndroid","OS","cancelled","run","target","cacheDirectory","Date","now","result","downloadAsync","uri","e","console","log","message","gviewUrl","encodeURIComponent","style","styles","container","children","source","webview","originWhitelist","startInLoadingState","renderLoading","center","size","allowFileAccess","allowFileAccessFromFileURLs","allowUniversalAccessFromFileURLs","create","flex","width","backgroundColor","alignItems","justifyContent"],"sourceRoot":"../../../../../src","sources":["components/Modals/FilePreviewModal/PdfView.tsx"],"mappings":"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","ignoreList":[]}
@@ -31,7 +31,11 @@ const Modal = ({
31
31
  return modal && /*#__PURE__*/_jsxs(ModalBackground, {
32
32
  id: "modal-background",
33
33
  style: {
34
- position: 'absolute'
34
+ position: 'absolute',
35
+ top: 0,
36
+ left: 0,
37
+ right: 0,
38
+ bottom: 0
35
39
  },
36
40
  children: [renderModalContent(), children]
37
41
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","ModalBackground","useDispatch","setActiveModal","MODAL_TYPES","MODAL_COMPONENTS","jsx","_jsx","jsxs","_jsxs","Modal","children","modal","setOpenModal","dispatch","handleCloseModal","handleBackButtonClick","SETTINGS","renderModalContent","ModalComponent","handleClose","MANAGE_DATA","VISIBILITY","REFERRALS","DOCUMENT_SHARES","PROFILE_SHARES","BLOCKED_USERS","id","style","position"],"sourceRoot":"../../../../../src","sources":["components/Modals/Modal/Modal.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,0BAA0B;AAE1D,SAASC,WAAW,QAAQ,aAAa;AACzC,SAASC,cAAc,QAAQ,sCAAsC;AACrE,SAASC,WAAW,QAAQ,wCAAwC;AACpE,SAASC,gBAAgB,QAAQ,6CAA6C;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQ/E,MAAMC,KAA2B,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,KAAK;EAAEC;AAAa,CAAC,KAAK;EACzE,MAAMC,QAAQ,GAAGZ,WAAW,CAAC,CAAC;EAC9B,MAAMa,gBAAgB,GAAGA,CAAA,KAAMF,YAAY,CAAC,CAAC;EAC7C,MAAMG,qBAAqB,GAAGA,CAAA,KAC5BF,QAAQ,CAACX,cAAc,CAACC,WAAW,CAACa,QAAQ,CAAC,CAAC;EAEhD,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;IAC/B,IAAI,CAACN,KAAK,EAAE;MAAC,OAAO,IAAI;IAAC;IAEzB,MAAMO,cAAc,GAAGd,gBAAgB,CAACO,KAAK,CAAC;IAE9C,IAAI,CAACO,cAAc,EAAE;MAAC,OAAO,IAAI;IAAC;IAElC,MAAMC,WAAW,GACfR,KAAK,KAAKR,WAAW,CAACiB,WAAW,IACjCT,KAAK,KAAKR,WAAW,CAACkB,UAAU,IAChCV,KAAK,KAAKR,WAAW,CAACmB,SAAS,IAC/BX,KAAK,KAAKR,WAAW,CAACoB,eAAe,IACrCZ,KAAK,KAAKR,WAAW,CAACqB,cAAc,IACpCb,KAAK,KAAKR,WAAW,CAACsB,aAAa,GAC/BV,qBAAqB,GACrBD,gBAAgB;IAEtB,oBAAOR,IAAA,CAACY,cAAc;MAACJ,gBAAgB,EAAEK;IAAY,CAAE,CAAC;EAC1D,CAAC;EACD,OACER,KAAK,iBACHH,KAAA,CAACR,eAAe;IAAC0B,EAAE,EAAC,kBAAkB;IAACC,KAAK,EAAE;MAAEC,QAAQ,EAAE;IAAW,CAAE;IAAAlB,QAAA,GACpEO,kBAAkB,CAAC,CAAC,EACpBP,QAAQ;EAAA,CACM,CAClB;AAEL,CAAC;AAED,eAAeD,KAAK","ignoreList":[]}
1
+ {"version":3,"names":["React","ModalBackground","useDispatch","setActiveModal","MODAL_TYPES","MODAL_COMPONENTS","jsx","_jsx","jsxs","_jsxs","Modal","children","modal","setOpenModal","dispatch","handleCloseModal","handleBackButtonClick","SETTINGS","renderModalContent","ModalComponent","handleClose","MANAGE_DATA","VISIBILITY","REFERRALS","DOCUMENT_SHARES","PROFILE_SHARES","BLOCKED_USERS","id","style","position","top","left","right","bottom"],"sourceRoot":"../../../../../src","sources":["components/Modals/Modal/Modal.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,0BAA0B;AAE1D,SAASC,WAAW,QAAQ,aAAa;AACzC,SAASC,cAAc,QAAQ,sCAAsC;AACrE,SAASC,WAAW,QAAQ,wCAAwC;AACpE,SAASC,gBAAgB,QAAQ,6CAA6C;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQ/E,MAAMC,KAA2B,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,KAAK;EAAEC;AAAa,CAAC,KAAK;EACzE,MAAMC,QAAQ,GAAGZ,WAAW,CAAC,CAAC;EAC9B,MAAMa,gBAAgB,GAAGA,CAAA,KAAMF,YAAY,CAAC,CAAC;EAC7C,MAAMG,qBAAqB,GAAGA,CAAA,KAC5BF,QAAQ,CAACX,cAAc,CAACC,WAAW,CAACa,QAAQ,CAAC,CAAC;EAEhD,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;IAC/B,IAAI,CAACN,KAAK,EAAE;MAAC,OAAO,IAAI;IAAC;IAEzB,MAAMO,cAAc,GAAGd,gBAAgB,CAACO,KAAK,CAAC;IAE9C,IAAI,CAACO,cAAc,EAAE;MAAC,OAAO,IAAI;IAAC;IAElC,MAAMC,WAAW,GACfR,KAAK,KAAKR,WAAW,CAACiB,WAAW,IACjCT,KAAK,KAAKR,WAAW,CAACkB,UAAU,IAChCV,KAAK,KAAKR,WAAW,CAACmB,SAAS,IAC/BX,KAAK,KAAKR,WAAW,CAACoB,eAAe,IACrCZ,KAAK,KAAKR,WAAW,CAACqB,cAAc,IACpCb,KAAK,KAAKR,WAAW,CAACsB,aAAa,GAC/BV,qBAAqB,GACrBD,gBAAgB;IAEtB,oBAAOR,IAAA,CAACY,cAAc;MAACJ,gBAAgB,EAAEK;IAAY,CAAE,CAAC;EAC1D,CAAC;EACD,OACER,KAAK,iBACHH,KAAA,CAACR,eAAe;IACd0B,EAAE,EAAC,kBAAkB;IACrBC,KAAK,EAAE;MAAEC,QAAQ,EAAE,UAAU;MAAEC,GAAG,EAAE,CAAC;MAAEC,IAAI,EAAE,CAAC;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAE;IAAAtB,QAAA,GAErEO,kBAAkB,CAAC,CAAC,EACpBP,QAAQ;EAAA,CACM,CAClB;AAEL,CAAC;AAED,eAAeD,KAAK","ignoreList":[]}
@@ -3,8 +3,8 @@
3
3
  import { useRef } from 'react';
4
4
  import { CloseButton, GroupContainer, ModalBackground, ModalContainer, ModalDescription, ModalTitle } from '../styledModalComponents';
5
5
  import Button from '../../styled/Button';
6
- import { Modal, Text } from 'react-native';
7
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
+ import { Modal, Text, View, StyleSheet } from 'react-native';
7
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
8
8
  export const ModalWrapper = ({
9
9
  iconTitle: IconTitle,
10
10
  title,
@@ -28,63 +28,93 @@ export const ModalWrapper = ({
28
28
  // }
29
29
  // };
30
30
 
31
+ const inner = /*#__PURE__*/_jsxs(_Fragment, {
32
+ children: [/*#__PURE__*/_jsx(CloseButton, {
33
+ onPress: handleCloseModal,
34
+ children: /*#__PURE__*/_jsx(Text, {
35
+ style: {
36
+ fontSize: 24
37
+ },
38
+ children: "\xD7"
39
+ })
40
+ }), IconTitle ? /*#__PURE__*/_jsx(IconTitle, {}) : /*#__PURE__*/_jsx(ModalTitle, {
41
+ children: title
42
+ }), description && /*#__PURE__*/_jsx(ModalDescription, {
43
+ children: description
44
+ }), isTextarea && /*#__PURE__*/_jsx(GroupContainer, {
45
+ style: {
46
+ flexDirection: 'column',
47
+ position: 'relative'
48
+ }
49
+ }), !buttonText && /*#__PURE__*/_jsx(GroupContainer, {}), /*#__PURE__*/_jsxs(GroupContainer, {
50
+ children: [/*#__PURE__*/_jsx(Button, {
51
+ onPress: handleCloseModal,
52
+ text: 'Cancel',
53
+ style: {
54
+ width: '100%'
55
+ },
56
+ unstyled: true,
57
+ variant: "outlined"
58
+ }), buttonText && /*#__PURE__*/_jsx(Button, {
59
+ onPress: handleClick,
60
+ text: buttonText
61
+ // White label on the filled (e.g. red Delete) button. Button
62
+ // applies an inline `color: color || 'black'` that overrides
63
+ // the filled-variant white, so pass it explicitly.
64
+ ,
65
+ color: "#FFFFFF",
66
+ style: {
67
+ width: '100%',
68
+ backgroundColor: backgroundColorButton
69
+ },
70
+ unstyled: true,
71
+ variant: "filled"
72
+ })]
73
+ })]
74
+ });
31
75
  return /*#__PURE__*/_jsx(Modal, {
32
76
  transparent: true,
33
77
  animationType: "fade",
34
78
  visible: true,
35
79
  onRequestClose: handleCloseModal,
36
80
  children: /*#__PURE__*/_jsx(ModalBackground, {
37
- children: /*#__PURE__*/_jsxs(ModalContainer, {
38
- style: compact ? {
39
- flex: 0,
40
- width: '85%',
41
- maxWidth: 360,
42
- height: 'auto',
43
- padding: 24,
44
- borderRadius: 16,
45
- gap: 16
46
- } : {
81
+ children: compact ?
82
+ /*#__PURE__*/
83
+ // Dedicated small centered dialog. The base ModalContainer is
84
+ // flex:1 / width:100% / height:100% (full-screen); style-merge
85
+ // overrides proved unreliable, so confirm-style modals render in
86
+ // their own bounded View instead — never full-screen (#14).
87
+ // (Upstream also shrank this modal; this keeps that intent while
88
+ // adding the white filled-button label via `inner` below.)
89
+ _jsx(View, {
90
+ style: styles.compactDialog,
91
+ children: inner
92
+ }) : /*#__PURE__*/_jsx(ModalContainer, {
93
+ style: {
47
94
  maxWidth: 640
48
95
  },
49
- children: [/*#__PURE__*/_jsx(CloseButton, {
50
- onPress: handleCloseModal,
51
- children: /*#__PURE__*/_jsx(Text, {
52
- style: {
53
- fontSize: 24
54
- },
55
- children: "\xD7"
56
- })
57
- }), IconTitle ? /*#__PURE__*/_jsx(IconTitle, {}) : /*#__PURE__*/_jsx(ModalTitle, {
58
- children: title
59
- }), description && /*#__PURE__*/_jsx(ModalDescription, {
60
- children: description
61
- }), isTextarea && /*#__PURE__*/_jsx(GroupContainer, {
62
- style: {
63
- flexDirection: 'column',
64
- position: 'relative'
65
- }
66
- }), !buttonText && /*#__PURE__*/_jsx(GroupContainer, {}), /*#__PURE__*/_jsxs(GroupContainer, {
67
- children: [/*#__PURE__*/_jsx(Button, {
68
- onPress: handleCloseModal,
69
- text: 'Cancel',
70
- style: {
71
- width: '100%'
72
- },
73
- unstyled: true,
74
- variant: "outlined"
75
- }), buttonText && /*#__PURE__*/_jsx(Button, {
76
- onPress: handleClick,
77
- text: buttonText,
78
- style: {
79
- width: '100%',
80
- backgroundColor: backgroundColorButton
81
- },
82
- unstyled: true,
83
- variant: "filled"
84
- })]
85
- })]
96
+ children: inner
86
97
  })
87
98
  })
88
99
  });
89
100
  };
101
+ const styles = StyleSheet.create({
102
+ compactDialog: {
103
+ width: '85%',
104
+ maxWidth: 360,
105
+ alignSelf: 'center',
106
+ backgroundColor: '#fff',
107
+ borderRadius: 16,
108
+ padding: 24,
109
+ gap: 16,
110
+ shadowColor: '#000',
111
+ shadowOffset: {
112
+ width: 0,
113
+ height: 4
114
+ },
115
+ shadowOpacity: 0.2,
116
+ shadowRadius: 12,
117
+ elevation: 8
118
+ }
119
+ });
90
120
  //# sourceMappingURL=ModalWrapper.js.map