@developer_tribe/react-native-comnyx 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +213 -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/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 +209 -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/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/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/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 +305 -0
- package/src/components/CustomerForm.tsx +203 -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/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,141 @@
|
|
|
1
|
+
import { View, Image } from 'react-native';
|
|
2
|
+
import { AppText } from './AppText';
|
|
3
|
+
import type { AppConversationMessage } from '../types/Conversation';
|
|
4
|
+
import { StyleSheet } from 'react-native';
|
|
5
|
+
import { useThemeColors } from '../hooks/useThemeColors';
|
|
6
|
+
|
|
7
|
+
const clockIcon = require('../assets/clock.png');
|
|
8
|
+
const doubleCheckIcon = require('../assets/double-check.png');
|
|
9
|
+
|
|
10
|
+
export function MessageItem({ item }: { item: AppConversationMessage }) {
|
|
11
|
+
const themeColors = useThemeColors();
|
|
12
|
+
const isDeviceOwner = !!item.user;
|
|
13
|
+
const formattedDate = new Date(item.created_at).toLocaleTimeString([], {
|
|
14
|
+
hour: '2-digit',
|
|
15
|
+
minute: '2-digit',
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
return (
|
|
19
|
+
<View
|
|
20
|
+
key={item.id}
|
|
21
|
+
style={[
|
|
22
|
+
styles.messageItem,
|
|
23
|
+
isDeviceOwner ? styles.rightMessage : styles.leftMessage,
|
|
24
|
+
]}
|
|
25
|
+
>
|
|
26
|
+
<View
|
|
27
|
+
style={[
|
|
28
|
+
styles.messageBubble,
|
|
29
|
+
isDeviceOwner
|
|
30
|
+
? [styles.rightBubble, { backgroundColor: themeColors.primary }]
|
|
31
|
+
: [styles.leftBubble, { backgroundColor: themeColors.border }],
|
|
32
|
+
]}
|
|
33
|
+
>
|
|
34
|
+
<AppText
|
|
35
|
+
style={[
|
|
36
|
+
styles.messageText,
|
|
37
|
+
isDeviceOwner
|
|
38
|
+
? styles.rightMessageText
|
|
39
|
+
: [styles.leftMessageText, { color: themeColors.text }],
|
|
40
|
+
]}
|
|
41
|
+
>
|
|
42
|
+
{item.content}
|
|
43
|
+
</AppText>
|
|
44
|
+
<View style={styles.footer}>
|
|
45
|
+
<AppText
|
|
46
|
+
style={[
|
|
47
|
+
styles.timestamp,
|
|
48
|
+
isDeviceOwner
|
|
49
|
+
? styles.rightTimestamp
|
|
50
|
+
: [styles.leftTimestamp, { color: themeColors.text }],
|
|
51
|
+
]}
|
|
52
|
+
>
|
|
53
|
+
{formattedDate}
|
|
54
|
+
</AppText>
|
|
55
|
+
{!item.approved ? (
|
|
56
|
+
<Image
|
|
57
|
+
source={clockIcon}
|
|
58
|
+
style={[
|
|
59
|
+
styles.clockIcon,
|
|
60
|
+
isDeviceOwner
|
|
61
|
+
? styles.rightClockIcon
|
|
62
|
+
: [styles.leftClockIcon, { tintColor: themeColors.text }],
|
|
63
|
+
]}
|
|
64
|
+
/>
|
|
65
|
+
) : (
|
|
66
|
+
<Image
|
|
67
|
+
source={doubleCheckIcon}
|
|
68
|
+
style={[
|
|
69
|
+
styles.clockIcon,
|
|
70
|
+
isDeviceOwner
|
|
71
|
+
? styles.rightClockIcon
|
|
72
|
+
: [styles.leftClockIcon, { tintColor: themeColors.text }],
|
|
73
|
+
]}
|
|
74
|
+
/>
|
|
75
|
+
)}
|
|
76
|
+
</View>
|
|
77
|
+
</View>
|
|
78
|
+
</View>
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
const styles = StyleSheet.create({
|
|
83
|
+
messageItem: {
|
|
84
|
+
marginVertical: 5,
|
|
85
|
+
maxWidth: '80%',
|
|
86
|
+
minHeight: 60,
|
|
87
|
+
minWidth: 100,
|
|
88
|
+
},
|
|
89
|
+
leftMessage: {
|
|
90
|
+
alignSelf: 'flex-start',
|
|
91
|
+
},
|
|
92
|
+
rightMessage: {
|
|
93
|
+
alignSelf: 'flex-end',
|
|
94
|
+
},
|
|
95
|
+
messageBubble: {
|
|
96
|
+
padding: 12,
|
|
97
|
+
borderRadius: 20,
|
|
98
|
+
},
|
|
99
|
+
leftBubble: {
|
|
100
|
+
borderTopLeftRadius: 4,
|
|
101
|
+
},
|
|
102
|
+
rightBubble: {
|
|
103
|
+
borderTopRightRadius: 4,
|
|
104
|
+
},
|
|
105
|
+
messageText: {
|
|
106
|
+
fontSize: 16,
|
|
107
|
+
},
|
|
108
|
+
leftMessageText: {
|
|
109
|
+
color: '#000000',
|
|
110
|
+
},
|
|
111
|
+
rightMessageText: {
|
|
112
|
+
color: '#FFFFFF',
|
|
113
|
+
},
|
|
114
|
+
footer: {
|
|
115
|
+
flexDirection: 'row',
|
|
116
|
+
justifyContent: 'space-between',
|
|
117
|
+
alignItems: 'center',
|
|
118
|
+
marginTop: 4,
|
|
119
|
+
},
|
|
120
|
+
timestamp: {
|
|
121
|
+
fontSize: 12,
|
|
122
|
+
opacity: 0.7,
|
|
123
|
+
},
|
|
124
|
+
leftTimestamp: {
|
|
125
|
+
color: '#666666',
|
|
126
|
+
},
|
|
127
|
+
rightTimestamp: {
|
|
128
|
+
color: '#FFFFFF',
|
|
129
|
+
},
|
|
130
|
+
clockIcon: {
|
|
131
|
+
width: 12,
|
|
132
|
+
height: 12,
|
|
133
|
+
marginLeft: 4,
|
|
134
|
+
},
|
|
135
|
+
leftClockIcon: {
|
|
136
|
+
tintColor: '#666666',
|
|
137
|
+
},
|
|
138
|
+
rightClockIcon: {
|
|
139
|
+
tintColor: '#FFFFFF',
|
|
140
|
+
},
|
|
141
|
+
});
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import type { LocalizationKeys } from '../types/LocalizationKeys';
|
|
2
|
+
import type { LanguageCode } from '../types/Language';
|
|
3
|
+
|
|
4
|
+
export const LocalizationList: Record<LanguageCode, LocalizationKeys> = {
|
|
5
|
+
en: {
|
|
6
|
+
'customer.form.title': 'Customer Information',
|
|
7
|
+
'customer.form.email': 'Email',
|
|
8
|
+
'customer.form.phone': 'Phone',
|
|
9
|
+
'customer.form.country': 'Country',
|
|
10
|
+
'customer.form.submit': 'Submit',
|
|
11
|
+
'customer.form.error': 'Please fill in all required fields',
|
|
12
|
+
'customer.form.instructions':
|
|
13
|
+
'Complete the form below to receive personalized service',
|
|
14
|
+
'customer.form.error.country': 'Country is required',
|
|
15
|
+
'customer.form.error.email': 'Valid email is required',
|
|
16
|
+
'customer.form.error.phone': 'Phone is required',
|
|
17
|
+
'customer.form.placeholder.name': 'Enter your name',
|
|
18
|
+
'customer.form.placeholder.country': 'Enter your country',
|
|
19
|
+
'customer.form.placeholder.email': 'Enter your email',
|
|
20
|
+
'customer.form.placeholder.phone': 'Enter your phone number',
|
|
21
|
+
'chat.messageInput.placeholder': 'Type your message...',
|
|
22
|
+
'app.initialization.required': 'Please initialize first',
|
|
23
|
+
'chat.load.error': 'Failed to load messages. Tap to retry',
|
|
24
|
+
'chat.init.error': 'Failed to initialize chat. Tap to retry',
|
|
25
|
+
'chat.empty': 'No messages yet',
|
|
26
|
+
},
|
|
27
|
+
tr: {
|
|
28
|
+
'customer.form.title': 'Müşteri Bilgileri',
|
|
29
|
+
'customer.form.email': 'E-posta',
|
|
30
|
+
'customer.form.phone': 'Telefon',
|
|
31
|
+
'customer.form.country': 'Ülke',
|
|
32
|
+
'customer.form.submit': 'Gönder',
|
|
33
|
+
'customer.form.error': 'Lütfen tüm zorunlu alanları doldurun',
|
|
34
|
+
'customer.form.instructions':
|
|
35
|
+
'Kişiselleştirilmiş hizmet almak için aşağıdaki formu doldurun',
|
|
36
|
+
'customer.form.error.country': 'Ülke alanı zorunludur',
|
|
37
|
+
'customer.form.error.email': 'Geçerli bir e-posta adresi gerekli',
|
|
38
|
+
'customer.form.error.phone': 'Telefon alanı zorunludur',
|
|
39
|
+
'customer.form.placeholder.name': 'Adınızı girin',
|
|
40
|
+
'customer.form.placeholder.country': 'Ülkenizi girin',
|
|
41
|
+
'customer.form.placeholder.email': 'E-posta adresinizi girin',
|
|
42
|
+
'customer.form.placeholder.phone': 'Telefon numaranızı girin',
|
|
43
|
+
'chat.messageInput.placeholder': 'Mesajınızı yazın...',
|
|
44
|
+
'app.initialization.required': 'Lütfen önce başlatın',
|
|
45
|
+
'chat.load.error': 'Mesajlar yüklenemedi. Tekrar denemek için dokunun',
|
|
46
|
+
'chat.init.error': 'Sohbet başlatılamadı. Tekrar denemek için dokunun',
|
|
47
|
+
'chat.empty': 'Henüz mesaj yok',
|
|
48
|
+
},
|
|
49
|
+
es: {
|
|
50
|
+
'customer.form.title': 'Información del Cliente',
|
|
51
|
+
'customer.form.email': 'Correo Electrónico',
|
|
52
|
+
'customer.form.phone': 'Teléfono',
|
|
53
|
+
'customer.form.country': 'País',
|
|
54
|
+
'customer.form.submit': 'Enviar',
|
|
55
|
+
'customer.form.error': 'Por favor complete todos los campos requeridos',
|
|
56
|
+
'customer.form.instructions':
|
|
57
|
+
'Complete el formulario a continuación para recibir un servicio personalizado',
|
|
58
|
+
'customer.form.error.country': 'El país es requerido',
|
|
59
|
+
'customer.form.error.email': 'Se requiere un correo electrónico válido',
|
|
60
|
+
'customer.form.error.phone': 'El teléfono es requerido',
|
|
61
|
+
'customer.form.placeholder.name': 'Ingrese su nombre',
|
|
62
|
+
'customer.form.placeholder.country': 'Ingrese su país',
|
|
63
|
+
'customer.form.placeholder.email': 'Ingrese su correo electrónico',
|
|
64
|
+
'customer.form.placeholder.phone': 'Ingrese su número de teléfono',
|
|
65
|
+
'chat.messageInput.placeholder': 'Escribe tu mensaje...',
|
|
66
|
+
'app.initialization.required': 'Por favor inicialice primero',
|
|
67
|
+
'chat.load.error': 'Error al cargar mensajes. Toque para reintentar',
|
|
68
|
+
'chat.init.error': 'Error al inicializar el chat. Toque para reintentar',
|
|
69
|
+
'chat.empty': 'Aún no hay mensajes',
|
|
70
|
+
},
|
|
71
|
+
fr: {
|
|
72
|
+
'customer.form.title': 'Informations Client',
|
|
73
|
+
'customer.form.email': 'Email',
|
|
74
|
+
'customer.form.phone': 'Téléphone',
|
|
75
|
+
'customer.form.country': 'Pays',
|
|
76
|
+
'customer.form.submit': 'Envoyer',
|
|
77
|
+
'customer.form.error': 'Veuillez remplir tous les champs obligatoires',
|
|
78
|
+
'customer.form.instructions':
|
|
79
|
+
'Complétez le formulaire ci-dessous pour recevoir un service personnalisé',
|
|
80
|
+
'customer.form.error.country': 'Le pays est requis',
|
|
81
|
+
'customer.form.error.email': 'Un email valide est requis',
|
|
82
|
+
'customer.form.error.phone': 'Le téléphone est requis',
|
|
83
|
+
'customer.form.placeholder.name': 'Entrez votre nom',
|
|
84
|
+
'customer.form.placeholder.country': 'Entrez votre pays',
|
|
85
|
+
'customer.form.placeholder.email': 'Entrez votre email',
|
|
86
|
+
'customer.form.placeholder.phone': 'Entrez votre numéro de téléphone',
|
|
87
|
+
'chat.messageInput.placeholder': 'Tapez votre message...',
|
|
88
|
+
'app.initialization.required': "Veuillez initialiser d'abord",
|
|
89
|
+
'chat.load.error':
|
|
90
|
+
'Échec du chargement des messages. Appuyez pour réessayer',
|
|
91
|
+
'chat.init.error':
|
|
92
|
+
"Échec de l'initialisation du chat. Appuyez pour réessayer",
|
|
93
|
+
'chat.empty': 'Aucun message pour le moment',
|
|
94
|
+
},
|
|
95
|
+
de: {
|
|
96
|
+
'customer.form.title': 'Kundeninformationen',
|
|
97
|
+
'customer.form.email': 'E-Mail',
|
|
98
|
+
'customer.form.phone': 'Telefon',
|
|
99
|
+
'customer.form.country': 'Land',
|
|
100
|
+
'customer.form.submit': 'Absenden',
|
|
101
|
+
'customer.form.error': 'Bitte füllen Sie alle erforderlichen Felder aus',
|
|
102
|
+
'customer.form.instructions':
|
|
103
|
+
'Füllen Sie das folgende Formular aus, um einen personalisierten Service zu erhalten',
|
|
104
|
+
'customer.form.error.country': 'Land ist erforderlich',
|
|
105
|
+
'customer.form.error.email': 'Eine gültige E-Mail-Adresse ist erforderlich',
|
|
106
|
+
'customer.form.error.phone': 'Telefon ist erforderlich',
|
|
107
|
+
'customer.form.placeholder.name': 'Geben Sie Ihren Namen ein',
|
|
108
|
+
'customer.form.placeholder.country': 'Geben Sie Ihr Land ein',
|
|
109
|
+
'customer.form.placeholder.email': 'Geben Sie Ihre E-Mail-Adresse ein',
|
|
110
|
+
'customer.form.placeholder.phone': 'Geben Sie Ihre Telefonnummer ein',
|
|
111
|
+
'chat.messageInput.placeholder': 'Geben Sie Ihre Nachricht ein...',
|
|
112
|
+
'app.initialization.required': 'Bitte initialisieren Sie zuerst',
|
|
113
|
+
'chat.load.error':
|
|
114
|
+
'Nachrichten konnten nicht geladen werden. Tippen Sie zum Wiederholen',
|
|
115
|
+
'chat.init.error':
|
|
116
|
+
'Chat konnte nicht initialisiert werden. Tippen Sie zum Wiederholen',
|
|
117
|
+
'chat.empty': 'Noch keine Nachrichten',
|
|
118
|
+
},
|
|
119
|
+
it: {
|
|
120
|
+
'customer.form.title': 'Informazioni Cliente',
|
|
121
|
+
'customer.form.email': 'Email',
|
|
122
|
+
'customer.form.phone': 'Telefono',
|
|
123
|
+
'customer.form.country': 'Paese',
|
|
124
|
+
'customer.form.submit': 'Invia',
|
|
125
|
+
'customer.form.error': 'Si prega di compilare tutti i campi obbligatori',
|
|
126
|
+
'customer.form.instructions':
|
|
127
|
+
'Completa il modulo sottostante per ricevere un servizio personalizzato',
|
|
128
|
+
'customer.form.error.country': 'Il paese è obbligatorio',
|
|
129
|
+
'customer.form.error.email': "È richiesta un'email valida",
|
|
130
|
+
'customer.form.error.phone': 'Il telefono è obbligatorio',
|
|
131
|
+
'customer.form.placeholder.name': 'Inserisci il tuo nome',
|
|
132
|
+
'customer.form.placeholder.country': 'Inserisci il tuo paese',
|
|
133
|
+
'customer.form.placeholder.email': 'Inserisci la tua email',
|
|
134
|
+
'customer.form.placeholder.phone': 'Inserisci il tuo numero di telefono',
|
|
135
|
+
'chat.messageInput.placeholder': 'Scrivi il tuo messaggio...',
|
|
136
|
+
'app.initialization.required': 'Si prega di inizializzare prima',
|
|
137
|
+
'chat.load.error': 'Impossibile caricare i messaggi. Tocca per riprovare',
|
|
138
|
+
'chat.init.error': 'Impossibile inizializzare la chat. Tocca per riprovare',
|
|
139
|
+
'chat.empty': 'Ancora nessun messaggio',
|
|
140
|
+
},
|
|
141
|
+
pt: {
|
|
142
|
+
'customer.form.title': 'Informações do Cliente',
|
|
143
|
+
'customer.form.email': 'Email',
|
|
144
|
+
'customer.form.phone': 'Telefone',
|
|
145
|
+
'customer.form.country': 'País',
|
|
146
|
+
'customer.form.submit': 'Enviar',
|
|
147
|
+
'customer.form.error': 'Por favor, preencha todos os campos obrigatórios',
|
|
148
|
+
'customer.form.instructions':
|
|
149
|
+
'Complete o formulário abaixo para receber um serviço personalizado',
|
|
150
|
+
'customer.form.error.country': 'O país é obrigatório',
|
|
151
|
+
'customer.form.error.email': 'Um email válido é obrigatório',
|
|
152
|
+
'customer.form.error.phone': 'O telefone é obrigatório',
|
|
153
|
+
'customer.form.placeholder.name': 'Digite seu nome',
|
|
154
|
+
'customer.form.placeholder.country': 'Digite seu país',
|
|
155
|
+
'customer.form.placeholder.email': 'Digite seu email',
|
|
156
|
+
'customer.form.placeholder.phone': 'Digite seu número de telefone',
|
|
157
|
+
'chat.messageInput.placeholder': 'Digite sua mensagem...',
|
|
158
|
+
'app.initialization.required': 'Por favor, inicialize primeiro',
|
|
159
|
+
'chat.load.error':
|
|
160
|
+
'Falha ao carregar mensagens. Toque para tentar novamente',
|
|
161
|
+
'chat.init.error':
|
|
162
|
+
'Falha ao inicializar o chat. Toque para tentar novamente',
|
|
163
|
+
'chat.empty': 'Ainda não há mensagens',
|
|
164
|
+
},
|
|
165
|
+
ru: {
|
|
166
|
+
'customer.form.title': 'Информация о клиенте',
|
|
167
|
+
'customer.form.email': 'Электронная почта',
|
|
168
|
+
'customer.form.phone': 'Телефон',
|
|
169
|
+
'customer.form.country': 'Страна',
|
|
170
|
+
'customer.form.submit': 'Отправить',
|
|
171
|
+
'customer.form.error': 'Пожалуйста, заполните все обязательные поля',
|
|
172
|
+
'customer.form.instructions':
|
|
173
|
+
'Заполните форму ниже, чтобы получить персонализированное обслуживание',
|
|
174
|
+
'customer.form.error.country': 'Страна обязательна',
|
|
175
|
+
'customer.form.error.email': 'Требуется действительный email',
|
|
176
|
+
'customer.form.error.phone': 'Телефон обязателен',
|
|
177
|
+
'customer.form.placeholder.name': 'Введите ваше имя',
|
|
178
|
+
'customer.form.placeholder.country': 'Введите вашу страну',
|
|
179
|
+
'customer.form.placeholder.email': 'Введите ваш email',
|
|
180
|
+
'customer.form.placeholder.phone': 'Введите ваш номер телефона',
|
|
181
|
+
'chat.messageInput.placeholder': 'Введите ваше сообщение...',
|
|
182
|
+
'app.initialization.required': 'Пожалуйста, сначала инициализируйте',
|
|
183
|
+
'chat.load.error':
|
|
184
|
+
'Не удалось загрузить сообщения. Нажмите, чтобы повторить попытку',
|
|
185
|
+
'chat.init.error':
|
|
186
|
+
'Не удалось инициализировать чат. Нажмите, чтобы повторить попытку',
|
|
187
|
+
'chat.empty': 'Пока нет сообщений',
|
|
188
|
+
},
|
|
189
|
+
ja: {
|
|
190
|
+
'customer.form.title': '顧客情報',
|
|
191
|
+
'customer.form.email': 'メールアドレス',
|
|
192
|
+
'customer.form.phone': '電話番号',
|
|
193
|
+
'customer.form.country': '国',
|
|
194
|
+
'customer.form.submit': '送信',
|
|
195
|
+
'customer.form.error': '必須項目をすべて入力してください',
|
|
196
|
+
'customer.form.instructions':
|
|
197
|
+
'パーソナライズされたサービスを受けるには、以下のフォームに記入してください',
|
|
198
|
+
'customer.form.error.country': '国は必須です',
|
|
199
|
+
'customer.form.error.email': '有効なメールアドレスが必要です',
|
|
200
|
+
'customer.form.error.phone': '電話番号は必須です',
|
|
201
|
+
'customer.form.placeholder.name': 'お名前を入力してください',
|
|
202
|
+
'customer.form.placeholder.country': '国を入力してください',
|
|
203
|
+
'customer.form.placeholder.email': 'メールアドレスを入力してください',
|
|
204
|
+
'customer.form.placeholder.phone': '電話番号を入力してください',
|
|
205
|
+
'chat.messageInput.placeholder': 'メッセージを入力...',
|
|
206
|
+
'app.initialization.required': 'まず初期化してください',
|
|
207
|
+
'chat.load.error': 'メッセージの読み込みに失敗しました。タップして再試行',
|
|
208
|
+
'chat.init.error': 'チャットの初期化に失敗しました。タップして再試行',
|
|
209
|
+
'chat.empty': 'まだメッセージはありません',
|
|
210
|
+
},
|
|
211
|
+
zh: {
|
|
212
|
+
'customer.form.title': '客户信息',
|
|
213
|
+
'customer.form.email': '电子邮件',
|
|
214
|
+
'customer.form.phone': '电话',
|
|
215
|
+
'customer.form.country': '国家',
|
|
216
|
+
'customer.form.submit': '提交',
|
|
217
|
+
'customer.form.error': '请填写所有必填字段',
|
|
218
|
+
'customer.form.instructions': '填写以下表格以获取个性化服务',
|
|
219
|
+
'customer.form.error.country': '国家为必填项',
|
|
220
|
+
'customer.form.error.email': '需要有效的电子邮件',
|
|
221
|
+
'customer.form.error.phone': '电话为必填项',
|
|
222
|
+
'customer.form.placeholder.name': '请输入您的姓名',
|
|
223
|
+
'customer.form.placeholder.country': '请输入您的国家',
|
|
224
|
+
'customer.form.placeholder.email': '请输入您的电子邮件',
|
|
225
|
+
'customer.form.placeholder.phone': '请输入您的电话号码',
|
|
226
|
+
'chat.messageInput.placeholder': '输入您的消息...',
|
|
227
|
+
'app.initialization.required': '请先初始化',
|
|
228
|
+
'chat.load.error': '加载消息失败。点击重试',
|
|
229
|
+
'chat.init.error': '初始化聊天失败。点击重试',
|
|
230
|
+
'chat.empty': '暂无消息',
|
|
231
|
+
},
|
|
232
|
+
} as const;
|