@ethora/chat-component-rn 26.4.1

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 (273) hide show
  1. package/LICENSE +661 -0
  2. package/README.md +148 -0
  3. package/empty-shim.js +15 -0
  4. package/index.js +13 -0
  5. package/metro.js +72 -0
  6. package/package.json +99 -0
  7. package/src/api.config.ts +34 -0
  8. package/src/assets/BG.png +0 -0
  9. package/src/assets/BG.tsx +56 -0
  10. package/src/assets/File.svg +4 -0
  11. package/src/assets/ForzaCare.png +0 -0
  12. package/src/assets/ForzaCare.tsx +27 -0
  13. package/src/assets/icons.tsx +685 -0
  14. package/src/assets/images.tsx +41 -0
  15. package/src/assets/test.xml +243 -0
  16. package/src/components/AuthForms/Login.tsx +295 -0
  17. package/src/components/AuthForms/LoginAnonym.tsx +68 -0
  18. package/src/components/AuthForms/Register.tsx +8 -0
  19. package/src/components/ContextMenu/ContextMenuComponents.tsx +87 -0
  20. package/src/components/DropdownMenu/DropdownMenu.tsx +244 -0
  21. package/src/components/ExampleComponents/CustomMessage.tsx +92 -0
  22. package/src/components/ExampleComponents/CustomTypingIndicatorExamples.tsx +239 -0
  23. package/src/components/Header/HeaderRoomList.tsx +104 -0
  24. package/src/components/InputComponents/AudioInput.tsx +24 -0
  25. package/src/components/InputComponents/AudioRecorder.tsx +100 -0
  26. package/src/components/InputComponents/MediaInput.tsx +114 -0
  27. package/src/components/InputComponents/RecordingIndicator.tsx +77 -0
  28. package/src/components/InputComponents/Search.tsx +135 -0
  29. package/src/components/InputComponents/TextInput.tsx +66 -0
  30. package/src/components/MainComponents/ChatHeader.tsx +163 -0
  31. package/src/components/MainComponents/ChatRoom.tsx +392 -0
  32. package/src/components/MainComponents/ChatWrapper.tsx +318 -0
  33. package/src/components/MainComponents/ChooseChatMessage.tsx +44 -0
  34. package/src/components/MainComponents/ConnectionBanner.tsx +33 -0
  35. package/src/components/MainComponents/EditWrapper.tsx +72 -0
  36. package/src/components/MainComponents/LoginWrapper.tsx +134 -0
  37. package/src/components/MainComponents/MediaMessage.tsx +55 -0
  38. package/src/components/MainComponents/MessageContainer.tsx +122 -0
  39. package/src/components/MainComponents/MessageList.tsx +429 -0
  40. package/src/components/MainComponents/NoMessagesPlaceholder.tsx +49 -0
  41. package/src/components/MainComponents/ProfileImagePlaceholder.tsx +143 -0
  42. package/src/components/MainComponents/RNStyled.tsx +34 -0
  43. package/src/components/MainComponents/ReduxWrapper.tsx +40 -0
  44. package/src/components/MainComponents/RoomList.tsx +246 -0
  45. package/src/components/MainComponents/Select.tsx +165 -0
  46. package/src/components/MainComponents/Switch.tsx +73 -0
  47. package/src/components/MainComponents/SystemMessage.tsx +42 -0
  48. package/src/components/Menu/HeaderRoomListMenu.tsx +169 -0
  49. package/src/components/MenuRoom/MenuRoom.tsx +46 -0
  50. package/src/components/MessageBubble/Avatar.tsx +84 -0
  51. package/src/components/MessageBubble/BottomReplyContainer.tsx +117 -0
  52. package/src/components/MessageBubble/CustomDivider.tsx +10 -0
  53. package/src/components/MessageBubble/DeletedMessage.tsx +36 -0
  54. package/src/components/MessageBubble/Message.tsx +400 -0
  55. package/src/components/MessageBubble/MessageInteractions.tsx +247 -0
  56. package/src/components/MessageBubble/MessageReaction.tsx +149 -0
  57. package/src/components/MessageBubble/MessageReply.tsx +50 -0
  58. package/src/components/MessageBubble/MessageTranslations.tsx +30 -0
  59. package/src/components/Modals/AddMembersModal/AddMembersModal.tsx +142 -0
  60. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +471 -0
  61. package/src/components/Modals/ChatProfileModal/DeleteChatModal.tsx +91 -0
  62. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +298 -0
  63. package/src/components/Modals/Modal/Modal.tsx +52 -0
  64. package/src/components/Modals/ModalHeaderComponent.tsx +41 -0
  65. package/src/components/Modals/ModalSelectMedia/ModalSelectMedia.tsx +285 -0
  66. package/src/components/Modals/ModalWrapper/ModalWrapper.tsx +103 -0
  67. package/src/components/Modals/NewChatModal/ModalContent.tsx +151 -0
  68. package/src/components/Modals/NewChatModal/NewChatModal.tsx +391 -0
  69. package/src/components/Modals/NewChatModal/UpdNewChatModal.tsx +136 -0
  70. package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +134 -0
  71. package/src/components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal.tsx +63 -0
  72. package/src/components/Modals/SettingsModals/DocumentShares/DocumentSharesModal.tsx +115 -0
  73. package/src/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.tsx +121 -0
  74. package/src/components/Modals/SettingsModals/ManageDataModal/StyledComponents.ts +0 -0
  75. package/src/components/Modals/SettingsModals/ProfileShares/ProfileShares.tsx +65 -0
  76. package/src/components/Modals/SettingsModals/Referrals/Referrals.tsx +90 -0
  77. package/src/components/Modals/SettingsModals/SharedStyledComponents.ts +74 -0
  78. package/src/components/Modals/SettingsModals/Visibility/RadioInput.tsx +59 -0
  79. package/src/components/Modals/SettingsModals/Visibility/StyledComponents.ts +32 -0
  80. package/src/components/Modals/SettingsModals/Visibility/VisibilityModal.tsx +146 -0
  81. package/src/components/Modals/UserProfileModal/EditUserModal.tsx +163 -0
  82. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +410 -0
  83. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +85 -0
  84. package/src/components/Modals/styledModalComponents.tsx +181 -0
  85. package/src/components/OperationalModal/OperationalModal.tsx +78 -0
  86. package/src/components/RoomComponents/ChatRoomItem.tsx +219 -0
  87. package/src/components/RoomComponents/LastMessageItem.tsx +47 -0
  88. package/src/components/RoomComponents/styled/LastAudioMessage.tsx +62 -0
  89. package/src/components/RoomComponents/styled/LastMessageEmoji.tsx +26 -0
  90. package/src/components/RoomComponents/styled/LastMessageFile.tsx +54 -0
  91. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +54 -0
  92. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +70 -0
  93. package/src/components/RoomComponents/styled/LastTextMessage.tsx +65 -0
  94. package/src/components/RoomComponents/styled/StyledRoomComponents.ts +53 -0
  95. package/src/components/SortDropDown/index.tsx +76 -0
  96. package/src/components/Thread/ThreadHeader.tsx +41 -0
  97. package/src/components/Thread/ThreadWrapper.tsx +270 -0
  98. package/src/components/Toast/Toast.tsx +128 -0
  99. package/src/components/Toast/index.ts +13 -0
  100. package/src/components/UsersList/StyledComponents.ts +30 -0
  101. package/src/components/UsersList/UsersList.tsx +112 -0
  102. package/src/components/styled/ActionButton.tsx +40 -0
  103. package/src/components/styled/AudioMessage.tsx +82 -0
  104. package/src/components/styled/Button.tsx +107 -0
  105. package/src/components/styled/ChatWrapperBox.tsx +9 -0
  106. package/src/components/styled/DateLabel.tsx +77 -0
  107. package/src/components/styled/Loader.tsx +65 -0
  108. package/src/components/styled/MediaFilePreview.tsx +42 -0
  109. package/src/components/styled/MediaModal.tsx +54 -0
  110. package/src/components/styled/MessageImage.tsx +54 -0
  111. package/src/components/styled/NewMessageLabel.tsx +50 -0
  112. package/src/components/styled/RoomListComponents/index.tsx +164 -0
  113. package/src/components/styled/SendInput.tsx +297 -0
  114. package/src/components/styled/StyledComponents.ts +320 -0
  115. package/src/components/styled/StyledInput.tsx +101 -0
  116. package/src/components/styled/StyledInputComponents/AudioComponents.tsx +1 -0
  117. package/src/components/styled/StyledInputComponents/Composing.tsx +97 -0
  118. package/src/components/styled/StyledInputComponents/CustomTypingIndicator.tsx +261 -0
  119. package/src/components/styled/StyledInputComponents/MediaComponents.tsx +90 -0
  120. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +131 -0
  121. package/src/components/styled/StyledInputComponents/VideoComponents.tsx +49 -0
  122. package/src/components/styled/TreadLabel.tsx +50 -0
  123. package/src/components/styled/UnsupportedType.tsx +95 -0
  124. package/src/components/styled/VideoMessage.tsx +68 -0
  125. package/src/context/MessageNotificationContext.tsx +335 -0
  126. package/src/context/PushNotificationProvider.tsx +78 -0
  127. package/src/context/ToastContext.tsx +63 -0
  128. package/src/context/toastProvider.tsx +0 -0
  129. package/src/context/xmppProvider.tsx +364 -0
  130. package/src/helpers/block_scroll.ts +95 -0
  131. package/src/helpers/chatAutoEnterer.ts +46 -0
  132. package/src/helpers/checkUniqueUsers.tsx +31 -0
  133. package/src/helpers/constants/CHAT_TYPES.ts +6 -0
  134. package/src/helpers/constants/LANGUAGE_OPTIONS.ts +14 -0
  135. package/src/helpers/constants/LOCAL_STORAGE.ts +3 -0
  136. package/src/helpers/constants/MESSAGE_INTERACTIONS.ts +29 -0
  137. package/src/helpers/constants/MODAL_TYPES.ts +57 -0
  138. package/src/helpers/constants/PLATFORM_CONSTANTS.ts +3 -0
  139. package/src/helpers/createMainMessageForThread.ts +23 -0
  140. package/src/helpers/createMessageFromXml.ts +118 -0
  141. package/src/helpers/createRoomFromApi.tsx +27 -0
  142. package/src/helpers/createUserNameFromSetUser.ts +15 -0
  143. package/src/helpers/dateComparison.ts +12 -0
  144. package/src/helpers/debounce.ts +10 -0
  145. package/src/helpers/ensureScopedChatCache.ts +61 -0
  146. package/src/helpers/extractUniqueMembersFromRooms.ts +45 -0
  147. package/src/helpers/formatNumberWithCommas.ts +3 -0
  148. package/src/helpers/getBooleanFromString.ts +7 -0
  149. package/src/helpers/getDataFromXml.ts +80 -0
  150. package/src/helpers/getNumberFromString.ts +5 -0
  151. package/src/helpers/getRoomsWithRetry.ts +45 -0
  152. package/src/helpers/getTintedColor.ts +28 -0
  153. package/src/helpers/getUnnamedUsers.ts +39 -0
  154. package/src/helpers/handleCopyClick.ts +3 -0
  155. package/src/helpers/handleXmppError.ts +14 -0
  156. package/src/helpers/hashcolor.ts +34 -0
  157. package/src/helpers/historyPreloadScheduler.ts +264 -0
  158. package/src/helpers/initRoomsPresence.ts +32 -0
  159. package/src/helpers/initXmppRooms.tsx +71 -0
  160. package/src/helpers/insertMessageWithDelimiter.ts +96 -0
  161. package/src/helpers/isChatIdPresentInArray.ts +54 -0
  162. package/src/helpers/localStorageUser.ts +9 -0
  163. package/src/helpers/markdownParser.tsx +295 -0
  164. package/src/helpers/nanoToMs.ts +3 -0
  165. package/src/helpers/parseMessageBody.tsx +516 -0
  166. package/src/helpers/parseUrls.tsx +42 -0
  167. package/src/helpers/resolveInitBeforeLoadUser.ts +240 -0
  168. package/src/helpers/storeConsole.ts +26 -0
  169. package/src/helpers/transformTranslatations.ts +16 -0
  170. package/src/helpers/updateMessagesTillLast.tsx +104 -0
  171. package/src/helpers/updatedChatLastTimestamps.ts +29 -0
  172. package/src/helpers/validator.ts +20 -0
  173. package/src/helpers/walletUsername.ts +12 -0
  174. package/src/hooks/hooks.ts +6 -0
  175. package/src/hooks/useChatSettingState.tsx +38 -0
  176. package/src/hooks/useChatWrapperInit.ts +266 -0
  177. package/src/hooks/useComposing.tsx +59 -0
  178. package/src/hooks/useCustomTypingIndicator.tsx +193 -0
  179. package/src/hooks/useEventHandlers.tsx +81 -0
  180. package/src/hooks/useGetNewArchRoom.tsx +57 -0
  181. package/src/hooks/useHeapSender.tsx +88 -0
  182. package/src/hooks/useLocalStorage.tsx +53 -0
  183. package/src/hooks/useLogout.tsx +31 -0
  184. package/src/hooks/useMessageHeapState.tsx +11 -0
  185. package/src/hooks/useMessageLoaderQueue.tsx +90 -0
  186. package/src/hooks/useMessageQueue.ts +146 -0
  187. package/src/hooks/usePendingNotification.ts +49 -0
  188. package/src/hooks/usePrevious.tsx +15 -0
  189. package/src/hooks/usePushNotifications.ts +106 -0
  190. package/src/hooks/useQRCodeChatHandler.ts +58 -0
  191. package/src/hooks/useRoomInitialization.tsx +160 -0
  192. package/src/hooks/useRoomState.tsx +47 -0
  193. package/src/hooks/useRoomUrl.tsx +41 -0
  194. package/src/hooks/useSendMessage.tsx +306 -0
  195. package/src/hooks/useUnreadMessagesCounter.ts +55 -0
  196. package/src/hooks/useXmppInitialization.ts +148 -0
  197. package/src/main.ts +45 -0
  198. package/src/networking/api-requests/auth.api.ts +140 -0
  199. package/src/networking/api-requests/push.api.ts +55 -0
  200. package/src/networking/api-requests/roomMembers.api.ts +20 -0
  201. package/src/networking/api-requests/rooms.api.ts +142 -0
  202. package/src/networking/api-requests/user.api.ts +65 -0
  203. package/src/networking/apiClient.ts +149 -0
  204. package/src/networking/helpers/refreshChecker.ts +13 -0
  205. package/src/networking/stanzaHandlers.ts +418 -0
  206. package/src/networking/xmpp/actionSetTimestampToPrivateStore.xmpp.ts +37 -0
  207. package/src/networking/xmpp/allRoomPresences.xmpp.ts +10 -0
  208. package/src/networking/xmpp/createPrivateRoom.xmpp.ts +26 -0
  209. package/src/networking/xmpp/createRoom.xmpp.ts +35 -0
  210. package/src/networking/xmpp/createRoomPresence.xmpp.ts +74 -0
  211. package/src/networking/xmpp/createTimeoutPromise.xmpp.ts +15 -0
  212. package/src/networking/xmpp/deleteMessage.xmpp.ts +19 -0
  213. package/src/networking/xmpp/editMessage.xmpp.ts +46 -0
  214. package/src/networking/xmpp/getChatsPrivateStoreRequest.xmpp.ts +57 -0
  215. package/src/networking/xmpp/getHistory.xmpp.ts +140 -0
  216. package/src/networking/xmpp/getLastMessageArchive.xmpp.ts +24 -0
  217. package/src/networking/xmpp/getRoomInfo.xmpp.ts +15 -0
  218. package/src/networking/xmpp/getRoomMembers.xmpp.ts +13 -0
  219. package/src/networking/xmpp/getRooms.xmpp.ts +43 -0
  220. package/src/networking/xmpp/getRoomsPaged.xmpp.ts +59 -0
  221. package/src/networking/xmpp/handlePong.xmpp.ts +7 -0
  222. package/src/networking/xmpp/handleStanzas.xmpp.ts +55 -0
  223. package/src/networking/xmpp/inviteRoomRequest.xmpp.ts +25 -0
  224. package/src/networking/xmpp/leaveTheRoom.xmpp.ts +15 -0
  225. package/src/networking/xmpp/listenerManager.ts +116 -0
  226. package/src/networking/xmpp/presenceInRoom.xmpp.ts +57 -0
  227. package/src/networking/xmpp/roomConfig.xmpp.ts +71 -0
  228. package/src/networking/xmpp/sendMediaMessage.xmpp.ts +97 -0
  229. package/src/networking/xmpp/sendMessageReaction.xmpp.ts +41 -0
  230. package/src/networking/xmpp/sendPing.xmpp.ts +21 -0
  231. package/src/networking/xmpp/sendTextMessage.xmpp.ts +99 -0
  232. package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +44 -0
  233. package/src/networking/xmpp/sendTypingRequest.xmpp.ts +26 -0
  234. package/src/networking/xmpp/setChatsPrivateStoreRequest.xmpp.ts +48 -0
  235. package/src/networking/xmpp/setMeAsOwner.xmpp.ts +52 -0
  236. package/src/networking/xmpp/setRoomImage.xmpp.ts +26 -0
  237. package/src/networking/xmpp/setVCard.xmpp.ts +19 -0
  238. package/src/networking/xmpp/subscribeToRoomMessages.xmpp.ts +75 -0
  239. package/src/networking/xmppClient.ts +603 -0
  240. package/src/roomStore/Middleware/logoutMiddleware.tsx +24 -0
  241. package/src/roomStore/Middleware/newMessageMidlleware.tsx +87 -0
  242. package/src/roomStore/Middleware/reactionsMiddleware.tsx +77 -0
  243. package/src/roomStore/Middleware/testMiddleware.tsx +20 -0
  244. package/src/roomStore/Middleware/unreadMidlleware.tsx +58 -0
  245. package/src/roomStore/chatSettingsSlice.ts +178 -0
  246. package/src/roomStore/index.ts +68 -0
  247. package/src/roomStore/persistence.ts +152 -0
  248. package/src/roomStore/roomHeapSlice.ts +37 -0
  249. package/src/roomStore/roomsSlice.ts +353 -0
  250. package/src/services/pushNotifications.ts +170 -0
  251. package/src/services/pushSubscriptionService.ts +145 -0
  252. package/src/types/messages.ts +61 -0
  253. package/src/types/models/action.model.ts +30 -0
  254. package/src/types/models/config.model.ts +16 -0
  255. package/src/types/models/customComponents.model.ts +53 -0
  256. package/src/types/models/language.model.ts +11 -0
  257. package/src/types/models/media.model.ts +5 -0
  258. package/src/types/models/message.model.ts +69 -0
  259. package/src/types/models/modal.model.ts +9 -0
  260. package/src/types/models/room.model.ts +120 -0
  261. package/src/types/models/user.model.ts +90 -0
  262. package/src/types/models/xmpp.model.ts +155 -0
  263. package/src/types/types.ts +505 -0
  264. package/src/utils/PriorityQueue.ts +47 -0
  265. package/src/utils/actionHelpers.ts +40 -0
  266. package/src/utils/actionLogger.ts +64 -0
  267. package/src/utils/clientRegistry.ts +80 -0
  268. package/src/utils/devLogger.ts +197 -0
  269. package/src/utils/messageNotificationManager.ts +108 -0
  270. package/src/utils/resendMessage.ts +87 -0
  271. package/src/utils/toastEmitter.ts +27 -0
  272. package/src/utils/xmppMemoryMonitor.ts +63 -0
  273. package/src/version.ts +1 -0
