@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.
- package/lib/commonjs/App.js +59 -0
- package/lib/commonjs/App.js.map +1 -0
- package/lib/commonjs/__dev__.js +29 -0
- package/lib/commonjs/__dev__.js.map +1 -0
- package/lib/commonjs/api/api.js +22 -0
- package/lib/commonjs/api/api.js.map +1 -0
- package/lib/commonjs/api/conversations.js +37 -0
- package/lib/commonjs/api/conversations.js.map +1 -0
- package/lib/commonjs/api/customers.js +15 -0
- package/lib/commonjs/api/customers.js.map +1 -0
- package/lib/commonjs/api/index.js +33 -0
- package/lib/commonjs/api/index.js.map +1 -0
- package/lib/commonjs/api/messages.js +27 -0
- package/lib/commonjs/api/messages.js.map +1 -0
- package/lib/commonjs/assets/clock.png +0 -0
- package/lib/commonjs/assets/double-check.png +0 -0
- package/lib/commonjs/assets/down.png +0 -0
- package/lib/commonjs/assets/send.png +0 -0
- package/lib/commonjs/components/AppText.js +38 -0
- package/lib/commonjs/components/AppText.js.map +1 -0
- package/lib/commonjs/components/ChatList.js +268 -0
- package/lib/commonjs/components/ChatList.js.map +1 -0
- package/lib/commonjs/components/CustomerForm.js +279 -0
- package/lib/commonjs/components/CustomerForm.js.map +1 -0
- package/lib/commonjs/components/EmptyList.js +40 -0
- package/lib/commonjs/components/EmptyList.js.map +1 -0
- package/lib/commonjs/components/InitFailed.js +51 -0
- package/lib/commonjs/components/InitFailed.js.map +1 -0
- package/lib/commonjs/components/MessageInput.js +119 -0
- package/lib/commonjs/components/MessageInput.js.map +1 -0
- package/lib/commonjs/components/MessageItem.js +117 -0
- package/lib/commonjs/components/MessageItem.js.map +1 -0
- package/lib/commonjs/constants/countries.js +587 -0
- package/lib/commonjs/constants/countries.js.map +1 -0
- package/lib/commonjs/constants/translations.js +219 -0
- package/lib/commonjs/constants/translations.js.map +1 -0
- package/lib/commonjs/data/fake/conversations.js +95 -0
- package/lib/commonjs/data/fake/conversations.js.map +1 -0
- package/lib/commonjs/data/fake/customers.js +24 -0
- package/lib/commonjs/data/fake/customers.js.map +1 -0
- package/lib/commonjs/data/fake/messages.js +67 -0
- package/lib/commonjs/data/fake/messages.js.map +1 -0
- package/lib/commonjs/hooks/useLocalize.js +20 -0
- package/lib/commonjs/hooks/useLocalize.js.map +1 -0
- package/lib/commonjs/hooks/usePolling.js +50 -0
- package/lib/commonjs/hooks/usePolling.js.map +1 -0
- package/lib/commonjs/hooks/useThemeColors.js +17 -0
- package/lib/commonjs/hooks/useThemeColors.js.map +1 -0
- package/lib/commonjs/index.js +15 -6
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/register.js +21 -0
- package/lib/commonjs/register.js.map +1 -0
- package/lib/commonjs/store.js +79 -0
- package/lib/commonjs/store.js.map +1 -0
- package/lib/commonjs/types/ApiOptions.js +2 -0
- package/lib/commonjs/types/ApiOptions.js.map +1 -0
- package/lib/commonjs/types/Conversation.js +2 -0
- package/lib/commonjs/types/Conversation.js.map +1 -0
- package/lib/commonjs/types/Customer.js +2 -0
- package/lib/commonjs/types/Customer.js.map +1 -0
- package/lib/commonjs/types/Language.js +2 -0
- package/lib/commonjs/types/Language.js.map +1 -0
- package/lib/commonjs/types/LocalizationKeys.js +2 -0
- package/lib/commonjs/types/LocalizationKeys.js.map +1 -0
- package/lib/commonjs/types/MessageResponse.js +2 -0
- package/lib/commonjs/types/MessageResponse.js.map +1 -0
- package/lib/commonjs/types/Theme.js +29 -0
- package/lib/commonjs/types/Theme.js.map +1 -0
- package/lib/commonjs/utils/date.js +17 -0
- package/lib/commonjs/utils/date.js.map +1 -0
- package/lib/module/App.js +55 -0
- package/lib/module/App.js.map +1 -0
- package/lib/module/__dev__.js +29 -0
- package/lib/module/__dev__.js.map +1 -0
- package/lib/module/api/api.js +17 -0
- package/lib/module/api/api.js.map +1 -0
- package/lib/module/api/conversations.js +32 -0
- package/lib/module/api/conversations.js.map +1 -0
- package/lib/module/api/customers.js +11 -0
- package/lib/module/api/customers.js.map +1 -0
- package/lib/module/api/index.js +6 -0
- package/lib/module/api/index.js.map +1 -0
- package/lib/module/api/messages.js +23 -0
- package/lib/module/api/messages.js.map +1 -0
- package/lib/module/assets/clock.png +0 -0
- package/lib/module/assets/double-check.png +0 -0
- package/lib/module/assets/down.png +0 -0
- package/lib/module/assets/send.png +0 -0
- package/lib/module/components/AppText.js +34 -0
- package/lib/module/components/AppText.js.map +1 -0
- package/lib/module/components/ChatList.js +265 -0
- package/lib/module/components/ChatList.js.map +1 -0
- package/lib/module/components/CustomerForm.js +275 -0
- package/lib/module/components/CustomerForm.js.map +1 -0
- package/lib/module/components/EmptyList.js +36 -0
- package/lib/module/components/EmptyList.js.map +1 -0
- package/lib/module/components/InitFailed.js +47 -0
- package/lib/module/components/InitFailed.js.map +1 -0
- package/lib/module/components/MessageInput.js +115 -0
- package/lib/module/components/MessageInput.js.map +1 -0
- package/lib/module/components/MessageItem.js +114 -0
- package/lib/module/components/MessageItem.js.map +1 -0
- package/lib/module/constants/countries.js +583 -0
- package/lib/module/constants/countries.js.map +1 -0
- package/lib/module/constants/translations.js +215 -0
- package/lib/module/constants/translations.js.map +1 -0
- package/lib/module/data/fake/conversations.js +88 -0
- package/lib/module/data/fake/conversations.js.map +1 -0
- package/lib/module/data/fake/customers.js +20 -0
- package/lib/module/data/fake/customers.js.map +1 -0
- package/lib/module/data/fake/messages.js +63 -0
- package/lib/module/data/fake/messages.js.map +1 -0
- package/lib/module/hooks/useLocalize.js +16 -0
- package/lib/module/hooks/useLocalize.js.map +1 -0
- package/lib/module/hooks/usePolling.js +46 -0
- package/lib/module/hooks/usePolling.js.map +1 -0
- package/lib/module/hooks/useThemeColors.js +13 -0
- package/lib/module/hooks/useThemeColors.js.map +1 -0
- package/lib/module/index.js +3 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/register.js +17 -0
- package/lib/module/register.js.map +1 -0
- package/lib/module/store.js +74 -0
- package/lib/module/store.js.map +1 -0
- package/lib/module/types/ApiOptions.js +2 -0
- package/lib/module/types/ApiOptions.js.map +1 -0
- package/lib/module/types/Conversation.js +2 -0
- package/lib/module/types/Conversation.js.map +1 -0
- package/lib/module/types/Customer.js +2 -0
- package/lib/module/types/Customer.js.map +1 -0
- package/lib/module/types/Language.js +2 -0
- package/lib/module/types/Language.js.map +1 -0
- package/lib/module/types/LocalizationKeys.js +2 -0
- package/lib/module/types/LocalizationKeys.js.map +1 -0
- package/lib/module/types/MessageResponse.js +2 -0
- package/lib/module/types/MessageResponse.js.map +1 -0
- package/lib/module/types/Theme.js +25 -0
- package/lib/module/types/Theme.js.map +1 -0
- package/lib/module/utils/date.js +12 -0
- package/lib/module/utils/date.js.map +1 -0
- package/lib/typescript/commonjs/src/App.d.ts +9 -0
- package/lib/typescript/commonjs/src/App.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/__dev__.d.ts +2 -0
- package/lib/typescript/commonjs/src/__dev__.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/api/api.d.ts +4 -0
- package/lib/typescript/commonjs/src/api/api.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/api/conversations.d.ts +7 -0
- package/lib/typescript/commonjs/src/api/conversations.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/api/customers.d.ts +4 -0
- package/lib/typescript/commonjs/src/api/customers.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/api/index.d.ts +4 -0
- package/lib/typescript/commonjs/src/api/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/api/messages.d.ts +4 -0
- package/lib/typescript/commonjs/src/api/messages.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/AppText.d.ts +10 -0
- package/lib/typescript/commonjs/src/components/AppText.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/ChatList.d.ts +2 -0
- package/lib/typescript/commonjs/src/components/ChatList.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/CustomerForm.d.ts +2 -0
- package/lib/typescript/commonjs/src/components/CustomerForm.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/EmptyList.d.ts +2 -0
- package/lib/typescript/commonjs/src/components/EmptyList.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/InitFailed.d.ts +6 -0
- package/lib/typescript/commonjs/src/components/InitFailed.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/MessageInput.d.ts +4 -0
- package/lib/typescript/commonjs/src/components/MessageInput.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/components/MessageItem.d.ts +5 -0
- package/lib/typescript/commonjs/src/components/MessageItem.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/constants/countries.d.ts +6 -0
- package/lib/typescript/commonjs/src/constants/countries.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/constants/translations.d.ts +4 -0
- package/lib/typescript/commonjs/src/constants/translations.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/data/fake/conversations.d.ts +5 -0
- package/lib/typescript/commonjs/src/data/fake/conversations.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/data/fake/customers.d.ts +3 -0
- package/lib/typescript/commonjs/src/data/fake/customers.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/data/fake/messages.d.ts +3 -0
- package/lib/typescript/commonjs/src/data/fake/messages.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/useLocalize.d.ts +3 -0
- package/lib/typescript/commonjs/src/hooks/useLocalize.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/usePolling.d.ts +2 -0
- package/lib/typescript/commonjs/src/hooks/usePolling.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/useThemeColors.d.ts +3 -0
- package/lib/typescript/commonjs/src/hooks/useThemeColors.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +4 -1
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/register.d.ts +5 -0
- package/lib/typescript/commonjs/src/register.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/store.d.ts +35 -0
- package/lib/typescript/commonjs/src/store.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/ApiOptions.d.ts +4 -0
- package/lib/typescript/commonjs/src/types/ApiOptions.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/Conversation.d.ts +26 -0
- package/lib/typescript/commonjs/src/types/Conversation.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/Customer.d.ts +30 -0
- package/lib/typescript/commonjs/src/types/Customer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/Language.d.ts +2 -0
- package/lib/typescript/commonjs/src/types/Language.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/LocalizationKeys.d.ts +22 -0
- package/lib/typescript/commonjs/src/types/LocalizationKeys.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/MessageResponse.d.ts +59 -0
- package/lib/typescript/commonjs/src/types/MessageResponse.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/Theme.d.ts +18 -0
- package/lib/typescript/commonjs/src/types/Theme.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/utils/date.d.ts +7 -0
- package/lib/typescript/commonjs/src/utils/date.d.ts.map +1 -0
- package/lib/typescript/module/src/App.d.ts +9 -0
- package/lib/typescript/module/src/App.d.ts.map +1 -0
- package/lib/typescript/module/src/__dev__.d.ts +2 -0
- package/lib/typescript/module/src/__dev__.d.ts.map +1 -0
- package/lib/typescript/module/src/api/api.d.ts +4 -0
- package/lib/typescript/module/src/api/api.d.ts.map +1 -0
- package/lib/typescript/module/src/api/conversations.d.ts +7 -0
- package/lib/typescript/module/src/api/conversations.d.ts.map +1 -0
- package/lib/typescript/module/src/api/customers.d.ts +4 -0
- package/lib/typescript/module/src/api/customers.d.ts.map +1 -0
- package/lib/typescript/module/src/api/index.d.ts +4 -0
- package/lib/typescript/module/src/api/index.d.ts.map +1 -0
- package/lib/typescript/module/src/api/messages.d.ts +4 -0
- package/lib/typescript/module/src/api/messages.d.ts.map +1 -0
- package/lib/typescript/module/src/components/AppText.d.ts +10 -0
- package/lib/typescript/module/src/components/AppText.d.ts.map +1 -0
- package/lib/typescript/module/src/components/ChatList.d.ts +2 -0
- package/lib/typescript/module/src/components/ChatList.d.ts.map +1 -0
- package/lib/typescript/module/src/components/CustomerForm.d.ts +2 -0
- package/lib/typescript/module/src/components/CustomerForm.d.ts.map +1 -0
- package/lib/typescript/module/src/components/EmptyList.d.ts +2 -0
- package/lib/typescript/module/src/components/EmptyList.d.ts.map +1 -0
- package/lib/typescript/module/src/components/InitFailed.d.ts +6 -0
- package/lib/typescript/module/src/components/InitFailed.d.ts.map +1 -0
- package/lib/typescript/module/src/components/MessageInput.d.ts +4 -0
- package/lib/typescript/module/src/components/MessageInput.d.ts.map +1 -0
- package/lib/typescript/module/src/components/MessageItem.d.ts +5 -0
- package/lib/typescript/module/src/components/MessageItem.d.ts.map +1 -0
- package/lib/typescript/module/src/constants/countries.d.ts +6 -0
- package/lib/typescript/module/src/constants/countries.d.ts.map +1 -0
- package/lib/typescript/module/src/constants/translations.d.ts +4 -0
- package/lib/typescript/module/src/constants/translations.d.ts.map +1 -0
- package/lib/typescript/module/src/data/fake/conversations.d.ts +5 -0
- package/lib/typescript/module/src/data/fake/conversations.d.ts.map +1 -0
- package/lib/typescript/module/src/data/fake/customers.d.ts +3 -0
- package/lib/typescript/module/src/data/fake/customers.d.ts.map +1 -0
- package/lib/typescript/module/src/data/fake/messages.d.ts +3 -0
- package/lib/typescript/module/src/data/fake/messages.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/useLocalize.d.ts +3 -0
- package/lib/typescript/module/src/hooks/useLocalize.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/usePolling.d.ts +2 -0
- package/lib/typescript/module/src/hooks/usePolling.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/useThemeColors.d.ts +3 -0
- package/lib/typescript/module/src/hooks/useThemeColors.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +4 -1
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/register.d.ts +5 -0
- package/lib/typescript/module/src/register.d.ts.map +1 -0
- package/lib/typescript/module/src/store.d.ts +35 -0
- package/lib/typescript/module/src/store.d.ts.map +1 -0
- package/lib/typescript/module/src/types/ApiOptions.d.ts +4 -0
- package/lib/typescript/module/src/types/ApiOptions.d.ts.map +1 -0
- package/lib/typescript/module/src/types/Conversation.d.ts +26 -0
- package/lib/typescript/module/src/types/Conversation.d.ts.map +1 -0
- package/lib/typescript/module/src/types/Customer.d.ts +30 -0
- package/lib/typescript/module/src/types/Customer.d.ts.map +1 -0
- package/lib/typescript/module/src/types/Language.d.ts +2 -0
- package/lib/typescript/module/src/types/Language.d.ts.map +1 -0
- package/lib/typescript/module/src/types/LocalizationKeys.d.ts +22 -0
- package/lib/typescript/module/src/types/LocalizationKeys.d.ts.map +1 -0
- package/lib/typescript/module/src/types/MessageResponse.d.ts +59 -0
- package/lib/typescript/module/src/types/MessageResponse.d.ts.map +1 -0
- package/lib/typescript/module/src/types/Theme.d.ts +18 -0
- package/lib/typescript/module/src/types/Theme.d.ts.map +1 -0
- package/lib/typescript/module/src/utils/date.d.ts +7 -0
- package/lib/typescript/module/src/utils/date.d.ts.map +1 -0
- package/package.json +10 -2
- package/src/App.tsx +59 -0
- package/src/__dev__.ts +22 -0
- package/src/api/api.ts +16 -0
- package/src/api/conversations.ts +53 -0
- package/src/api/customers.ts +16 -0
- package/src/api/index.ts +6 -0
- package/src/api/messages.ts +33 -0
- package/src/assets/clock.png +0 -0
- package/src/assets/double-check.png +0 -0
- package/src/assets/down.png +0 -0
- package/src/assets/send.png +0 -0
- package/src/components/AppText.tsx +43 -0
- package/src/components/ChatList.tsx +299 -0
- package/src/components/CustomerForm.tsx +300 -0
- package/src/components/EmptyList.tsx +32 -0
- package/src/components/InitFailed.tsx +46 -0
- package/src/components/MessageInput.tsx +133 -0
- package/src/components/MessageItem.tsx +141 -0
- package/src/constants/countries.ts +200 -0
- package/src/constants/translations.ts +232 -0
- package/src/data/fake/conversations.ts +558 -0
- package/src/data/fake/customers.ts +19 -0
- package/src/data/fake/messages.ts +64 -0
- package/src/hooks/useLocalize.ts +18 -0
- package/src/hooks/usePolling.ts +46 -0
- package/src/hooks/useThemeColors.ts +10 -0
- package/src/index.tsx +4 -5
- package/src/register.ts +17 -0
- package/src/store.ts +85 -0
- package/src/types/ApiOptions.ts +4 -0
- package/src/types/Conversation.ts +29 -0
- package/src/types/Customer.ts +31 -0
- package/src/types/Language.ts +11 -0
- package/src/types/LocalizationKeys.ts +21 -0
- package/src/types/MessageResponse.ts +58 -0
- package/src/types/Theme.ts +40 -0
- 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":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAChE,SAASC,WAAW,QAAQ,aAAU;AACtC,SACEC,QAAQ,EACRC,IAAI,EACJC,mBAAmB,EACnBC,iBAAiB,EACjBC,KAAK,EACLC,gBAAgB,QACX,cAAc;AACrB,SAASC,uBAAuB,QAAQ,iBAAQ;AAEhD,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SAASC,YAAY,QAAQ,mBAAgB;AAC7C,SAASC,cAAc,QAAQ,4BAAyB;AACxD,SAASC,OAAO,QAAQ,cAAW;AACnC,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,SAAS,QAAQ,gBAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAExC,SAASC,WAAWA,CAAA,EAAG;EACrB,MAAMC,WAAW,GAAGT,cAAc,CAAC,CAAC;EACpC,oBACEK,IAAA,CAACd,IAAI;IACHmB,KAAK,EAAE,CAACC,MAAM,CAACC,WAAW,EAAE;MAAEC,eAAe,EAAEJ,WAAW,CAACK;IAAW,CAAC,CAAE;IAAAC,QAAA,eAEzEV,IAAA,CAACZ,iBAAiB;MAACuB,IAAI,EAAC,OAAO;MAACC,KAAK,EAAER,WAAW,CAACS;IAAQ,CAAE;EAAC,CAC1D,CAAC;AAEX;AAEA,OAAO,SAASC,QAAQA,CAAA,EAAG;EACzB,MAAMV,WAAW,GAAGT,cAAc,CAAC,CAAC;EACpC,MAAM;IAAEoB,MAAM,EAAEC;EAAa,CAAC,GAAG7B,mBAAmB,CAAC,CAAC;EACtD,MAAM8B,kBAAkB,GAAG,EAAE;EAC7B,MAAMC,gBAAgB,GAAG,EAAE;EAC3B,MAAMC,iBAAiB,GAAGC,IAAI,CAACC,IAAI,CACjC,CAACL,YAAY,GAAGE,gBAAgB,IAAID,kBACtC,CAAC;EACD,MAAM,CAACK,OAAO,EAAEC,UAAU,CAAC,GAAGxC,QAAQ,CAAC,IAAI,CAAC;EAC5C,MAAM;IAAEyC,QAAQ;IAAEC,IAAI;IAAEC;EAAQ,CAAC,GAAG1C,WAAW,CAAE2C,CAAC,KAAM;IACtDH,QAAQ,EAAEG,CAAC,CAACH,QAAQ;IACpBC,IAAI,EAAEE,CAAC,CAACF,IAAI;IACZC,OAAO,EAAEC,CAAC,CAACD;EACb,CAAC,CAAC,CAAC;EACH,MAAME,GAAG,GAAG9C,MAAM,CAAmC,IAAI,CAAC;EAC1D,MAAM,CAAC+C,IAAI,EAAEC,OAAO,CAAC,GAAG/C,QAAQ,CAAC,CAAC,CAAC;EACnC,MAAMgD,cAAc,GAAGjD,MAAM,CAA+B,CAAC;EAC7D,MAAM,CAACkD,aAAa,EAAEC,gBAAgB,CAAC,GAAGlD,QAAQ,CAAC,KAAK,CAAC;EACzD,MAAM,CAACmD,UAAU,EAAEC,aAAa,CAAC,GAAGpD,QAAQ,CAAC,KAAK,CAAC;EACnD,MAAM,CAACqD,aAAa,EAAEC,gBAAgB,CAAC,GAAGtD,QAAQ,CAAC,KAAK,CAAC;EACzD,MAAMuD,cAAc,GAAGxD,MAAM,CAAC,KAAK,CAAC;EAEpC,MAAMyD,QAAQ,GAAG3D,WAAW,CAAC,MAAM;IACjC,IAAImD,cAAc,CAACS,OAAO,EAAE;MAC1B;IACF;IACAC,OAAO,CAACC,GAAG,CAAC,MAAM,CAAC;IACnBX,cAAc,CAACS,OAAO,GAAG,SAAS;IAClC,IAAIhB,QAAQ,EAAEmB,WAAW,EAAE;MACzB,MAAMC,OAAO,GAAGf,IAAI,GAAG,CAAC;MACxBC,OAAO,CAACc,OAAO,CAAC;MAChB,MAAMC,YAAY,GAAG7D,WAAW,CAAC8D,QAAQ,CAAC,CAAC,CAACD,YAAY;MACxDtD,uBAAuB,CACrBiC,QAAQ,EAAEmB,WAAW,EACrBE,YAAY,EAAEE,UAAU,EACxBH,OAAO,EACP;QACEI,IAAI,EAAEhE,WAAW,CAAC8D,QAAQ,CAAC,CAAC,CAACE,IAAI;QACjCC,QAAQ,EAAE9B;MACZ,CACF,CAAC,CACE+B,IAAI,CAAEC,OAAO,IAAK;QACjBb,cAAc,CAACE,OAAO,GAAG,IAAI;QAC7Bd,OAAO,CAAE0B,QAAQ,IAAK;UACpB,MAAMC,WAAW,GAAGF,OAAO,CAACtB,IAAI,CAACJ,IAAI;UACrC,MAAM6B,WAAW,GAAG,IAAIC,GAAG,CAACH,QAAQ,EAAEI,GAAG,CAAEC,GAAG,IAAKA,GAAG,CAACC,EAAE,CAAC,CAAC;UAC3D,MAAMC,iBAAiB,GAAGN,WAAW,CAACO,MAAM,CACzCH,GAAG,IAAK,CAACH,WAAW,CAACO,GAAG,CAACJ,GAAG,CAACC,EAAE,CAClC,CAAC;UAED,MAAMI,iBAAiB,GAAGH,iBAAiB,CAACH,GAAG,CAAEO,CAAC,KAAM;YACtD,GAAGA,CAAC;YACJhB,UAAU,EAAE,IAAIiB,IAAI,CAACD,CAAC,CAAChB,UAAU,CAAC;YAClCkB,QAAQ,EAAE;UACZ,CAAC,CAAC,CAAC;UACH,IAAIH,iBAAiB,CAACI,MAAM,KAAK,CAAC,EAAE;YAClCnC,cAAc,CAACS,OAAO,GAAG,OAAO;UAClC,CAAC,MAAM;YACLT,cAAc,CAACS,OAAO,GAAG2B,SAAS;UACpC;UACA,OAAO,CAAC,IAAIf,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAGU,iBAAiB,CAAC;QACpD,CAAC,CAAC;MACJ,CAAC,CAAC,CACDM,KAAK,CAAEC,CAAC,IAAK;QACZtC,cAAc,CAACS,OAAO,GAAG,MAAM;QAC/BP,gBAAgB,CAAC,IAAI,CAAC;MACxB,CAAC,CAAC,CACDqC,OAAO,CAAC,MAAM;QACb/C,UAAU,CAAC,KAAK,CAAC;MACnB,CAAC,CAAC;IACN;EACF,CAAC,EAAE,CAACJ,iBAAiB,EAAEK,QAAQ,EAAEmB,WAAW,EAAEd,IAAI,EAAEH,OAAO,CAAC,CAAC;EAE7D,MAAM6C,UAAU,GAAG3F,WAAW,CAC5B,CAAC;IAAE4F;EAAuC,CAAC,kBAAKxE,IAAA,CAACP,WAAW;IAAC+E,IAAI,EAAEA;EAAK,CAAE,CAAC,EAC3E,EACF,CAAC;EAED,MAAMC,YAAY,GAAG7F,WAAW,CAC7B8F,KAAU,IAAK;IACd,MAAMC,cAAc,GAAGD,KAAK,CAACE,WAAW,CAACC,aAAa,CAACC,CAAC;IACxD,MAAMC,aAAa,GAAGL,KAAK,CAACE,WAAW,CAACI,WAAW,CAACjE,MAAM;IAC1D,MAAMkE,gBAAgB,GAAGP,KAAK,CAACE,WAAW,CAACM,iBAAiB,CAACnE,MAAM;IACnEsB,gBAAgB,CAACsC,cAAc,GAAG,GAAG,CAAC;IAEtC,IAAIA,cAAc,IAAII,aAAa,GAAGE,gBAAgB,GAAG,GAAG,EAAE;MAC5D1C,QAAQ,CAAC,CAAC;IACZ;EACF,CAAC,EACD,CAACA,QAAQ,CACX,CAAC;EAED,MAAM4C,cAAc,GAAGvG,WAAW,CAC/BwG,QAAiB,IAAK;IACrB,IAAIxD,GAAG,CAACY,OAAO,IAAIf,IAAI,EAAEyC,MAAM,EAAE;MAC/BtC,GAAG,CAACY,OAAO,CAAC6C,cAAc,CAAC;QACzBC,MAAM,EAAE,CAAC;QACTF;MACF,CAAC,CAAC;IACJ;EACF,CAAC,EACD,CAAC3D,IAAI,CACP,CAAC;EAED5C,SAAS,CAAC,MAAM;IACd,IAAI2C,QAAQ,EAAEmB,WAAW,IAAI,CAACT,UAAU,EAAE;MACxC3C,uBAAuB,CAACiC,QAAQ,EAAEmB,WAAW,EAAE,IAAIqB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE;QAC5DhB,IAAI,EAAEhE,WAAW,CAAC8D,QAAQ,CAAC,CAAC,CAACE,IAAI;QACjCC,QAAQ,EAAE9B;MACZ,CAAC,CAAC,CACC+B,IAAI,CAAEC,OAAO,IAAK;QACjBzB,OAAO,CAAE0B,QAAQ,IAAK;UACpB,MAAMC,WAAW,GAAGF,OAAO,CAACtB,IAAI,CAACJ,IAAI;UACrC,MAAM6B,WAAW,GAAG,IAAIC,GAAG,CAACH,QAAQ,EAAEI,GAAG,CAAEC,GAAG,IAAKA,GAAG,CAACC,EAAE,CAAC,CAAC;UAC3D,MAAMC,iBAAiB,GAAGN,WAAW,CAACO,MAAM,CACzCH,GAAG,IAAK,CAACH,WAAW,CAACO,GAAG,CAACJ,GAAG,CAACC,EAAE,CAClC,CAAC;UACD,MAAMI,iBAAiB,GAAGH,iBAAiB,CAACH,GAAG,CAAEO,CAAC,KAAM;YACtD,GAAGA,CAAC;YACJhB,UAAU,EAAE,IAAIiB,IAAI,CAACD,CAAC,CAAChB,UAAU,CAAC;YAClCkB,QAAQ,EAAE;UACZ,CAAC,CAAC,CAAC;UACHjF,WAAW,CAACuG,QAAQ,CAAC;YACnB1C,YAAY,EAAEiB,iBAAiB,CAAC,CAAC;UACnC,CAAC,CAAC;UACF,IAAIA,iBAAiB,CAACI,MAAM,KAAK,CAAC,EAAE;YAClC3C,UAAU,CAAC,KAAK,CAAC;UACnB;UACA,OAAOuC,iBAAiB;QAC1B,CAAC,CAAC;MACJ,CAAC,CAAC,CACDM,KAAK,CAAEoB,CAAC,IAAK;QACZrD,aAAa,CAAC,IAAI,CAAC;QACnBM,OAAO,CAACgD,KAAK,CAACD,CAAC,CAAC;MAClB,CAAC,CAAC;IACN;EACF,CAAC,EAAE,CAACrE,iBAAiB,EAAEK,QAAQ,EAAEmB,WAAW,EAAET,UAAU,EAAER,OAAO,CAAC,CAAC;EAEnE,IAAIM,aAAa,EAAE;IACjB,oBACEhC,IAAA,CAACd,IAAI;MACHmB,KAAK,EAAE,CACLC,MAAM,CAACoF,cAAc,EACrB;QAAElF,eAAe,EAAEJ,WAAW,CAACK;MAAW,CAAC,CAC3C;MAAAC,QAAA,eAEFV,IAAA,CAACV,gBAAgB;QACfe,KAAK,EAAE,CAACC,MAAM,CAACqF,WAAW,EAAE;UAAEnF,eAAe,EAAEJ,WAAW,CAACS;QAAQ,CAAC,CAAE;QACtE+E,OAAO,EAAEA,CAAA,KAAM;UACb3D,gBAAgB,CAAC,KAAK,CAAC;UACvBF,cAAc,CAACS,OAAO,GAAG2B,SAAS;UAClC5B,QAAQ,CAAC,CAAC;QACZ,CAAE;QAAA7B,QAAA,eAEFV,IAAA,CAACJ,OAAO;UACNiG,YAAY,EAAC,iBAAiB;UAC9BxF,KAAK,EAAE,CAACC,MAAM,CAACwF,SAAS,EAAE;YAAElF,KAAK,EAAER,WAAW,CAACK;UAAW,CAAC;QAAE,CAC9D;MAAC,CACc;IAAC,CACf,CAAC;EAEX;EAEA,IAAIyB,UAAU,EAAE;IACd,oBAAOlC,IAAA,CAACH,UAAU;MAACsC,aAAa,EAAEA;IAAc,CAAE,CAAC;EACrD;EACA,oBACEjC,KAAA,CAAChB,IAAI;IACHmB,KAAK,EAAE,CAACC,MAAM,CAACyF,SAAS,EAAE;MAAEvF,eAAe,EAAEJ,WAAW,CAACK;IAAW,CAAC,CAAE;IAAAC,QAAA,gBAEvEV,IAAA,CAACf,QAAQ;MACP2C,GAAG,EAAEA,GAAI;MACTH,IAAI,EAAEA,IAAK;MACXuE,QAAQ;MACRzB,UAAU,EAAEA,UAAW;MACvB0B,qBAAqB,EAAE,CACrB3F,MAAM,CAAC4F,gBAAgB,EACvB;QAAE1F,eAAe,EAAEJ,WAAW,CAACK;MAAW,CAAC,CAC3C;MACFJ,KAAK,EAAEC,MAAM,CAAC6F,IAAK;MACnBC,kBAAkB,EAChB,CAAC9E,OAAO,KAAK,CAACG,IAAI,IAAIA,IAAI,CAACyC,MAAM,KAAK,CAAC,CAAC,gBAAGlE,IAAA,CAACF,SAAS,IAAE,CAAC,GAAG,IAC5D;MACDuG,mBAAmB,EAAE/E,OAAO,gBAAGtB,IAAA,CAACG,WAAW,IAAE,CAAC,GAAG,IAAK;MACtDmG,YAAY,EAAG9B,IAAI,IAAKA,IAAI,CAACd,EAAE,GAAG,GAAG,GAAGc,IAAI,CAACzB,UAAW;MACxDwD,qBAAqB,EAAE,IAAK;MAC5BC,mBAAmB,EAAE,EAAG;MACxBC,UAAU,EAAE,EAAG;MACfC,kBAAkB,EAAEvF,iBAAkB;MACtCwF,aAAa,EAAEA,CAACtC,CAAC,EAAEuC,KAAK,MAAM;QAC5B1C,MAAM,EAAEjD,kBAAkB,GAAG,EAAE;QAC/BqE,MAAM,EAAE,CAACrE,kBAAkB,GAAG,EAAE,IAAI2F,KAAK;QACzCA;MACF,CAAC,CAAE;MACHC,QAAQ,EAAEpC,YAAa;MACvBqC,mBAAmB,EAAE;IAAG,CACzB,CAAC,EACD1E,aAAa,iBACZpC,IAAA,CAACV,gBAAgB;MACfe,KAAK,EAAE,CACLC,MAAM,CAACyG,gBAAgB,EACvB;QAAEvG,eAAe,EAAEJ,WAAW,CAACK;MAAW,CAAC,CAC3C;MACFmF,OAAO,EAAEA,CAAA,KAAMT,cAAc,CAAC,IAAI,CAAE;MAAAzE,QAAA,eAEpCV,IAAA,CAACX,KAAK;QACJ2H,MAAM,EAAEC,OAAO,CAAC,oBAAoB,CAAE;QACtC5G,KAAK,EAAE,CAACC,MAAM,CAAC4G,YAAY,EAAE;UAAEC,SAAS,EAAE/G,WAAW,CAACgH;QAAK,CAAC;MAAE,CAC/D;IAAC,CACc,CACnB,eACDpH,IAAA,CAACN,YAAY;MAACyF,cAAc,EAAEA;IAAe,CAAE,CAAC;EAAA,CAC5C,CAAC;AAEX;AAEA,MAAM7E,MAAM,GAAGd,UAAU,CAAC6H,MAAM,CAAC;EAC/BtB,SAAS,EAAE;IACTuB,IAAI,EAAE;EACR,CAAC;EACDnB,IAAI,EAAE;IACJmB,IAAI,EAAE;EACR,CAAC;EACDpB,gBAAgB,EAAE;IAChBqB,eAAe,EAAE,EAAE;IACnBC,iBAAiB,EAAE;EACrB,CAAC;EACDjH,WAAW,EAAE;IACXQ,MAAM,EAAE,GAAG;IACX0G,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDX,gBAAgB,EAAE;IAChBY,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,KAAK;IACbC,YAAY,EAAE,EAAE;IAChBC,OAAO,EAAE,EAAE;IACXC,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MACZC,KAAK,EAAE,CAAC;MACRnH,MAAM,EAAE;IACV,CAAC;IACDoH,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,IAAI;IAClBC,SAAS,EAAE;EACb,CAAC;EACDnB,YAAY,EAAE;IACZgB,KAAK,EAAE,EAAE;IACTnH,MAAM,EAAE;EACV,CAAC;EACD2E,cAAc,EAAE;IACd4B,IAAI,EAAE,CAAC;IACPG,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBK,OAAO,EAAE;EACX,CAAC;EACDpC,WAAW,EAAE;IACXoC,OAAO,EAAE,EAAE;IACXD,YAAY,EAAE,CAAC;IACfL,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACD5B,SAAS,EAAE;IACTwC,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd;AACF,CAAC,CAAC","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":[]}
|