@developer_tribe/react-native-comnyx 0.1.1 → 0.2.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 (310) hide show
  1. package/lib/commonjs/App.js +59 -0
  2. package/lib/commonjs/App.js.map +1 -0
  3. package/lib/commonjs/__dev__.js +29 -0
  4. package/lib/commonjs/__dev__.js.map +1 -0
  5. package/lib/commonjs/api/api.js +22 -0
  6. package/lib/commonjs/api/api.js.map +1 -0
  7. package/lib/commonjs/api/conversations.js +37 -0
  8. package/lib/commonjs/api/conversations.js.map +1 -0
  9. package/lib/commonjs/api/customers.js +15 -0
  10. package/lib/commonjs/api/customers.js.map +1 -0
  11. package/lib/commonjs/api/index.js +33 -0
  12. package/lib/commonjs/api/index.js.map +1 -0
  13. package/lib/commonjs/api/messages.js +27 -0
  14. package/lib/commonjs/api/messages.js.map +1 -0
  15. package/lib/commonjs/assets/clock.png +0 -0
  16. package/lib/commonjs/assets/double-check.png +0 -0
  17. package/lib/commonjs/assets/down.png +0 -0
  18. package/lib/commonjs/assets/send.png +0 -0
  19. package/lib/commonjs/components/AppText.js +38 -0
  20. package/lib/commonjs/components/AppText.js.map +1 -0
  21. package/lib/commonjs/components/ChatList.js +268 -0
  22. package/lib/commonjs/components/ChatList.js.map +1 -0
  23. package/lib/commonjs/components/CustomerForm.js +279 -0
  24. package/lib/commonjs/components/CustomerForm.js.map +1 -0
  25. package/lib/commonjs/components/EmptyList.js +40 -0
  26. package/lib/commonjs/components/EmptyList.js.map +1 -0
  27. package/lib/commonjs/components/InitFailed.js +51 -0
  28. package/lib/commonjs/components/InitFailed.js.map +1 -0
  29. package/lib/commonjs/components/MessageInput.js +119 -0
  30. package/lib/commonjs/components/MessageInput.js.map +1 -0
  31. package/lib/commonjs/components/MessageItem.js +117 -0
  32. package/lib/commonjs/components/MessageItem.js.map +1 -0
  33. package/lib/commonjs/constants/countries.js +587 -0
  34. package/lib/commonjs/constants/countries.js.map +1 -0
  35. package/lib/commonjs/constants/translations.js +219 -0
  36. package/lib/commonjs/constants/translations.js.map +1 -0
  37. package/lib/commonjs/data/fake/conversations.js +95 -0
  38. package/lib/commonjs/data/fake/conversations.js.map +1 -0
  39. package/lib/commonjs/data/fake/customers.js +24 -0
  40. package/lib/commonjs/data/fake/customers.js.map +1 -0
  41. package/lib/commonjs/data/fake/messages.js +67 -0
  42. package/lib/commonjs/data/fake/messages.js.map +1 -0
  43. package/lib/commonjs/hooks/useLocalize.js +20 -0
  44. package/lib/commonjs/hooks/useLocalize.js.map +1 -0
  45. package/lib/commonjs/hooks/usePolling.js +50 -0
  46. package/lib/commonjs/hooks/usePolling.js.map +1 -0
  47. package/lib/commonjs/hooks/useThemeColors.js +17 -0
  48. package/lib/commonjs/hooks/useThemeColors.js.map +1 -0
  49. package/lib/commonjs/index.js +15 -6
  50. package/lib/commonjs/index.js.map +1 -1
  51. package/lib/commonjs/register.js +21 -0
  52. package/lib/commonjs/register.js.map +1 -0
  53. package/lib/commonjs/store.js +79 -0
  54. package/lib/commonjs/store.js.map +1 -0
  55. package/lib/commonjs/types/ApiOptions.js +2 -0
  56. package/lib/commonjs/types/ApiOptions.js.map +1 -0
  57. package/lib/commonjs/types/Conversation.js +2 -0
  58. package/lib/commonjs/types/Conversation.js.map +1 -0
  59. package/lib/commonjs/types/Customer.js +2 -0
  60. package/lib/commonjs/types/Customer.js.map +1 -0
  61. package/lib/commonjs/types/Language.js +2 -0
  62. package/lib/commonjs/types/Language.js.map +1 -0
  63. package/lib/commonjs/types/LocalizationKeys.js +2 -0
  64. package/lib/commonjs/types/LocalizationKeys.js.map +1 -0
  65. package/lib/commonjs/types/MessageResponse.js +2 -0
  66. package/lib/commonjs/types/MessageResponse.js.map +1 -0
  67. package/lib/commonjs/types/Theme.js +29 -0
  68. package/lib/commonjs/types/Theme.js.map +1 -0
  69. package/lib/commonjs/utils/date.js +17 -0
  70. package/lib/commonjs/utils/date.js.map +1 -0
  71. package/lib/module/App.js +55 -0
  72. package/lib/module/App.js.map +1 -0
  73. package/lib/module/__dev__.js +29 -0
  74. package/lib/module/__dev__.js.map +1 -0
  75. package/lib/module/api/api.js +17 -0
  76. package/lib/module/api/api.js.map +1 -0
  77. package/lib/module/api/conversations.js +32 -0
  78. package/lib/module/api/conversations.js.map +1 -0
  79. package/lib/module/api/customers.js +11 -0
  80. package/lib/module/api/customers.js.map +1 -0
  81. package/lib/module/api/index.js +6 -0
  82. package/lib/module/api/index.js.map +1 -0
  83. package/lib/module/api/messages.js +23 -0
  84. package/lib/module/api/messages.js.map +1 -0
  85. package/lib/module/assets/clock.png +0 -0
  86. package/lib/module/assets/double-check.png +0 -0
  87. package/lib/module/assets/down.png +0 -0
  88. package/lib/module/assets/send.png +0 -0
  89. package/lib/module/components/AppText.js +34 -0
  90. package/lib/module/components/AppText.js.map +1 -0
  91. package/lib/module/components/ChatList.js +265 -0
  92. package/lib/module/components/ChatList.js.map +1 -0
  93. package/lib/module/components/CustomerForm.js +275 -0
  94. package/lib/module/components/CustomerForm.js.map +1 -0
  95. package/lib/module/components/EmptyList.js +36 -0
  96. package/lib/module/components/EmptyList.js.map +1 -0
  97. package/lib/module/components/InitFailed.js +47 -0
  98. package/lib/module/components/InitFailed.js.map +1 -0
  99. package/lib/module/components/MessageInput.js +115 -0
  100. package/lib/module/components/MessageInput.js.map +1 -0
  101. package/lib/module/components/MessageItem.js +114 -0
  102. package/lib/module/components/MessageItem.js.map +1 -0
  103. package/lib/module/constants/countries.js +583 -0
  104. package/lib/module/constants/countries.js.map +1 -0
  105. package/lib/module/constants/translations.js +215 -0
  106. package/lib/module/constants/translations.js.map +1 -0
  107. package/lib/module/data/fake/conversations.js +88 -0
  108. package/lib/module/data/fake/conversations.js.map +1 -0
  109. package/lib/module/data/fake/customers.js +20 -0
  110. package/lib/module/data/fake/customers.js.map +1 -0
  111. package/lib/module/data/fake/messages.js +63 -0
  112. package/lib/module/data/fake/messages.js.map +1 -0
  113. package/lib/module/hooks/useLocalize.js +16 -0
  114. package/lib/module/hooks/useLocalize.js.map +1 -0
  115. package/lib/module/hooks/usePolling.js +46 -0
  116. package/lib/module/hooks/usePolling.js.map +1 -0
  117. package/lib/module/hooks/useThemeColors.js +13 -0
  118. package/lib/module/hooks/useThemeColors.js.map +1 -0
  119. package/lib/module/index.js +3 -4
  120. package/lib/module/index.js.map +1 -1
  121. package/lib/module/register.js +17 -0
  122. package/lib/module/register.js.map +1 -0
  123. package/lib/module/store.js +74 -0
  124. package/lib/module/store.js.map +1 -0
  125. package/lib/module/types/ApiOptions.js +2 -0
  126. package/lib/module/types/ApiOptions.js.map +1 -0
  127. package/lib/module/types/Conversation.js +2 -0
  128. package/lib/module/types/Conversation.js.map +1 -0
  129. package/lib/module/types/Customer.js +2 -0
  130. package/lib/module/types/Customer.js.map +1 -0
  131. package/lib/module/types/Language.js +2 -0
  132. package/lib/module/types/Language.js.map +1 -0
  133. package/lib/module/types/LocalizationKeys.js +2 -0
  134. package/lib/module/types/LocalizationKeys.js.map +1 -0
  135. package/lib/module/types/MessageResponse.js +2 -0
  136. package/lib/module/types/MessageResponse.js.map +1 -0
  137. package/lib/module/types/Theme.js +25 -0
  138. package/lib/module/types/Theme.js.map +1 -0
  139. package/lib/module/utils/date.js +12 -0
  140. package/lib/module/utils/date.js.map +1 -0
  141. package/lib/typescript/commonjs/src/App.d.ts +9 -0
  142. package/lib/typescript/commonjs/src/App.d.ts.map +1 -0
  143. package/lib/typescript/commonjs/src/__dev__.d.ts +2 -0
  144. package/lib/typescript/commonjs/src/__dev__.d.ts.map +1 -0
  145. package/lib/typescript/commonjs/src/api/api.d.ts +4 -0
  146. package/lib/typescript/commonjs/src/api/api.d.ts.map +1 -0
  147. package/lib/typescript/commonjs/src/api/conversations.d.ts +7 -0
  148. package/lib/typescript/commonjs/src/api/conversations.d.ts.map +1 -0
  149. package/lib/typescript/commonjs/src/api/customers.d.ts +4 -0
  150. package/lib/typescript/commonjs/src/api/customers.d.ts.map +1 -0
  151. package/lib/typescript/commonjs/src/api/index.d.ts +4 -0
  152. package/lib/typescript/commonjs/src/api/index.d.ts.map +1 -0
  153. package/lib/typescript/commonjs/src/api/messages.d.ts +4 -0
  154. package/lib/typescript/commonjs/src/api/messages.d.ts.map +1 -0
  155. package/lib/typescript/commonjs/src/components/AppText.d.ts +10 -0
  156. package/lib/typescript/commonjs/src/components/AppText.d.ts.map +1 -0
  157. package/lib/typescript/commonjs/src/components/ChatList.d.ts +2 -0
  158. package/lib/typescript/commonjs/src/components/ChatList.d.ts.map +1 -0
  159. package/lib/typescript/commonjs/src/components/CustomerForm.d.ts +2 -0
  160. package/lib/typescript/commonjs/src/components/CustomerForm.d.ts.map +1 -0
  161. package/lib/typescript/commonjs/src/components/EmptyList.d.ts +2 -0
  162. package/lib/typescript/commonjs/src/components/EmptyList.d.ts.map +1 -0
  163. package/lib/typescript/commonjs/src/components/InitFailed.d.ts +6 -0
  164. package/lib/typescript/commonjs/src/components/InitFailed.d.ts.map +1 -0
  165. package/lib/typescript/commonjs/src/components/MessageInput.d.ts +4 -0
  166. package/lib/typescript/commonjs/src/components/MessageInput.d.ts.map +1 -0
  167. package/lib/typescript/commonjs/src/components/MessageItem.d.ts +5 -0
  168. package/lib/typescript/commonjs/src/components/MessageItem.d.ts.map +1 -0
  169. package/lib/typescript/commonjs/src/constants/countries.d.ts +6 -0
  170. package/lib/typescript/commonjs/src/constants/countries.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/src/constants/translations.d.ts +4 -0
  172. package/lib/typescript/commonjs/src/constants/translations.d.ts.map +1 -0
  173. package/lib/typescript/commonjs/src/data/fake/conversations.d.ts +5 -0
  174. package/lib/typescript/commonjs/src/data/fake/conversations.d.ts.map +1 -0
  175. package/lib/typescript/commonjs/src/data/fake/customers.d.ts +3 -0
  176. package/lib/typescript/commonjs/src/data/fake/customers.d.ts.map +1 -0
  177. package/lib/typescript/commonjs/src/data/fake/messages.d.ts +3 -0
  178. package/lib/typescript/commonjs/src/data/fake/messages.d.ts.map +1 -0
  179. package/lib/typescript/commonjs/src/hooks/useLocalize.d.ts +3 -0
  180. package/lib/typescript/commonjs/src/hooks/useLocalize.d.ts.map +1 -0
  181. package/lib/typescript/commonjs/src/hooks/usePolling.d.ts +2 -0
  182. package/lib/typescript/commonjs/src/hooks/usePolling.d.ts.map +1 -0
  183. package/lib/typescript/commonjs/src/hooks/useThemeColors.d.ts +3 -0
  184. package/lib/typescript/commonjs/src/hooks/useThemeColors.d.ts.map +1 -0
  185. package/lib/typescript/commonjs/src/index.d.ts +4 -1
  186. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  187. package/lib/typescript/commonjs/src/register.d.ts +5 -0
  188. package/lib/typescript/commonjs/src/register.d.ts.map +1 -0
  189. package/lib/typescript/commonjs/src/store.d.ts +35 -0
  190. package/lib/typescript/commonjs/src/store.d.ts.map +1 -0
  191. package/lib/typescript/commonjs/src/types/ApiOptions.d.ts +4 -0
  192. package/lib/typescript/commonjs/src/types/ApiOptions.d.ts.map +1 -0
  193. package/lib/typescript/commonjs/src/types/Conversation.d.ts +26 -0
  194. package/lib/typescript/commonjs/src/types/Conversation.d.ts.map +1 -0
  195. package/lib/typescript/commonjs/src/types/Customer.d.ts +30 -0
  196. package/lib/typescript/commonjs/src/types/Customer.d.ts.map +1 -0
  197. package/lib/typescript/commonjs/src/types/Language.d.ts +2 -0
  198. package/lib/typescript/commonjs/src/types/Language.d.ts.map +1 -0
  199. package/lib/typescript/commonjs/src/types/LocalizationKeys.d.ts +22 -0
  200. package/lib/typescript/commonjs/src/types/LocalizationKeys.d.ts.map +1 -0
  201. package/lib/typescript/commonjs/src/types/MessageResponse.d.ts +59 -0
  202. package/lib/typescript/commonjs/src/types/MessageResponse.d.ts.map +1 -0
  203. package/lib/typescript/commonjs/src/types/Theme.d.ts +18 -0
  204. package/lib/typescript/commonjs/src/types/Theme.d.ts.map +1 -0
  205. package/lib/typescript/commonjs/src/utils/date.d.ts +7 -0
  206. package/lib/typescript/commonjs/src/utils/date.d.ts.map +1 -0
  207. package/lib/typescript/module/src/App.d.ts +9 -0
  208. package/lib/typescript/module/src/App.d.ts.map +1 -0
  209. package/lib/typescript/module/src/__dev__.d.ts +2 -0
  210. package/lib/typescript/module/src/__dev__.d.ts.map +1 -0
  211. package/lib/typescript/module/src/api/api.d.ts +4 -0
  212. package/lib/typescript/module/src/api/api.d.ts.map +1 -0
  213. package/lib/typescript/module/src/api/conversations.d.ts +7 -0
  214. package/lib/typescript/module/src/api/conversations.d.ts.map +1 -0
  215. package/lib/typescript/module/src/api/customers.d.ts +4 -0
  216. package/lib/typescript/module/src/api/customers.d.ts.map +1 -0
  217. package/lib/typescript/module/src/api/index.d.ts +4 -0
  218. package/lib/typescript/module/src/api/index.d.ts.map +1 -0
  219. package/lib/typescript/module/src/api/messages.d.ts +4 -0
  220. package/lib/typescript/module/src/api/messages.d.ts.map +1 -0
  221. package/lib/typescript/module/src/components/AppText.d.ts +10 -0
  222. package/lib/typescript/module/src/components/AppText.d.ts.map +1 -0
  223. package/lib/typescript/module/src/components/ChatList.d.ts +2 -0
  224. package/lib/typescript/module/src/components/ChatList.d.ts.map +1 -0
  225. package/lib/typescript/module/src/components/CustomerForm.d.ts +2 -0
  226. package/lib/typescript/module/src/components/CustomerForm.d.ts.map +1 -0
  227. package/lib/typescript/module/src/components/EmptyList.d.ts +2 -0
  228. package/lib/typescript/module/src/components/EmptyList.d.ts.map +1 -0
  229. package/lib/typescript/module/src/components/InitFailed.d.ts +6 -0
  230. package/lib/typescript/module/src/components/InitFailed.d.ts.map +1 -0
  231. package/lib/typescript/module/src/components/MessageInput.d.ts +4 -0
  232. package/lib/typescript/module/src/components/MessageInput.d.ts.map +1 -0
  233. package/lib/typescript/module/src/components/MessageItem.d.ts +5 -0
  234. package/lib/typescript/module/src/components/MessageItem.d.ts.map +1 -0
  235. package/lib/typescript/module/src/constants/countries.d.ts +6 -0
  236. package/lib/typescript/module/src/constants/countries.d.ts.map +1 -0
  237. package/lib/typescript/module/src/constants/translations.d.ts +4 -0
  238. package/lib/typescript/module/src/constants/translations.d.ts.map +1 -0
  239. package/lib/typescript/module/src/data/fake/conversations.d.ts +5 -0
  240. package/lib/typescript/module/src/data/fake/conversations.d.ts.map +1 -0
  241. package/lib/typescript/module/src/data/fake/customers.d.ts +3 -0
  242. package/lib/typescript/module/src/data/fake/customers.d.ts.map +1 -0
  243. package/lib/typescript/module/src/data/fake/messages.d.ts +3 -0
  244. package/lib/typescript/module/src/data/fake/messages.d.ts.map +1 -0
  245. package/lib/typescript/module/src/hooks/useLocalize.d.ts +3 -0
  246. package/lib/typescript/module/src/hooks/useLocalize.d.ts.map +1 -0
  247. package/lib/typescript/module/src/hooks/usePolling.d.ts +2 -0
  248. package/lib/typescript/module/src/hooks/usePolling.d.ts.map +1 -0
  249. package/lib/typescript/module/src/hooks/useThemeColors.d.ts +3 -0
  250. package/lib/typescript/module/src/hooks/useThemeColors.d.ts.map +1 -0
  251. package/lib/typescript/module/src/index.d.ts +4 -1
  252. package/lib/typescript/module/src/index.d.ts.map +1 -1
  253. package/lib/typescript/module/src/register.d.ts +5 -0
  254. package/lib/typescript/module/src/register.d.ts.map +1 -0
  255. package/lib/typescript/module/src/store.d.ts +35 -0
  256. package/lib/typescript/module/src/store.d.ts.map +1 -0
  257. package/lib/typescript/module/src/types/ApiOptions.d.ts +4 -0
  258. package/lib/typescript/module/src/types/ApiOptions.d.ts.map +1 -0
  259. package/lib/typescript/module/src/types/Conversation.d.ts +26 -0
  260. package/lib/typescript/module/src/types/Conversation.d.ts.map +1 -0
  261. package/lib/typescript/module/src/types/Customer.d.ts +30 -0
  262. package/lib/typescript/module/src/types/Customer.d.ts.map +1 -0
  263. package/lib/typescript/module/src/types/Language.d.ts +2 -0
  264. package/lib/typescript/module/src/types/Language.d.ts.map +1 -0
  265. package/lib/typescript/module/src/types/LocalizationKeys.d.ts +22 -0
  266. package/lib/typescript/module/src/types/LocalizationKeys.d.ts.map +1 -0
  267. package/lib/typescript/module/src/types/MessageResponse.d.ts +59 -0
  268. package/lib/typescript/module/src/types/MessageResponse.d.ts.map +1 -0
  269. package/lib/typescript/module/src/types/Theme.d.ts +18 -0
  270. package/lib/typescript/module/src/types/Theme.d.ts.map +1 -0
  271. package/lib/typescript/module/src/utils/date.d.ts +7 -0
  272. package/lib/typescript/module/src/utils/date.d.ts.map +1 -0
  273. package/package.json +10 -2
  274. package/src/App.tsx +59 -0
  275. package/src/__dev__.ts +22 -0
  276. package/src/api/api.ts +16 -0
  277. package/src/api/conversations.ts +53 -0
  278. package/src/api/customers.ts +16 -0
  279. package/src/api/index.ts +6 -0
  280. package/src/api/messages.ts +33 -0
  281. package/src/assets/clock.png +0 -0
  282. package/src/assets/double-check.png +0 -0
  283. package/src/assets/down.png +0 -0
  284. package/src/assets/send.png +0 -0
  285. package/src/components/AppText.tsx +43 -0
  286. package/src/components/ChatList.tsx +299 -0
  287. package/src/components/CustomerForm.tsx +300 -0
  288. package/src/components/EmptyList.tsx +32 -0
  289. package/src/components/InitFailed.tsx +46 -0
  290. package/src/components/MessageInput.tsx +133 -0
  291. package/src/components/MessageItem.tsx +141 -0
  292. package/src/constants/countries.ts +200 -0
  293. package/src/constants/translations.ts +232 -0
  294. package/src/data/fake/conversations.ts +558 -0
  295. package/src/data/fake/customers.ts +19 -0
  296. package/src/data/fake/messages.ts +64 -0
  297. package/src/hooks/useLocalize.ts +18 -0
  298. package/src/hooks/usePolling.ts +46 -0
  299. package/src/hooks/useThemeColors.ts +10 -0
  300. package/src/index.tsx +4 -5
  301. package/src/register.ts +17 -0
  302. package/src/store.ts +85 -0
  303. package/src/types/ApiOptions.ts +4 -0
  304. package/src/types/Conversation.ts +29 -0
  305. package/src/types/Customer.ts +31 -0
  306. package/src/types/Language.ts +11 -0
  307. package/src/types/LocalizationKeys.ts +21 -0
  308. package/src/types/MessageResponse.ts +58 -0
  309. package/src/types/Theme.ts +40 -0
  310. package/src/utils/date.ts +11 -0
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useEffect, useRef, useState } from 'react';
4
+ import { useAppStore } from "../store.js";
5
+ import { FlatList, View, useWindowDimensions, ActivityIndicator, Image, TouchableOpacity } from 'react-native';
6
+ import { getCustomerConversation } from "../api/index.js";
7
+ import { StyleSheet } from 'react-native';
8
+ import { MessageItem } from "./MessageItem.js";
9
+ import { MessageInput } from "./MessageInput.js";
10
+ import { useThemeColors } from "../hooks/useThemeColors.js";
11
+ import { AppText } from "./AppText.js";
12
+ import { InitFailed } from "./InitFailed.js";
13
+ import { EmptyList } from "./EmptyList.js";
14
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
15
+ function LoadingItem() {
16
+ const themeColors = useThemeColors();
17
+ return /*#__PURE__*/_jsx(View, {
18
+ style: [styles.loadingItem, {
19
+ backgroundColor: themeColors.background
20
+ }],
21
+ children: /*#__PURE__*/_jsx(ActivityIndicator, {
22
+ size: "large",
23
+ color: themeColors.primary
24
+ })
25
+ });
26
+ }
27
+ export function ChatList() {
28
+ const themeColors = useThemeColors();
29
+ const {
30
+ height: windowHeight
31
+ } = useWindowDimensions();
32
+ const MESSAGE_MIN_HEIGHT = 60;
33
+ const FLATLIST_PADDING = 20;
34
+ const MESSAGES_PER_PAGE = Math.ceil((windowHeight - FLATLIST_PADDING) / MESSAGE_MIN_HEIGHT);
35
+ const [loading, setLoading] = useState(true);
36
+ const {
37
+ customer,
38
+ data,
39
+ setData
40
+ } = useAppStore(s => ({
41
+ customer: s.customer,
42
+ data: s.data,
43
+ setData: s.setData
44
+ }));
45
+ const ref = useRef(null);
46
+ const [page, setPage] = useState(1);
47
+ const nextPageStatus = useRef();
48
+ const [nexPageFailed, setNexPageFailed] = useState(false);
49
+ const [initFailed, setInitFailed] = useState(false);
50
+ const [isScrollingUp, setIsScrollingUp] = useState(false);
51
+ const listChangedRef = useRef(false);
52
+ const nextPage = useCallback(() => {
53
+ if (nextPageStatus.current) {
54
+ return;
55
+ }
56
+ console.log('next');
57
+ nextPageStatus.current = 'loading';
58
+ if (customer?.external_id) {
59
+ const newPage = page + 1;
60
+ setPage(newPage);
61
+ const firstMessage = useAppStore.getState().firstMessage;
62
+ getCustomerConversation(customer?.external_id, firstMessage?.created_at, newPage, {
63
+ fake: useAppStore.getState().fake,
64
+ per_page: MESSAGES_PER_PAGE
65
+ }).then(newData => {
66
+ listChangedRef.current = true;
67
+ setData(prevData => {
68
+ const newMessages = newData.page.data;
69
+ const existingIds = new Set(prevData?.map(msg => msg.id));
70
+ const uniqueNewMessages = newMessages.filter(msg => !existingIds.has(msg.id));
71
+ const processedMessages = uniqueNewMessages.map(u => ({
72
+ ...u,
73
+ created_at: new Date(u.created_at),
74
+ approved: true
75
+ }));
76
+ if (processedMessages.length === 0) {
77
+ nextPageStatus.current = 'empty';
78
+ } else {
79
+ nextPageStatus.current = undefined;
80
+ }
81
+ return [...(prevData ?? []), ...processedMessages];
82
+ });
83
+ }).catch(_ => {
84
+ nextPageStatus.current = 'fail';
85
+ setNexPageFailed(true);
86
+ }).finally(() => {
87
+ setLoading(false);
88
+ });
89
+ }
90
+ }, [MESSAGES_PER_PAGE, customer?.external_id, page, setData]);
91
+ const renderItem = useCallback(({
92
+ item
93
+ }) => /*#__PURE__*/_jsx(MessageItem, {
94
+ item: item
95
+ }), []);
96
+ const handleScroll = useCallback(event => {
97
+ const currentScrollY = event.nativeEvent.contentOffset.y;
98
+ const contentHeight = event.nativeEvent.contentSize.height;
99
+ const scrollViewHeight = event.nativeEvent.layoutMeasurement.height;
100
+ setIsScrollingUp(currentScrollY > 100);
101
+ if (currentScrollY >= contentHeight - scrollViewHeight - 200) {
102
+ nextPage();
103
+ }
104
+ }, [nextPage]);
105
+ const scrollToBottom = useCallback(animated => {
106
+ if (ref.current && data?.length) {
107
+ ref.current.scrollToOffset({
108
+ offset: 0,
109
+ animated
110
+ });
111
+ }
112
+ }, [data]);
113
+ useEffect(() => {
114
+ if (customer?.external_id && !initFailed) {
115
+ getCustomerConversation(customer?.external_id, new Date(), 1, {
116
+ fake: useAppStore.getState().fake,
117
+ per_page: MESSAGES_PER_PAGE
118
+ }).then(newData => {
119
+ setData(prevData => {
120
+ const newMessages = newData.page.data;
121
+ const existingIds = new Set(prevData?.map(msg => msg.id));
122
+ const uniqueNewMessages = newMessages.filter(msg => !existingIds.has(msg.id));
123
+ const processedMessages = uniqueNewMessages.map(u => ({
124
+ ...u,
125
+ created_at: new Date(u.created_at),
126
+ approved: true
127
+ }));
128
+ useAppStore.setState({
129
+ firstMessage: processedMessages[0]
130
+ });
131
+ if (processedMessages.length === 0) {
132
+ setLoading(false);
133
+ }
134
+ return processedMessages;
135
+ });
136
+ }).catch(e => {
137
+ setInitFailed(true);
138
+ console.error(e);
139
+ });
140
+ }
141
+ }, [MESSAGES_PER_PAGE, customer?.external_id, initFailed, setData]);
142
+ if (nexPageFailed) {
143
+ return /*#__PURE__*/_jsx(View, {
144
+ style: [styles.retryContainer, {
145
+ backgroundColor: themeColors.background
146
+ }],
147
+ children: /*#__PURE__*/_jsx(TouchableOpacity, {
148
+ style: [styles.retryButton, {
149
+ backgroundColor: themeColors.primary
150
+ }],
151
+ onPress: () => {
152
+ setNexPageFailed(false);
153
+ nextPageStatus.current = undefined;
154
+ nextPage();
155
+ },
156
+ children: /*#__PURE__*/_jsx(AppText, {
157
+ localization: "chat.load.error",
158
+ style: [styles.retryText, {
159
+ color: themeColors.background
160
+ }]
161
+ })
162
+ })
163
+ });
164
+ }
165
+ if (initFailed) {
166
+ return /*#__PURE__*/_jsx(InitFailed, {
167
+ setInitFailed: setInitFailed
168
+ });
169
+ }
170
+ return /*#__PURE__*/_jsxs(View, {
171
+ style: [styles.container, {
172
+ backgroundColor: themeColors.background
173
+ }],
174
+ children: [/*#__PURE__*/_jsx(FlatList, {
175
+ ref: ref,
176
+ data: data,
177
+ inverted: true,
178
+ renderItem: renderItem,
179
+ contentContainerStyle: [styles.contentContainer, {
180
+ backgroundColor: themeColors.background
181
+ }],
182
+ style: styles.list,
183
+ ListEmptyComponent: !loading && (!data || data.length === 0) ? /*#__PURE__*/_jsx(EmptyList, {}) : null,
184
+ ListFooterComponent: loading ? /*#__PURE__*/_jsx(LoadingItem, {}) : null,
185
+ keyExtractor: item => item.id + '-' + item.created_at,
186
+ removeClippedSubviews: true,
187
+ maxToRenderPerBatch: 10,
188
+ windowSize: 21,
189
+ initialNumToRender: MESSAGES_PER_PAGE,
190
+ getItemLayout: (_, index) => ({
191
+ length: MESSAGE_MIN_HEIGHT + 10,
192
+ offset: (MESSAGE_MIN_HEIGHT + 10) * index,
193
+ index
194
+ }),
195
+ onScroll: handleScroll,
196
+ scrollEventThrottle: 16
197
+ }), isScrollingUp && /*#__PURE__*/_jsx(TouchableOpacity, {
198
+ style: [styles.scrollDownButton, {
199
+ backgroundColor: themeColors.background
200
+ }],
201
+ onPress: () => scrollToBottom(true),
202
+ children: /*#__PURE__*/_jsx(Image, {
203
+ source: require('../assets/down.png'),
204
+ style: [styles.scrollUpIcon, {
205
+ tintColor: themeColors.text
206
+ }]
207
+ })
208
+ }), /*#__PURE__*/_jsx(MessageInput, {
209
+ scrollToBottom: scrollToBottom
210
+ })]
211
+ });
212
+ }
213
+ const styles = StyleSheet.create({
214
+ container: {
215
+ flex: 1
216
+ },
217
+ list: {
218
+ flex: 1
219
+ },
220
+ contentContainer: {
221
+ paddingVertical: 10,
222
+ paddingHorizontal: 10
223
+ },
224
+ loadingItem: {
225
+ height: 200,
226
+ alignItems: 'center',
227
+ justifyContent: 'center'
228
+ },
229
+ scrollDownButton: {
230
+ position: 'absolute',
231
+ right: 20,
232
+ bottom: '15%',
233
+ borderRadius: 25,
234
+ padding: 10,
235
+ shadowColor: '#000',
236
+ shadowOffset: {
237
+ width: 0,
238
+ height: 2
239
+ },
240
+ shadowOpacity: 0.25,
241
+ shadowRadius: 3.84,
242
+ elevation: 5
243
+ },
244
+ scrollUpIcon: {
245
+ width: 24,
246
+ height: 24
247
+ },
248
+ retryContainer: {
249
+ flex: 1,
250
+ alignItems: 'center',
251
+ justifyContent: 'center',
252
+ padding: 20
253
+ },
254
+ retryButton: {
255
+ padding: 15,
256
+ borderRadius: 8,
257
+ alignItems: 'center',
258
+ justifyContent: 'center'
259
+ },
260
+ retryText: {
261
+ fontSize: 16,
262
+ fontWeight: '500'
263
+ }
264
+ });
265
+ //# sourceMappingURL=ChatList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","useAppStore","FlatList","View","useWindowDimensions","ActivityIndicator","Image","TouchableOpacity","getCustomerConversation","StyleSheet","MessageItem","MessageInput","useThemeColors","AppText","InitFailed","EmptyList","jsx","_jsx","jsxs","_jsxs","LoadingItem","themeColors","style","styles","loadingItem","backgroundColor","background","children","size","color","primary","ChatList","height","windowHeight","MESSAGE_MIN_HEIGHT","FLATLIST_PADDING","MESSAGES_PER_PAGE","Math","ceil","loading","setLoading","customer","data","setData","s","ref","page","setPage","nextPageStatus","nexPageFailed","setNexPageFailed","initFailed","setInitFailed","isScrollingUp","setIsScrollingUp","listChangedRef","nextPage","current","console","log","external_id","newPage","firstMessage","getState","created_at","fake","per_page","then","newData","prevData","newMessages","existingIds","Set","map","msg","id","uniqueNewMessages","filter","has","processedMessages","u","Date","approved","length","undefined","catch","_","finally","renderItem","item","handleScroll","event","currentScrollY","nativeEvent","contentOffset","y","contentHeight","contentSize","scrollViewHeight","layoutMeasurement","scrollToBottom","animated","scrollToOffset","offset","setState","e","error","retryContainer","retryButton","onPress","localization","retryText","container","inverted","contentContainerStyle","contentContainer","list","ListEmptyComponent","ListFooterComponent","keyExtractor","removeClippedSubviews","maxToRenderPerBatch","windowSize","initialNumToRender","getItemLayout","index","onScroll","scrollEventThrottle","scrollDownButton","source","require","scrollUpIcon","tintColor","text","create","flex","paddingVertical","paddingHorizontal","alignItems","justifyContent","position","right","bottom","borderRadius","padding","shadowColor","shadowOffset","width","shadowOpacity","shadowRadius","elevation","fontSize","fontWeight"],"sourceRoot":"../../../src","sources":["components/ChatList.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,275 @@
1
+ "use strict";
2
+
3
+ import { View, TextInput, StyleSheet, TouchableOpacity, Modal, FlatList, Pressable } from 'react-native';
4
+ import { useForm, Controller } from 'react-hook-form';
5
+ import { useAppStore } from "../store.js";
6
+ import { createCustomer } from "../api/index.js";
7
+ import { AppText } from "./AppText.js";
8
+ import { useLocalize } from "../hooks/useLocalize.js";
9
+ import { useThemeColors } from "../hooks/useThemeColors.js";
10
+ import { countries } from "../constants/countries.js";
11
+ import { useState } from 'react';
12
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
13
+ export function CustomerForm() {
14
+ const {
15
+ control,
16
+ handleSubmit,
17
+ formState: {
18
+ errors
19
+ }
20
+ } = useForm();
21
+ const themeColors = useThemeColors();
22
+ const localize = useLocalize();
23
+ const [isCountryModalVisible, setIsCountryModalVisible] = useState(false);
24
+ const inputStyle = {
25
+ ...styles.input,
26
+ color: themeColors.text,
27
+ borderColor: themeColors.border,
28
+ backgroundColor: themeColors.background
29
+ };
30
+ const onSubmit = async data => {
31
+ try {
32
+ const customer = await createCustomer({
33
+ ...data,
34
+ language: 'en',
35
+ externalId: useAppStore.getState().externalId || '',
36
+ ipAddress: '192.168.1.1',
37
+ customParameters: []
38
+ }, {
39
+ fake: useAppStore.getState().fake
40
+ });
41
+ if (customer !== undefined) {
42
+ useAppStore.getState().initForm(customer);
43
+ }
44
+ } catch (error) {
45
+ console.error('Error creating customer:', error);
46
+ }
47
+ };
48
+ return /*#__PURE__*/_jsxs(View, {
49
+ style: [styles.container, {
50
+ backgroundColor: themeColors.background
51
+ }],
52
+ children: [/*#__PURE__*/_jsxs(View, {
53
+ style: styles.headerContainer,
54
+ children: [/*#__PURE__*/_jsx(AppText, {
55
+ localization: "customer.form.title",
56
+ style: [styles.headerText, {
57
+ color: themeColors.text
58
+ }]
59
+ }), /*#__PURE__*/_jsx(AppText, {
60
+ localization: "customer.form.instructions",
61
+ style: [styles.headerText, {
62
+ color: themeColors.text
63
+ }]
64
+ })]
65
+ }), /*#__PURE__*/_jsx(Controller, {
66
+ control: control,
67
+ rules: {
68
+ required: true
69
+ },
70
+ render: ({
71
+ field: {
72
+ onChange,
73
+ value
74
+ }
75
+ }) => /*#__PURE__*/_jsx(TextInput, {
76
+ style: inputStyle,
77
+ placeholder: localize('customer.form.placeholder.name'),
78
+ placeholderTextColor: "#6C757D",
79
+ value: value,
80
+ onChangeText: onChange
81
+ }),
82
+ name: "name"
83
+ }), errors.name && /*#__PURE__*/_jsx(AppText, {
84
+ localization: "customer.form.error",
85
+ style: [styles.error, {
86
+ color: themeColors.error
87
+ }]
88
+ }), /*#__PURE__*/_jsx(Controller, {
89
+ control: control,
90
+ rules: {
91
+ required: true
92
+ },
93
+ render: ({
94
+ field: {
95
+ onChange,
96
+ value
97
+ }
98
+ }) => /*#__PURE__*/_jsxs(_Fragment, {
99
+ children: [/*#__PURE__*/_jsx(Pressable, {
100
+ style: [styles.input, {
101
+ borderColor: themeColors.border,
102
+ backgroundColor: themeColors.background,
103
+ justifyContent: 'center'
104
+ }],
105
+ onPress: () => setIsCountryModalVisible(true),
106
+ children: /*#__PURE__*/_jsx(AppText, {
107
+ style: {
108
+ color: value ? themeColors.text : '#6C757D'
109
+ },
110
+ children: value ? countries.find(c => c.code === value)?.name : localize('customer.form.placeholder.country')
111
+ })
112
+ }), /*#__PURE__*/_jsx(Modal, {
113
+ visible: isCountryModalVisible,
114
+ transparent: true,
115
+ animationType: "slide",
116
+ onRequestClose: () => setIsCountryModalVisible(false),
117
+ children: /*#__PURE__*/_jsx(View, {
118
+ style: [styles.modalContainer, {
119
+ backgroundColor: 'rgba(0, 0, 0, 0.5)'
120
+ }],
121
+ children: /*#__PURE__*/_jsx(View, {
122
+ style: [styles.modalContent, {
123
+ backgroundColor: themeColors.background
124
+ }],
125
+ children: /*#__PURE__*/_jsx(FlatList, {
126
+ data: countries,
127
+ keyExtractor: item => item.code,
128
+ initialScrollIndex: countries.findIndex(c => c.code === value),
129
+ renderItem: ({
130
+ item
131
+ }) => /*#__PURE__*/_jsx(Pressable, {
132
+ style: [styles.countryItem, {
133
+ backgroundColor: value === item.code ? themeColors.primary : themeColors.background,
134
+ borderBottomColor: themeColors.border
135
+ }],
136
+ onPress: () => {
137
+ onChange(item.code);
138
+ setIsCountryModalVisible(false);
139
+ },
140
+ children: /*#__PURE__*/_jsx(AppText, {
141
+ style: {
142
+ color: value === item.code ? themeColors.background : themeColors.text,
143
+ fontSize: 16
144
+ },
145
+ children: item.name
146
+ })
147
+ })
148
+ })
149
+ })
150
+ })
151
+ })]
152
+ }),
153
+ name: "country"
154
+ }), errors.country && /*#__PURE__*/_jsx(AppText, {
155
+ localization: "customer.form.error.country",
156
+ style: [styles.error, {
157
+ color: themeColors.error
158
+ }]
159
+ }), /*#__PURE__*/_jsx(Controller, {
160
+ control: control,
161
+ rules: {
162
+ required: true,
163
+ pattern: /^\S+@\S+$/i
164
+ },
165
+ render: ({
166
+ field: {
167
+ onChange,
168
+ value
169
+ }
170
+ }) => /*#__PURE__*/_jsx(TextInput, {
171
+ style: inputStyle,
172
+ placeholder: localize('customer.form.placeholder.email'),
173
+ placeholderTextColor: "#6C757D",
174
+ value: value,
175
+ onChangeText: onChange,
176
+ keyboardType: "email-address"
177
+ }),
178
+ name: "email"
179
+ }), errors.email && /*#__PURE__*/_jsx(AppText, {
180
+ localization: "customer.form.error.email",
181
+ style: [styles.error, {
182
+ color: themeColors.error
183
+ }]
184
+ }), /*#__PURE__*/_jsx(Controller, {
185
+ control: control,
186
+ rules: {
187
+ required: true
188
+ },
189
+ render: ({
190
+ field: {
191
+ onChange,
192
+ value
193
+ }
194
+ }) => /*#__PURE__*/_jsx(TextInput, {
195
+ style: inputStyle,
196
+ placeholder: localize('customer.form.placeholder.phone'),
197
+ placeholderTextColor: "#6C757D",
198
+ value: value,
199
+ onChangeText: onChange,
200
+ keyboardType: "phone-pad"
201
+ }),
202
+ name: "phone"
203
+ }), errors.phone && /*#__PURE__*/_jsx(AppText, {
204
+ localization: "customer.form.error.phone",
205
+ style: [styles.error, {
206
+ color: themeColors.error
207
+ }]
208
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
209
+ style: [styles.button, {
210
+ backgroundColor: themeColors.primary
211
+ }],
212
+ onPress: handleSubmit(onSubmit),
213
+ children: /*#__PURE__*/_jsx(AppText, {
214
+ localization: "customer.form.submit",
215
+ style: styles.buttonText
216
+ })
217
+ })]
218
+ });
219
+ }
220
+ const styles = StyleSheet.create({
221
+ container: {
222
+ padding: 24,
223
+ flex: 1,
224
+ justifyContent: 'center'
225
+ },
226
+ headerContainer: {
227
+ marginBottom: 24
228
+ },
229
+ headerText: {
230
+ fontSize: 15,
231
+ fontWeight: '600',
232
+ textAlign: 'center'
233
+ },
234
+ input: {
235
+ height: 56,
236
+ borderWidth: 1,
237
+ borderRadius: 12,
238
+ paddingHorizontal: 16,
239
+ fontSize: 16,
240
+ backgroundColor: 'white',
241
+ marginBottom: 16
242
+ },
243
+ button: {
244
+ padding: 16,
245
+ borderRadius: 12,
246
+ alignItems: 'center',
247
+ marginTop: 24
248
+ },
249
+ buttonText: {
250
+ color: 'white',
251
+ fontSize: 16,
252
+ fontWeight: '600'
253
+ },
254
+ error: {
255
+ fontSize: 14,
256
+ marginLeft: 16,
257
+ top: -16
258
+ },
259
+ modalContainer: {
260
+ flex: 1,
261
+ justifyContent: 'center',
262
+ alignItems: 'center'
263
+ },
264
+ modalContent: {
265
+ width: '90%',
266
+ height: '70%',
267
+ borderRadius: 12,
268
+ overflow: 'hidden'
269
+ },
270
+ countryItem: {
271
+ padding: 16,
272
+ borderBottomWidth: 1
273
+ }
274
+ });
275
+ //# sourceMappingURL=CustomerForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["View","TextInput","StyleSheet","TouchableOpacity","Modal","FlatList","Pressable","useForm","Controller","useAppStore","createCustomer","AppText","useLocalize","useThemeColors","countries","useState","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","CustomerForm","control","handleSubmit","formState","errors","themeColors","localize","isCountryModalVisible","setIsCountryModalVisible","inputStyle","styles","input","color","text","borderColor","border","backgroundColor","background","onSubmit","data","customer","language","externalId","getState","ipAddress","customParameters","fake","undefined","initForm","error","console","style","container","children","headerContainer","localization","headerText","rules","required","render","field","onChange","value","placeholder","placeholderTextColor","onChangeText","name","justifyContent","onPress","find","c","code","visible","transparent","animationType","onRequestClose","modalContainer","modalContent","keyExtractor","item","initialScrollIndex","findIndex","renderItem","countryItem","primary","borderBottomColor","fontSize","country","pattern","keyboardType","email","phone","button","buttonText","create","padding","flex","marginBottom","fontWeight","textAlign","height","borderWidth","borderRadius","paddingHorizontal","alignItems","marginTop","marginLeft","top","width","overflow","borderBottomWidth"],"sourceRoot":"../../../src","sources":["components/CustomerForm.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ import { View, StyleSheet } from 'react-native';
4
+ import { useThemeColors } from "../hooks/useThemeColors.js";
5
+ import { AppText } from "./AppText.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export function EmptyList() {
8
+ const themeColors = useThemeColors();
9
+ return /*#__PURE__*/_jsx(View, {
10
+ style: [styles.container, {
11
+ backgroundColor: themeColors.background
12
+ }],
13
+ children: /*#__PURE__*/_jsx(AppText, {
14
+ localization: "chat.empty",
15
+ style: [styles.text, {
16
+ color: themeColors.text
17
+ }]
18
+ })
19
+ });
20
+ }
21
+ const styles = StyleSheet.create({
22
+ container: {
23
+ flex: 1,
24
+ alignItems: 'center',
25
+ justifyContent: 'center',
26
+ padding: 20,
27
+ transform: [{
28
+ rotate: '180deg'
29
+ }] //TODO: inverted list
30
+ },
31
+ text: {
32
+ fontSize: 16,
33
+ textAlign: 'center'
34
+ }
35
+ });
36
+ //# sourceMappingURL=EmptyList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["View","StyleSheet","useThemeColors","AppText","jsx","_jsx","EmptyList","themeColors","style","styles","container","backgroundColor","background","children","localization","text","color","create","flex","alignItems","justifyContent","padding","transform","rotate","fontSize","textAlign"],"sourceRoot":"../../../src","sources":["components/EmptyList.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAC/C,SAASC,cAAc,QAAQ,4BAAyB;AACxD,SAASC,OAAO,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEpC,OAAO,SAASC,SAASA,CAAA,EAAG;EAC1B,MAAMC,WAAW,GAAGL,cAAc,CAAC,CAAC;EAEpC,oBACEG,IAAA,CAACL,IAAI;IACHQ,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAE;MAAEC,eAAe,EAAEJ,WAAW,CAACK;IAAW,CAAC,CAAE;IAAAC,QAAA,eAEvER,IAAA,CAACF,OAAO;MACNW,YAAY,EAAC,YAAY;MACzBN,KAAK,EAAE,CAACC,MAAM,CAACM,IAAI,EAAE;QAAEC,KAAK,EAAET,WAAW,CAACQ;MAAK,CAAC;IAAE,CACnD;EAAC,CACE,CAAC;AAEX;AAEA,MAAMN,MAAM,GAAGR,UAAU,CAACgB,MAAM,CAAC;EAC/BP,SAAS,EAAE;IACTQ,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,OAAO,EAAE,EAAE;IACXC,SAAS,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAS,CAAC,CAAC,CAAE;EACrC,CAAC;EACDR,IAAI,EAAE;IACJS,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ import { TouchableOpacity, View, StyleSheet } from 'react-native';
4
+ import { useThemeColors } from "../hooks/useThemeColors.js";
5
+ import { AppText } from "./AppText.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ export function InitFailed({
8
+ setInitFailed
9
+ }) {
10
+ const themeColors = useThemeColors();
11
+ return /*#__PURE__*/_jsx(View, {
12
+ style: [styles.container, {
13
+ backgroundColor: themeColors.background
14
+ }],
15
+ children: /*#__PURE__*/_jsx(TouchableOpacity, {
16
+ style: [styles.retryButton, {
17
+ backgroundColor: themeColors.primary
18
+ }],
19
+ onPress: () => setInitFailed(false),
20
+ children: /*#__PURE__*/_jsx(AppText, {
21
+ localization: "chat.init.error",
22
+ style: [styles.retryText, {
23
+ color: themeColors.background
24
+ }]
25
+ })
26
+ })
27
+ });
28
+ }
29
+ const styles = StyleSheet.create({
30
+ container: {
31
+ flex: 1,
32
+ alignItems: 'center',
33
+ justifyContent: 'center',
34
+ padding: 20
35
+ },
36
+ retryButton: {
37
+ padding: 15,
38
+ borderRadius: 8,
39
+ alignItems: 'center',
40
+ justifyContent: 'center'
41
+ },
42
+ retryText: {
43
+ fontSize: 16,
44
+ fontWeight: '500'
45
+ }
46
+ });
47
+ //# sourceMappingURL=InitFailed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["TouchableOpacity","View","StyleSheet","useThemeColors","AppText","jsx","_jsx","InitFailed","setInitFailed","themeColors","style","styles","container","backgroundColor","background","children","retryButton","primary","onPress","localization","retryText","color","create","flex","alignItems","justifyContent","padding","borderRadius","fontSize","fontWeight"],"sourceRoot":"../../../src","sources":["components/InitFailed.tsx"],"mappings":";;AAAA,SAASA,gBAAgB,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AACjE,SAASC,cAAc,QAAQ,4BAAyB;AACxD,SAASC,OAAO,QAAQ,cAAW;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMpC,OAAO,SAASC,UAAUA,CAAC;EAAEC;AAA+B,CAAC,EAAE;EAC7D,MAAMC,WAAW,GAAGN,cAAc,CAAC,CAAC;EAEpC,oBACEG,IAAA,CAACL,IAAI;IACHS,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAE;MAAEC,eAAe,EAAEJ,WAAW,CAACK;IAAW,CAAC,CAAE;IAAAC,QAAA,eAEvET,IAAA,CAACN,gBAAgB;MACfU,KAAK,EAAE,CAACC,MAAM,CAACK,WAAW,EAAE;QAAEH,eAAe,EAAEJ,WAAW,CAACQ;MAAQ,CAAC,CAAE;MACtEC,OAAO,EAAEA,CAAA,KAAMV,aAAa,CAAC,KAAK,CAAE;MAAAO,QAAA,eAEpCT,IAAA,CAACF,OAAO;QACNe,YAAY,EAAC,iBAAiB;QAC9BT,KAAK,EAAE,CAACC,MAAM,CAACS,SAAS,EAAE;UAAEC,KAAK,EAAEZ,WAAW,CAACK;QAAW,CAAC;MAAE,CAC9D;IAAC,CACc;EAAC,CACf,CAAC;AAEX;AAEA,MAAMH,MAAM,GAAGT,UAAU,CAACoB,MAAM,CAAC;EAC/BV,SAAS,EAAE;IACTW,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,OAAO,EAAE;EACX,CAAC;EACDV,WAAW,EAAE;IACXU,OAAO,EAAE,EAAE;IACXC,YAAY,EAAE,CAAC;IACfH,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDL,SAAS,EAAE;IACTQ,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}