@@ -0,0 +1,243 @@
1
+ //history
2
+ <message xmlns="jabber:client" to="3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156@case-any-place-iframe-xmpp-dev.atomwcapps.com/1727189657257" from="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com">
3
+ <result id="1727188885290611" xmlns="urn:xmpp:mam:2">
4
+ <forwarded xmlns="urn:xmpp:forward:0">
5
+ <message xml:lang="en" from="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com/3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156" type="groupchat" id="send-message:1727188885167" xmlns="jabber:client">
6
+ <x xmlns="http://jabber.org/protocol/muc#user">
7
+ <item jid="3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156@case-any-place-iframe-xmpp-dev.atomwcapps.com/1727188880221" />
8
+ </x>
9
+ <archived by="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" id="1727188885290611" xmlns="urn:xmpp:mam:tmp" />
10
+ <stanza-id by="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" id="1727188885290611" xmlns="urn:xmpp:sid:0" />
11
+ <data xmlns="conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" senderFirstName="e" senderLastName="m" senderJID="3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156@case-any-place-iframe-xmpp-dev.atomwcapps.com/1727188880221" senderWalletAddress="3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156" roomJid="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6" isSystemMessage="false" photoURL="" tokenAmount="0" quickReplies="" notDisplayedValue="" showInChannel="true" />
12
+ <body>
13
+ 123as
14
+ </body>
15
+ </message>
16
+ <delay from="conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" stamp="2024-09-24T14:41:25.290611Z" xmlns="urn:xmpp:delay" />
17
+ </forwarded>
18
+ </result>
19
+ </message>
20
+ //realtime
21
+ <message xmlns="jabber:client" xml:lang="en" to="3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156@case-any-place-iframe-xmpp-dev.atomwcapps.com/1727199505078" from="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com/3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156" type="groupchat" id="send-message:1727199609430">
22
+ <archived by="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" id="1727199609620712" xmlns="urn:xmpp:mam:tmp" />
23
+ <stanza-id by="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" id="1727199609620712" xmlns="urn:xmpp:sid:0" />
24
+ <data xmlns="wss://case-any-place-iframe-xmpp-dev.atomwcapps.com/ws" senderFirstName="emp1 emp1" senderJID="3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156@case-any-place-iframe-xmpp-dev.atomwcapps.com/26663382910864279623267" roomJid="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" isSystemMessage="false" tokenAmount="0" quickReplies="" notDisplayedValue="" showInChannel="true" />
25
+ <body>
26
+ 1251
27
+ </body>
28
+ </message>
29
+ <message xmlns="jabber:client" xml:lang="en" to="3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156@case-any-place-iframe-xmpp-dev.atomwcapps.com/1727189642496" from="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com/3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156" type="groupchat" id="send-message:1727189963389">
30
+ <archived by="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" id="1727189963581654" xmlns="urn:xmpp:mam:tmp" />
31
+ <stanza-id by="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" id="1727189963581654" xmlns="urn:xmpp:sid:0" />
32
+ <data xmlns="conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" senderFirstName="e" senderLastName="m" senderJID="3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156@case-any-place-iframe-xmpp-dev.atomwcapps.com/1727189657257" senderWalletAddress="3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156" roomJid="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6" isSystemMessage="false" photoURL="" tokenAmount="0" quickReplies="" notDisplayedValue="" showInChannel="true" />
33
+ <body>
34
+ 111123
35
+ </body>
36
+ </message>
37
+ //composing
38
+ <message xmlns="jabber:client" xml:lang="en" to="3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156@case-any-place-iframe-xmpp-dev.atomwcapps.com/1727199505078" from="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com/3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156" type="groupchat" id="typing-1727199608465">
39
+ <composing xmlns="http://jabber.org/protocol/chatstates" />
40
+ <data fullName="emp1 emp1" />
41
+ <stanza-id by="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" id="1727199608653240" xmlns="urn:xmpp:sid:0" />
42
+ </message>
43
+ <message xmlns="jabber:client" xml:lang="en" to="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com/1029570399890456970131474" from="5f9a4603b2b5bbfa6b228b642127c56d03b778ad594c52b755e605c977303979@conference.xmpp.ethoradev.com/0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78" type="groupchat" id="typing-1727398801870">
44
+ <composing xmlns="http://jabber.org/protocol/chatstates" />
45
+ <data fullName="Raze Yuki" />
46
+ <stanza-id by="5f9a4603b2b5bbfa6b228b642127c56d03b778ad594c52b755e605c977303979@conference.xmpp.ethoradev.com" id="1727398802037869" xmlns="urn:xmpp:sid:0" />
47
+ </message>
48
+ //paused
49
+ <message xmlns="jabber:client" xml:lang="en" to="3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156@case-any-place-iframe-xmpp-dev.atomwcapps.com/1727199448461" from="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com/3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156" type="groupchat" id="stop-typing-1727199611818">
50
+ <paused xmlns="http://jabber.org/protocol/chatstates" />
51
+ <data fullName="emp1 emp1" />
52
+ <stanza-id by="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" id="1727199612009461" xmlns="urn:xmpp:sid:0" />
53
+ </message>
54
+ <message xmlns="jabber:client" xml:lang="en" to="3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156@case-any-place-iframe-xmpp-dev.atomwcapps.com/1727213816335" from="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6" type="error" id="typing-1727213820721">
55
+ <paused xmlns="http://jabber.org/protocol/chatstates" />
56
+ <data fullName="e m" />
57
+ <error type="cancel">
58
+ <remote-server-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
59
+ <text xml:lang="en" xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">
60
+ Remote domain is not an IDN hostname
61
+ </text>
62
+ </error>
63
+ </message>
64
+ <message xmlns="jabber:client" xml:lang="en" to="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com/1029570399890456970131474" from="5f9a4603b2b5bbfa6b228b642127c56d03b778ad594c52b755e605c977303979@conference.xmpp.ethoradev.com/0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78" type="groupchat" id="typing-1727398803922">
65
+ <paused xmlns="http://jabber.org/protocol/chatstates" />
66
+ <data fullName="Raze Yuki" />
67
+ <stanza-id by="5f9a4603b2b5bbfa6b228b642127c56d03b778ad594c52b755e605c977303979@conference.xmpp.ethoradev.com" id="1727398804087352" xmlns="urn:xmpp:sid:0" />
68
+ </message>
69
+ //subject
70
+ <message xmlns="jabber:client" to="3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156@case-any-place-iframe-xmpp-dev.atomwcapps.com/1727200763551" from="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" type="groupchat">
71
+ <subject />
72
+ </message>
73
+ <message xmlns="jabber:client" xml:lang="en" to="3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156@case-any-place-iframe-xmpp-dev.atomwcapps.com/1727200854781" from="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com/3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156" type="groupchat" id="send-message:1727200901894">
74
+ <archived by="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" id="1727200902055525" xmlns="urn:xmpp:mam:tmp" />
75
+ <stanza-id by="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" id="1727200902055525" xmlns="urn:xmpp:sid:0" />
76
+ <data xmlns="wss://case-any-place-iframe-xmpp-dev.atomwcapps.com/ws" senderFirstName="emp1 emp1" senderJID="3ca9c8541c020dee4ff34077dd1006323464eca35353cd74cde2b71bfa6b2156@case-any-place-iframe-xmpp-dev.atomwcapps.com/472486283397765324543202" roomJid="da866751f3915731b5e408a2a2531355f7eba2f2c5bc00c5126889a5995e9bd6@conference.case-any-place-iframe-xmpp-dev.atomwcapps.com" isSystemMessage="false" tokenAmount="0" quickReplies="" notDisplayedValue="" showInChannel="true" />
77
+ <body>
78
+ 9087
79
+ </body>
80
+ </message>
81
+ <message type="groupchat" id="typing-1727449049844" to="5f9a4603b2b5bbfa6b228b642127c56d03b778ad594c52b755e605c977303979@conference.xmpp.ethoradev.com" xmlns="jabber:client">
82
+ <composing xmlns="http://jabber.org/protocol/chatstates" />
83
+ <data fullName="test test" />
84
+ </message>
85
+ <message xmlns="jabber:client" to="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com/1189077568371589559545426" from="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com">
86
+ <result id="1727969410723554" queryid="userArchive" xmlns="urn:xmpp:mam:2">
87
+ <forwarded xmlns="urn:xmpp:forward:0">
88
+ <message to="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com" from="57834759e627abd4ee3d10b4df859d1665753c208206419e5ffaa0e384137ba3@conference.xmpp.ethoradev.com" id="17147864347420389854" xmlns="jabber:client">
89
+ <archived by="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com" id="1727969410723554" xmlns="urn:xmpp:mam:tmp" />
90
+ <stanza-id by="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com" id="1727969410723554" xmlns="urn:xmpp:sid:0" />
91
+ <event xmlns="http://jabber.org/protocol/pubsub#event">
92
+ <items node="urn:xmpp:mucsub:nodes:presence">
93
+ <item id="17147864347420389854">
94
+ <presence xmlns="jabber:client" to="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com" from="57834759e627abd4ee3d10b4df859d1665753c208206419e5ffaa0e384137ba3@conference.xmpp.ethoradev.com/0x9_c475da5_fa_ff_d_b175_fc286_b2b0581_ed48e674_cbf" type="unavailable">
95
+ <x xmlns="http://jabber.org/protocol/muc#user">
96
+ <item role="none" affiliation="none" />
97
+ </x>
98
+ </presence>
99
+ </item>
100
+ </items>
101
+ </event>
102
+ </message>
103
+ <delay from="xmpp.ethoradev.com" stamp="2024-10-03T15:30:10.723554Z" xmlns="urn:xmpp:delay" />
104
+ </forwarded>
105
+ </result>
106
+ </message>
107
+ <message xmlns="jabber:client" to="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com/287950209239444818056227" from="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com">
108
+ <result id="1728534590392664" queryid="userArchive" xmlns="urn:xmpp:mam:2">
109
+ <forwarded xmlns="urn:xmpp:forward:0">
110
+ <message to="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com" from="d673a602b47d524ba6a95102cc71fc3f308b31d64454498078a056cf54e5a2b4@conference.xmpp.ethoradev.com" id="11358382913258728319" xmlns="jabber:client">
111
+ <archived by="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com" id="1728534590392664" xmlns="urn:xmpp:mam:tmp" />
112
+ <stanza-id by="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com" id="1728534590392664" xmlns="urn:xmpp:sid:0" />
113
+ <event xmlns="http://jabber.org/protocol/pubsub#event">
114
+ <items node="urn:xmpp:mucsub:nodes:presence">
115
+ <item id="11358382913258728319">
116
+ <presence xmlns="jabber:client" to="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com" from="d673a602b47d524ba6a95102cc71fc3f308b31d64454498078a056cf54e5a2b4@conference.xmpp.ethoradev.com/0x239619_f_dda54_f471_febfb_e048_eb9238ea_f_e5_d360" type="unavailable">
117
+ <x xmlns="http://jabber.org/protocol/muc#user">
118
+ <item role="none" affiliation="none" />
119
+ </x>
120
+ </presence>
121
+ </item>
122
+ </items>
123
+ </event>
124
+ </message>
125
+ <delay from="xmpp.ethoradev.com" stamp="2024-10-10T04:29:50.392664Z" xmlns="urn:xmpp:delay" />
126
+ </forwarded>
127
+ </result>
128
+ </message>
129
+ //roomInfo
130
+ <iq xmlns="jabber:client" xml:lang="en" to="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com/14275056360500819986101106" from="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com" type="result" id="getUserRooms">
131
+ <query xmlns="ns:getrooms">
132
+ <room room_background="none" room_thumbnail="none" name="Random talks" users_cnt="115" jid="5f9a4603b2b5bbfa6b228b642127c56d03b778ad594c52b755e605c977303979@conference.xmpp.ethoradev.com" />
133
+ <room room_background="none" room_thumbnail="none" name="ChatTwo" users_cnt="111" jid="6c00199ef7fb86d09b10f70c353411c70fe7f75847cacdb322c813416bcc33ab@conference.xmpp.ethoradev.com" />
134
+ <room room_background="none" room_thumbnail="none" name="Chat Three" users_cnt="110" jid="d673a602b47d524ba6a95102cc71fc3f308b31d64454498078a056cf54e5a2b4@conference.xmpp.ethoradev.com" />
135
+ <room name="TestChat" users_cnt="2" jid="8ef200ac9dffd7b7b6ba0ee5a9df4d8b33c38877eb771ca1f5a3e6966b9d39f0@conference.xmpp.ethoradev.com" />
136
+ <room name="Deepxchat" users_cnt="4" jid="57834759e627abd4ee3d10b4df859d1665753c208206419e5ffaa0e384137ba3@conference.xmpp.ethoradev.com" />
137
+ <room name="testroomnew" users_cnt="1" jid="61ca3489a54efe5dc1517bc24d5c8982cc369428b333b1f7a14f46d70ac70bfd@conference.xmpp.ethoradev.com" />
138
+ <room room_background="none" room_thumbnail="none" name="no messages test" users_cnt="2" jid="70ad0f490034cf85f12f09fe88a83165302c59592cbedf9f8dbbea755bc5e180@conference.xmpp.ethoradev.com" />
139
+ <room room_background="none" room_thumbnail="none" name="1234Test" users_cnt="2" jid="9d0505ca318a5c0dee6cc9ae50d9dc72f1cf61aa8fb3a15e66045dc31ebd8c5c@conference.xmpp.ethoradev.com" />
140
+ <room room_background="none" room_thumbnail="none" name="5test" users_cnt="2" jid="b76a90d9c753cbb4697a1d22b32611110008bb87671ed332269a339b07ffee50@conference.xmpp.ethoradev.com" />
141
+ <room room_background="none" room_thumbnail="none" users_cnt="1" jid="b76a90d9c753cbb4697a1d22b32611110008bb87671ed332269a339b07ffee50c@conference.xmpp.ethoradev.com" />
142
+ </query>
143
+ </iq>
144
+ //RoomMembers
145
+ <iq xmlns="jabber:client" xml:lang="en" to="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com/4086937129455425396216227" from="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com" type="result" id="roomMemberInfo">
146
+ <query xmlns="ns:room:last">
147
+ <activity profile="none" name="test test" role="owner" ban_status="clear" last_active="1731677817" jid="0xd_e5c0_b_d_a33953327_f5_cb_d79_e7_b58_e_b7_e_b425_b324@xmpp.ethoradev.com" />
148
+ <activity profile="none" name="Raze Yuki" role="none" ban_status="clear" last_active="1731074001" jid="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com" />
149
+ </query>
150
+ </iq>
151
+ //oneRoomInfo
152
+ <iq xmlns="jabber:client" xml:lang="en" to="0x6816810a7_fe04_f_c9b800f9_d11564_c0e4a_e_c25_d78@xmpp.ethoradev.com/12846947728090643117216163" from="5f9a4603b2b5bbfa6b228b642127c56d03b778ad594c52b755e605c977303979@conference.xmpp.ethoradev.com" type="result" id="roomInfo">
153
+ <query xmlns="http://jabber.org/protocol/disco#info">
154
+ <identity name="Random talks" type="text" category="conference" />
155
+ <feature var="vcard-temp" />
156
+ <feature var="http://jabber.org/protocol/muc" />
157
+ <feature var="http://jabber.org/protocol/disco#info" />
158
+ <feature var="http://jabber.org/protocol/disco#items" />
159
+ <feature var="http://jabber.org/protocol/commands" />
160
+ <feature var="urn:xmpp:message-moderate:0" />
161
+ <feature var="urn:xmpp:message-retract:1" />
162
+ <feature var="muc_public" />
163
+ <feature var="muc_persistent" />
164
+ <feature var="muc_open" />
165
+ <feature var="muc_semianonymous" />
166
+ <feature var="muc_moderated" />
167
+ <feature var="muc_unsecured" />
168
+ <feature var="jabber:iq:register" />
169
+ <feature var="urn:xmpp:mucsub:0" />
170
+ <feature var="urn:xmpp:mam:tmp" />
171
+ <feature var="urn:xmpp:mam:0" />
172
+ <feature var="urn:xmpp:mam:1" />
173
+ <feature var="urn:xmpp:mam:2" />
174
+ <feature var="urn:xmpp:sid:0" />
175
+ <x type="result" xmlns="jabber:x:data">
176
+ <field var="FORM_TYPE" type="hidden">
177
+ <value>
178
+ http://jabber.org/protocol/muc#roominfo
179
+ </value>
180
+ </field>
181
+ <field var="muc#roominfo_occupants" type="text-single" label="Number of occupants">
182
+ <value>
183
+ 2
184
+ </value>
185
+ </field>
186
+ <field var="muc#roomconfig_roomname" type="text-single" label="Natural-Language Room Name">
187
+ <value>
188
+ Random talks
189
+ </value>
190
+ </field>
191
+ <field var="muc#roominfo_description" type="text-single" label="Room description">
192
+ <value>
193
+ Random talks description
194
+ </value>
195
+ </field>
196
+ <field var="muc#roomconfig_changesubject" type="boolean" label="Occupants May Change the Subject">
197
+ <value>
198
+ 1
199
+ </value>
200
+ </field>
201
+ <field var="muc#roomconfig_allowinvites" type="boolean" label="Occupants are allowed to invite others">
202
+ <value>
203
+ 0
204
+ </value>
205
+ </field>
206
+ <field var="muc#roomconfig_allow_query_users" type="boolean" label="Occupants are allowed to query others">
207
+ <value>
208
+ 1
209
+ </value>
210
+ </field>
211
+ <field var="muc#roomconfig_allowpm" type="list-single" label="Roles that May Send Private Messages">
212
+ <value>
213
+ anyone
214
+ </value>
215
+ <option label="Anyone">
216
+ <value>
217
+ anyone
218
+ </value>
219
+ </option>
220
+ <option label="Anyone with Voice">
221
+ <value>
222
+ participants
223
+ </value>
224
+ </option>
225
+ <option label="Moderators Only">
226
+ <value>
227
+ moderators
228
+ </value>
229
+ </option>
230
+ <option label="Nobody">
231
+ <value>
232
+ none
233
+ </value>
234
+ </option>
235
+ </field>
236
+ <field var="muc#roominfo_lang" type="text-single" label="Natural Language for Room Discussions">
237
+ <value>
238
+ en
239
+ </value>
240
+ </field>
241
+ </x>
242
+ </query>
243
+ </iq>
@@ -0,0 +1,295 @@
1
+ import React, { useState, useEffect, useCallback } from 'react';
2
+ import styled from 'styled-components/native';
3
+ import { MessageInput } from '../styled/StyledComponents';
4
+ import Button from '../styled/Button';
5
+ import { GoogleIcon } from '../../assets/icons';
6
+ import { IConfig } from '../../types/types';
7
+ import {
8
+ checkEmailExist,
9
+ loginEmail,
10
+ loginSocial,
11
+ registerSocial,
12
+ // signInWithGoogle,
13
+ } from '../../networking/api-requests/auth.api';
14
+ import { useDispatch } from 'react-redux';
15
+ import { useLocalStorage } from '../../hooks/useLocalStorage';
16
+ import { setUser, unpackAndTransform } from '../../roomStore/chatSettingsSlice';
17
+ import { localStorageConstants } from '../../helpers/constants/LOCAL_STORAGE';
18
+ import { Text, TextInput, View } from 'react-native';
19
+
20
+ interface LoginFormProps {
21
+ config?: IConfig;
22
+ }
23
+
24
+ const LoginForm: React.FC<LoginFormProps> = ({ config }) => {
25
+ const dispatch = useDispatch();
26
+ const { set } = useLocalStorage(localStorageConstants.ETHORA_USER);
27
+
28
+ const [email, setEmail] = useState('');
29
+ const [password, setPassword] = useState('');
30
+ const [isLoading, setIsLoading] = useState(false);
31
+ const [errors, setErrors] = useState({ email: '', password: '' });
32
+
33
+ const validateForm = () => {
34
+ let emailError = '';
35
+ let passwordError = '';
36
+
37
+ if (!/\S+@\S+\.\S+/.test(email)) {
38
+ emailError = 'Invalid email format';
39
+ }
40
+
41
+ if (password.length < 6) {
42
+ passwordError = 'Password must be at least 6 characters long';
43
+ }
44
+
45
+ return { emailError, passwordError };
46
+ };
47
+
48
+ const handleRegularLogin = useCallback(async () => {
49
+ setIsLoading(true);
50
+
51
+ try {
52
+ const authData = await loginEmail(email, password);
53
+
54
+ if (authData?.status === 401) {
55
+ setErrors((prev) => ({
56
+ ...prev,
57
+ password: 'You entered wrong data. Try again',
58
+ }));
59
+ setIsLoading(false);
60
+ return null;
61
+ }
62
+
63
+ const user = {
64
+ ...authData.data.user,
65
+ token: authData.data.token,
66
+ refreshToken: authData.data.refreshToken,
67
+ };
68
+ dispatch(setUser(user));
69
+
70
+ await set(unpackAndTransform(user));
71
+ } catch (error) {
72
+ console.error('Login failed:', error);
73
+ setIsLoading(false);
74
+
75
+ return null;
76
+ }
77
+ setIsLoading(false);
78
+ }, [email, password, dispatch]);
79
+
80
+ // const handleGoogleLogin = async () => {
81
+ // setIsLoading(true);
82
+
83
+ // const loginType = "google";
84
+
85
+ // try {
86
+ // const res = await signInWithGoogle();
87
+
88
+ // const emailExist = await checkEmailExist(
89
+ // res.user?.providerData[0].email || ""
90
+ // );
91
+
92
+ // if (!emailExist.data.success) {
93
+ // try {
94
+ // await registerSocial(
95
+ // res.idToken || "",
96
+ // res.credential?.accessToken || "",
97
+ // "",
98
+ // loginType
99
+ // );
100
+ // const loginRes = await loginSocial(
101
+ // res.idToken || "",
102
+ // res.credential?.accessToken || "",
103
+ // loginType
104
+ // );
105
+ // console.log("google log after register res", loginRes);
106
+
107
+ // const user = {
108
+ // ...loginRes.data.user,
109
+ // token: loginRes.data.token,
110
+ // refreshToken: loginRes.data.refreshToken,
111
+ // };
112
+ // dispatch(setUser(user));
113
+ // useLocalStorage(localStorageConstants.ETHORA_USER).set(user);
114
+ // } catch (error) {
115
+ // console.log("error registering user viag google");
116
+ // }
117
+ // }
118
+ // if (res.idToken && res.credential && res.credential.accessToken) {
119
+ // const loginRes = await loginSocial(
120
+ // res.idToken,
121
+ // res.credential.accessToken,
122
+ // loginType
123
+ // );
124
+ // console.log("google log res", loginRes);
125
+ // const user = {
126
+ // ...loginRes.data.user,
127
+ // token: loginRes.data.token,
128
+ // refreshToken: loginRes.data.refreshToken,
129
+ // };
130
+ // dispatch(setUser(user));
131
+ // useLocalStorage(localStorageConstants.ETHORA_USER).set(user);
132
+ // }
133
+ // } catch (error) {
134
+ // console.log(error);
135
+ // }
136
+ // setIsLoading(false);
137
+ // };
138
+
139
+ const handleSubmit = () => {
140
+ const { emailError, passwordError } = validateForm();
141
+
142
+ setErrors({ email: emailError, password: passwordError });
143
+
144
+ if (!emailError && !passwordError) {
145
+ handleRegularLogin();
146
+ }
147
+ };
148
+
149
+ return (
150
+ <FormContainer>
151
+ <Form>
152
+ <View
153
+ style={{
154
+ height: 40,
155
+ width: '100%',
156
+ display: 'flex',
157
+ gap: 4,
158
+ flexDirection: 'column',
159
+ }}
160
+ >
161
+ {/* <TextInput value={email} onChangeText={(text) => setEmail(text)} /> */}
162
+ <MessageInput
163
+ value={email}
164
+ placeholder="Email"
165
+ onChangeText={(text) => setEmail(text)}
166
+ style={{
167
+ borderWidth: 1,
168
+ borderColor: config ? config.colors?.primary : '#3498db',
169
+ borderRadius: 4,
170
+ }}
171
+ />
172
+ <Text>
173
+ {errors.email && <ErrorMessage>{errors.email}</ErrorMessage>}
174
+ </Text>
175
+ </View>
176
+
177
+ <View
178
+ style={{
179
+ height: 40,
180
+ width: '100%',
181
+ display: 'flex',
182
+ gap: 4,
183
+ flexDirection: 'column',
184
+ }}
185
+ >
186
+ <MessageInput
187
+ value={password}
188
+ placeholder="Password"
189
+ onChangeText={(text) => setPassword(text)}
190
+ style={{
191
+ borderWidth: 1,
192
+ borderColor: config ? config.colors?.primary : '#3498db',
193
+ borderRadius: 4,
194
+ }}
195
+ />
196
+ <Text>
197
+ {' '}
198
+ {errors.password && <ErrorMessage>{errors.password}</ErrorMessage>}
199
+ </Text>
200
+ </View>
201
+
202
+ <Button
203
+ onPress={handleSubmit}
204
+ text="Login to Ethora Chat"
205
+ style={{
206
+ width: '100%',
207
+ height: 40,
208
+ backgroundColor: config?.colors?.primary || '#0052CD',
209
+ }}
210
+ color="white"
211
+ disabled={isLoading}
212
+ loading={isLoading}
213
+ />
214
+ {config?.googleLogin?.enabled && (
215
+ <>
216
+ <Delimiter>or</Delimiter>
217
+ <Button
218
+ // onPress={handleGoogleLogin}
219
+ text="Login with Google"
220
+ EndIcon={<GoogleIcon style={{ height: 24 }} />}
221
+ disabled={isLoading}
222
+ />
223
+ </>
224
+ )}
225
+ <View>
226
+ <Text>Don't have an account? </Text>
227
+ <Text
228
+ style={{
229
+ textDecorationLine: 'underline',
230
+ color: '#0052CD',
231
+ fontSize: 14,
232
+ display: 'flex',
233
+ fontWeight: '400',
234
+ }}
235
+ >
236
+ Sign Up to Ethora
237
+ </Text>
238
+ </View>
239
+ </Form>
240
+ </FormContainer>
241
+ );
242
+ };
243
+
244
+ // Styled Components
245
+ const FormContainer = styled.View`
246
+ flex: 1;
247
+ justify-content: center;
248
+ align-items: center;
249
+ width: 100%;
250
+ background-color: #f5f5f5;
251
+ `;
252
+
253
+ const Form = styled.View`
254
+ flex-direction: column;
255
+ align-items: center;
256
+ background-color: white;
257
+ padding: 30px;
258
+ border-radius: 8px;
259
+ width: 300px;
260
+ gap: 16px;
261
+ `;
262
+
263
+ const ErrorMessage = styled.Text`
264
+ color: red;
265
+ font-size: 12px;
266
+ margin-bottom: 10px;
267
+ `;
268
+
269
+ const Delimiter = styled.Text`
270
+ text-align: center;
271
+ position: relative;
272
+ width: 100%;
273
+ font-size: 14px;
274
+ color: #999;
275
+
276
+ &::before,
277
+ &::after {
278
+ content: "";
279
+ position: absolute;
280
+ top: 50%;
281
+ width: 45%;
282
+ height: 1px;
283
+ background: #ccc;
284
+ }
285
+
286
+ &::before {
287
+ left: 0;
288
+ }
289
+
290
+ &::after {
291
+ right: 0;
292
+ }
293
+ `;
294
+
295
+ export default LoginForm;
@@ -0,0 +1,68 @@
1
+ import React, { useState, useEffect } from 'react';
2
+ import styled from 'styled-components/native';
3
+ import { MessageInput } from '../styled/StyledComponents';
4
+ import Button from '../styled/Button';
5
+ import { GoogleIcon } from '../../assets/icons';
6
+ import { IConfig } from '../../types/types';
7
+
8
+ interface LoginFormProps {
9
+ config?: IConfig;
10
+ }
11
+
12
+ const LoginForm: React.FC<LoginFormProps> = ({ config }) => {
13
+ const handleSubmit = () => {
14
+ console.log('Form submitted');
15
+ };
16
+
17
+ return (
18
+ <FormContainer>
19
+ <Button
20
+ onPress={handleSubmit}
21
+ text={'Login anonymously'}
22
+ style={{ width: '100%', height: 40 }}
23
+ />
24
+
25
+ <Delimiter>Only could send text messages</Delimiter>
26
+ </FormContainer>
27
+ );
28
+ };
29
+
30
+ // Styled Components
31
+ const FormContainer = styled.View`
32
+ display: flex;
33
+ flex-direction: column;
34
+ justify-content: center;
35
+ align-items: center;
36
+ width: 100%;
37
+ height: 100%;
38
+ background-color: #f5f5f5;
39
+ padding: 16px;
40
+ `;
41
+
42
+ const Delimiter = styled.View`
43
+ text-align: center;
44
+ position: relative;
45
+ width: 100%;
46
+ font-size: 14px;
47
+ color: #999;
48
+
49
+ &::before,
50
+ &::after {
51
+ content: "";
52
+ position: absolute;
53
+ top: 50%;
54
+ width: 45%;
55
+ height: 1px;
56
+ background: #ccc;
57
+ }
58
+
59
+ &::before {
60
+ left: 0;
61
+ }
62
+
63
+ &::after {
64
+ right: 0;
65
+ }
66
+ `;
67
+
68
+ export default LoginForm;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { View } from 'react-native';
3
+
4
+ const RegisterForm = () => {
5
+ return <View>RegisterForm</View>;
6
+ };
7
+
8
+ export default RegisterForm;