vdb-ai-chat 1.0.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/README.md +153 -0
- package/dist/chat-widget.js +2 -0
- package/dist/chat-widget.js.LICENSE.txt +29 -0
- package/lib/commonjs/api.js +157 -0
- package/lib/commonjs/api.js.map +1 -0
- package/lib/commonjs/components/ChatHeader.js +111 -0
- package/lib/commonjs/components/ChatHeader.js.map +1 -0
- package/lib/commonjs/components/ChatInput.js +144 -0
- package/lib/commonjs/components/ChatInput.js.map +1 -0
- package/lib/commonjs/components/ChatWidget.js +469 -0
- package/lib/commonjs/components/ChatWidget.js.map +1 -0
- package/lib/commonjs/components/MessageBubble.js +122 -0
- package/lib/commonjs/components/MessageBubble.js.map +1 -0
- package/lib/commonjs/components/ProductsList.js +139 -0
- package/lib/commonjs/components/ProductsList.js.map +1 -0
- package/lib/commonjs/components/SuggestionsRow.js +59 -0
- package/lib/commonjs/components/SuggestionsRow.js.map +1 -0
- package/lib/commonjs/components/utils.js +37 -0
- package/lib/commonjs/components/utils.js.map +1 -0
- package/lib/commonjs/index.js +70 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/index.native.js +70 -0
- package/lib/commonjs/index.native.js.map +1 -0
- package/lib/commonjs/index.web.js +30 -0
- package/lib/commonjs/index.web.js.map +1 -0
- package/lib/commonjs/storage.js +136 -0
- package/lib/commonjs/storage.js.map +1 -0
- package/lib/commonjs/theme.js +29 -0
- package/lib/commonjs/theme.js.map +1 -0
- package/lib/commonjs/types.js +2 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/module/api.js +146 -0
- package/lib/module/api.js.map +1 -0
- package/lib/module/components/ChatHeader.js +105 -0
- package/lib/module/components/ChatHeader.js.map +1 -0
- package/lib/module/components/ChatInput.js +136 -0
- package/lib/module/components/ChatInput.js.map +1 -0
- package/lib/module/components/ChatWidget.js +461 -0
- package/lib/module/components/ChatWidget.js.map +1 -0
- package/lib/module/components/MessageBubble.js +116 -0
- package/lib/module/components/MessageBubble.js.map +1 -0
- package/lib/module/components/ProductsList.js +133 -0
- package/lib/module/components/ProductsList.js.map +1 -0
- package/lib/module/components/SuggestionsRow.js +52 -0
- package/lib/module/components/SuggestionsRow.js.map +1 -0
- package/lib/module/components/utils.js +29 -0
- package/lib/module/components/utils.js.map +1 -0
- package/lib/module/index.js +7 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/index.native.js +7 -0
- package/lib/module/index.native.js.map +1 -0
- package/lib/module/index.web.js +23 -0
- package/lib/module/index.web.js.map +1 -0
- package/lib/module/storage.js +129 -0
- package/lib/module/storage.js.map +1 -0
- package/lib/module/theme.js +22 -0
- package/lib/module/theme.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/api.d.ts +10 -0
- package/lib/typescript/api.d.ts.map +1 -0
- package/lib/typescript/components/ChatHeader.d.ts +6 -0
- package/lib/typescript/components/ChatHeader.d.ts.map +1 -0
- package/lib/typescript/components/ChatInput.d.ts +15 -0
- package/lib/typescript/components/ChatInput.d.ts.map +1 -0
- package/lib/typescript/components/ChatWidget.d.ts +4 -0
- package/lib/typescript/components/ChatWidget.d.ts.map +1 -0
- package/lib/typescript/components/MessageBubble.d.ts +13 -0
- package/lib/typescript/components/MessageBubble.d.ts.map +1 -0
- package/lib/typescript/components/ProductsList.d.ts +9 -0
- package/lib/typescript/components/ProductsList.d.ts.map +1 -0
- package/lib/typescript/components/SuggestionsRow.d.ts +8 -0
- package/lib/typescript/components/SuggestionsRow.d.ts.map +1 -0
- package/lib/typescript/components/utils.d.ts +8 -0
- package/lib/typescript/components/utils.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +6 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/index.native.d.ts +6 -0
- package/lib/typescript/index.native.d.ts.map +1 -0
- package/lib/typescript/index.web.d.ts +3 -0
- package/lib/typescript/index.web.d.ts.map +1 -0
- package/lib/typescript/storage.d.ts +28 -0
- package/lib/typescript/storage.d.ts.map +1 -0
- package/lib/typescript/theme.d.ts +4 -0
- package/lib/typescript/theme.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +51 -0
- package/lib/typescript/types.d.ts.map +1 -0
- package/package.json +90 -0
- package/src/api.ts +200 -0
- package/src/components/ChatHeader.tsx +114 -0
- package/src/components/ChatInput.tsx +163 -0
- package/src/components/ChatWidget.tsx +679 -0
- package/src/components/MessageBubble.tsx +181 -0
- package/src/components/ProductsList.tsx +160 -0
- package/src/components/SuggestionsRow.tsx +73 -0
- package/src/components/utils.ts +43 -0
- package/src/index.native.tsx +6 -0
- package/src/index.ts +7 -0
- package/src/index.web.tsx +33 -0
- package/src/storage.ts +142 -0
- package/src/theme.ts +21 -0
- package/src/types.ts +56 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { Storage } from "./storage";
|
|
2
|
+
|
|
3
|
+
// Generic params type reused for downstream APIs (e.g. product search payload)
|
|
4
|
+
|
|
5
|
+
async function buildHeaders() {
|
|
6
|
+
const token = (await Storage.getItem("token")) || "";
|
|
7
|
+
const iid = (await Storage.getItem("persist:appState")) || "{}";
|
|
8
|
+
let installationId = "";
|
|
9
|
+
try {
|
|
10
|
+
const parsed = JSON.parse(iid);
|
|
11
|
+
installationId = parsed?.installationIdentifier ? JSON.parse(parsed.installationIdentifier) : "";
|
|
12
|
+
} catch {
|
|
13
|
+
installationId = "";
|
|
14
|
+
}
|
|
15
|
+
const session = (await Storage.getItem("session_cookie")) || "";
|
|
16
|
+
return {
|
|
17
|
+
"Content-Type": "application/json",
|
|
18
|
+
Accept: "application/json, text/plain, */*",
|
|
19
|
+
Authorization: `Token token=${token},installation_identifier=${installationId}`,
|
|
20
|
+
Cookie: `vdb-server_session=${session}`
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export function normaliseMessages(raw) {
|
|
24
|
+
const messages = Array.isArray(raw) ? raw : raw?.messages;
|
|
25
|
+
if (!Array.isArray(messages)) return [];
|
|
26
|
+
return messages.map((m, index) => ({
|
|
27
|
+
id: String(m.id ?? `${m.role}-${index}-${m.created_at ?? Date.now()}`),
|
|
28
|
+
role: m.role === "user" ? "user" : "assistant",
|
|
29
|
+
text: String(m.content ?? m.text ?? ""),
|
|
30
|
+
createdAt: typeof m.created_at === "string" ? Date.parse(m.created_at) : typeof m.createdAt === "number" ? m.createdAt : Date.now(),
|
|
31
|
+
...(m.role === "assistant" ? {
|
|
32
|
+
agent_response: raw?.agent_response ? raw?.agent_response : undefined
|
|
33
|
+
} : {}),
|
|
34
|
+
// agent_response: m.agent_response,
|
|
35
|
+
suggestions: Array.isArray(m.suggestions) ? m.suggestions : undefined
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
export async function fetchInitialMessages(apiUrl, _params, priceMode) {
|
|
39
|
+
const conversations = await Storage.getJSON("vdbchat_conversations", {});
|
|
40
|
+
const storedId = conversations?.[priceMode]?.conversation_id ?? null;
|
|
41
|
+
if (!priceMode) return;
|
|
42
|
+
const body = {};
|
|
43
|
+
if (storedId) {
|
|
44
|
+
body.conversation_id = Number.isNaN(Number(storedId)) ? storedId : Number(storedId);
|
|
45
|
+
}
|
|
46
|
+
const res = await fetch(apiUrl, {
|
|
47
|
+
method: "POST",
|
|
48
|
+
headers: await buildHeaders(),
|
|
49
|
+
body: Object.keys(body).length ? JSON.stringify(body) : undefined
|
|
50
|
+
});
|
|
51
|
+
if (!res.ok) {
|
|
52
|
+
throw new Error(`POST ${apiUrl} failed with ${res.status}`);
|
|
53
|
+
}
|
|
54
|
+
const data = await res.json();
|
|
55
|
+
|
|
56
|
+
// Persist conversation_id returned by the server for future calls
|
|
57
|
+
if (data && data.conversation_id != null && priceMode) {
|
|
58
|
+
const updatedConversations = conversations || {};
|
|
59
|
+
updatedConversations[priceMode] = {
|
|
60
|
+
conversation_id: data.conversation_id
|
|
61
|
+
};
|
|
62
|
+
await Storage.setJSON("vdbchat_conversations", updatedConversations);
|
|
63
|
+
}
|
|
64
|
+
return data;
|
|
65
|
+
}
|
|
66
|
+
export async function sendUserMessage(apiUrl, userMessage, _params, _history, priceMode) {
|
|
67
|
+
const conversations = await Storage.getJSON("vdbchat_conversations", {});
|
|
68
|
+
const storedId = conversations?.[priceMode]?.conversation_id ?? null;
|
|
69
|
+
if (!priceMode) {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
const body = {
|
|
73
|
+
query: userMessage
|
|
74
|
+
};
|
|
75
|
+
if (storedId) {
|
|
76
|
+
body.conversation_id = Number.isNaN(Number(storedId)) ? storedId : Number(storedId);
|
|
77
|
+
}
|
|
78
|
+
const res = await fetch(apiUrl, {
|
|
79
|
+
method: "POST",
|
|
80
|
+
headers: await buildHeaders(),
|
|
81
|
+
body: JSON.stringify(body)
|
|
82
|
+
});
|
|
83
|
+
if (!res.ok) {
|
|
84
|
+
throw new Error(`POST ${apiUrl} failed with ${res.status}`);
|
|
85
|
+
}
|
|
86
|
+
const data = await res.json();
|
|
87
|
+
if (data && data.conversation_id != null && priceMode) {
|
|
88
|
+
const updatedConversations = conversations || {};
|
|
89
|
+
updatedConversations[priceMode] = {
|
|
90
|
+
conversation_id: data.conversation_id
|
|
91
|
+
};
|
|
92
|
+
await Storage.setJSON("vdbchat_conversations", updatedConversations);
|
|
93
|
+
}
|
|
94
|
+
return data;
|
|
95
|
+
}
|
|
96
|
+
export async function clearChatHistory(apiUrl, priceMode) {
|
|
97
|
+
const conversations = await Storage.getJSON("vdbchat_conversations", {});
|
|
98
|
+
const storedId = conversations?.[priceMode]?.conversation_id ?? null;
|
|
99
|
+
if (!storedId || !priceMode) return;
|
|
100
|
+
const url = new URL(apiUrl);
|
|
101
|
+
url.searchParams.set("conversation_id", storedId);
|
|
102
|
+
const res = await fetch(url.toString(), {
|
|
103
|
+
method: "DELETE",
|
|
104
|
+
headers: await buildHeaders()
|
|
105
|
+
});
|
|
106
|
+
if (!res.ok) {
|
|
107
|
+
throw new Error(`DELETE ${apiUrl} failed with ${res.status}`);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Clear from storage as well
|
|
111
|
+
const updatedConversations = conversations || {};
|
|
112
|
+
delete updatedConversations[priceMode];
|
|
113
|
+
await Storage.setJSON("vdbchat_conversations", updatedConversations);
|
|
114
|
+
}
|
|
115
|
+
export async function getProducts(params) {
|
|
116
|
+
const res = await fetch("https://pdpdemo1.demo.customvirtual.app/v3/vdb/search_diamonds", {
|
|
117
|
+
method: "POST",
|
|
118
|
+
headers: await buildHeaders(),
|
|
119
|
+
body: JSON.stringify({
|
|
120
|
+
vdb: {
|
|
121
|
+
...params,
|
|
122
|
+
page_size: 5,
|
|
123
|
+
price_mode: 1,
|
|
124
|
+
vdb_setting: "true"
|
|
125
|
+
}
|
|
126
|
+
})
|
|
127
|
+
});
|
|
128
|
+
if (!res.ok) {
|
|
129
|
+
throw new Error(`POST failed with ${res.status}`);
|
|
130
|
+
}
|
|
131
|
+
const data = await res.json();
|
|
132
|
+
return data;
|
|
133
|
+
}
|
|
134
|
+
export const handleFeedbackActionApi = async (action, conversation_id, message_id) => {
|
|
135
|
+
const feedbackUrl = `https://pdpdemo1.demo.customvirtual.app/v3/agent_conversations/${conversation_id}/conversation_messages/${message_id}/reaction`;
|
|
136
|
+
const payload = {
|
|
137
|
+
reaction: action
|
|
138
|
+
};
|
|
139
|
+
const response = await fetch(feedbackUrl, {
|
|
140
|
+
method: "POST",
|
|
141
|
+
headers: await buildHeaders(),
|
|
142
|
+
body: JSON.stringify(payload)
|
|
143
|
+
});
|
|
144
|
+
return response;
|
|
145
|
+
};
|
|
146
|
+
//# sourceMappingURL=api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Storage","buildHeaders","token","getItem","iid","installationId","parsed","JSON","parse","installationIdentifier","session","Accept","Authorization","Cookie","normaliseMessages","raw","messages","Array","isArray","map","m","index","id","String","role","created_at","Date","now","text","content","createdAt","agent_response","undefined","suggestions","fetchInitialMessages","apiUrl","_params","priceMode","conversations","getJSON","storedId","conversation_id","body","Number","isNaN","res","fetch","method","headers","Object","keys","length","stringify","ok","Error","status","data","json","updatedConversations","setJSON","sendUserMessage","userMessage","_history","query","clearChatHistory","url","URL","searchParams","set","toString","getProducts","params","vdb","page_size","price_mode","vdb_setting","handleFeedbackActionApi","action","message_id","feedbackUrl","payload","reaction","response"],"sourceRoot":"../../src","sources":["api.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { View, Text, StyleSheet, TouchableOpacity, Platform, Image } from "react-native";
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
// Use expo-image on native if available, fallback to RN Image
|
|
5
|
+
let ImageComponent = Image;
|
|
6
|
+
if (Platform.OS !== "web") {
|
|
7
|
+
try {
|
|
8
|
+
const ExpoImage = require("expo-image").Image;
|
|
9
|
+
if (ExpoImage) ImageComponent = ExpoImage;
|
|
10
|
+
} catch {
|
|
11
|
+
// expo-image not installed, use React Native Image
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
const CloseIcon = () => {
|
|
15
|
+
return /*#__PURE__*/React.createElement(ImageComponent, {
|
|
16
|
+
source: {
|
|
17
|
+
uri: "https://cdn.jsdelivr.net/npm/feather-icons/dist/icons/x.svg"
|
|
18
|
+
},
|
|
19
|
+
resizeMode: "contain",
|
|
20
|
+
style: {
|
|
21
|
+
width: 20,
|
|
22
|
+
height: 20
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
};
|
|
26
|
+
const ChatHeader = ({
|
|
27
|
+
onClose,
|
|
28
|
+
onClearChat
|
|
29
|
+
}) => {
|
|
30
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
31
|
+
style: styles.container
|
|
32
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
33
|
+
style: styles.logoContainer
|
|
34
|
+
}, /*#__PURE__*/React.createElement(ImageComponent, {
|
|
35
|
+
source: {
|
|
36
|
+
uri: "https://getvdb.com/mail_images/web_app_favicon.ico"
|
|
37
|
+
},
|
|
38
|
+
resizeMode: "contain",
|
|
39
|
+
style: {
|
|
40
|
+
width: 30,
|
|
41
|
+
height: 30,
|
|
42
|
+
marginRight: 10
|
|
43
|
+
}
|
|
44
|
+
}), /*#__PURE__*/React.createElement(Text, {
|
|
45
|
+
style: styles.title
|
|
46
|
+
}, "AI Search")), /*#__PURE__*/React.createElement(View, {
|
|
47
|
+
style: styles.buttonContainer
|
|
48
|
+
}, /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
49
|
+
onPress: () => onClearChat?.()
|
|
50
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
51
|
+
style: styles.clearChatText
|
|
52
|
+
}, "Clear Chat")), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
53
|
+
style: styles.closeButton,
|
|
54
|
+
onPress: () => onClose?.()
|
|
55
|
+
}, /*#__PURE__*/React.createElement(CloseIcon, null))));
|
|
56
|
+
};
|
|
57
|
+
const styles = StyleSheet.create({
|
|
58
|
+
container: {
|
|
59
|
+
padding: 16,
|
|
60
|
+
backgroundColor: "#37363F",
|
|
61
|
+
justifyContent: "space-between",
|
|
62
|
+
flexDirection: "row",
|
|
63
|
+
alignItems: "center"
|
|
64
|
+
},
|
|
65
|
+
logoContainer: {
|
|
66
|
+
flexDirection: "row",
|
|
67
|
+
alignItems: "center"
|
|
68
|
+
},
|
|
69
|
+
title: {
|
|
70
|
+
fontSize: 17,
|
|
71
|
+
fontWeight: "500",
|
|
72
|
+
color: "#FFF"
|
|
73
|
+
},
|
|
74
|
+
closeButton: {
|
|
75
|
+
backgroundColor: "#FFF",
|
|
76
|
+
width: 24,
|
|
77
|
+
height: 24,
|
|
78
|
+
borderRadius: 12,
|
|
79
|
+
justifyContent: "center",
|
|
80
|
+
alignItems: "center"
|
|
81
|
+
},
|
|
82
|
+
closeIconText: {
|
|
83
|
+
fontSize: 14,
|
|
84
|
+
fontWeight: "600",
|
|
85
|
+
color: "#37363F",
|
|
86
|
+
textAlign: "center",
|
|
87
|
+
lineHeight: 16
|
|
88
|
+
},
|
|
89
|
+
closeButtonText: {
|
|
90
|
+
color: "#FFF"
|
|
91
|
+
},
|
|
92
|
+
clearChatText: {
|
|
93
|
+
color: "#FFF",
|
|
94
|
+
fontSize: 14,
|
|
95
|
+
fontWeight: "500",
|
|
96
|
+
textDecorationLine: "none"
|
|
97
|
+
},
|
|
98
|
+
buttonContainer: {
|
|
99
|
+
flexDirection: "row",
|
|
100
|
+
alignItems: "center",
|
|
101
|
+
gap: 16
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
export default ChatHeader;
|
|
105
|
+
//# sourceMappingURL=ChatHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["View","Text","StyleSheet","TouchableOpacity","Platform","Image","React","ImageComponent","OS","ExpoImage","require","CloseIcon","createElement","source","uri","resizeMode","style","width","height","ChatHeader","onClose","onClearChat","styles","container","logoContainer","marginRight","title","buttonContainer","onPress","clearChatText","closeButton","create","padding","backgroundColor","justifyContent","flexDirection","alignItems","fontSize","fontWeight","color","borderRadius","closeIconText","textAlign","lineHeight","closeButtonText","textDecorationLine","gap"],"sourceRoot":"../../../src","sources":["components/ChatHeader.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { View, TextInput, TouchableOpacity, StyleSheet, Platform, Image } from "react-native";
|
|
3
|
+
// Use expo-image on native if available, fallback to RN Image
|
|
4
|
+
let ImageComponent = Image;
|
|
5
|
+
if (Platform.OS !== "web") {
|
|
6
|
+
try {
|
|
7
|
+
const ExpoImage = require("expo-image").Image;
|
|
8
|
+
if (ExpoImage) ImageComponent = ExpoImage;
|
|
9
|
+
} catch {
|
|
10
|
+
// expo-image not installed, use React Native Image
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
const SendIcon = ({
|
|
14
|
+
disabled,
|
|
15
|
+
isEmpty
|
|
16
|
+
}) => {
|
|
17
|
+
const isInactive = disabled || isEmpty;
|
|
18
|
+
return /*#__PURE__*/React.createElement(ImageComponent, {
|
|
19
|
+
source: {
|
|
20
|
+
uri: "https://cdn.vdbapp.com/ai/chat-widget/assets/img/up.svg"
|
|
21
|
+
},
|
|
22
|
+
resizeMode: "contain",
|
|
23
|
+
style: {
|
|
24
|
+
...styles.buttonIcon,
|
|
25
|
+
tintColor: isInactive ? "#AAA" : "#FFF"
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
export const ChatInput = ({
|
|
30
|
+
value,
|
|
31
|
+
onChangeText,
|
|
32
|
+
onSend,
|
|
33
|
+
disabled,
|
|
34
|
+
placeholder,
|
|
35
|
+
theme,
|
|
36
|
+
inputRef
|
|
37
|
+
}) => {
|
|
38
|
+
const isInactive = disabled || value.trim() === "";
|
|
39
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
40
|
+
style: [styles.container, Platform.OS === "web" ? styles.webShadow : styles.nativeShadow]
|
|
41
|
+
}, /*#__PURE__*/React.createElement(TextInput, {
|
|
42
|
+
ref: inputRef
|
|
43
|
+
// @ts-ignore - supported on web via react-native-web
|
|
44
|
+
,
|
|
45
|
+
id: "chat-input",
|
|
46
|
+
style: [styles.input, styles.inputWeb],
|
|
47
|
+
placeholder: placeholder || "What are you looking for?",
|
|
48
|
+
placeholderTextColor: "#999",
|
|
49
|
+
value: value,
|
|
50
|
+
onChangeText: onChangeText,
|
|
51
|
+
onSubmitEditing: onSend,
|
|
52
|
+
editable: !disabled,
|
|
53
|
+
autoFocus: true
|
|
54
|
+
}), /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
55
|
+
style: {
|
|
56
|
+
...styles.button,
|
|
57
|
+
backgroundColor: isInactive ? "#EDEDF2" : "#C000FF"
|
|
58
|
+
},
|
|
59
|
+
onPress: onSend,
|
|
60
|
+
disabled: disabled
|
|
61
|
+
}, /*#__PURE__*/React.createElement(SendIcon, {
|
|
62
|
+
disabled: disabled,
|
|
63
|
+
isEmpty: value.trim() === ""
|
|
64
|
+
})));
|
|
65
|
+
};
|
|
66
|
+
const styles = StyleSheet.create({
|
|
67
|
+
container: {
|
|
68
|
+
flexDirection: "row",
|
|
69
|
+
height: 48,
|
|
70
|
+
paddingHorizontal: 16,
|
|
71
|
+
paddingVertical: 0,
|
|
72
|
+
justifyContent: "space-between",
|
|
73
|
+
alignItems: "center",
|
|
74
|
+
alignSelf: "stretch",
|
|
75
|
+
borderRadius: 56,
|
|
76
|
+
backgroundColor: "#FFF",
|
|
77
|
+
margin: 8
|
|
78
|
+
},
|
|
79
|
+
webShadow: {
|
|
80
|
+
...(Platform.OS === "web" ? {
|
|
81
|
+
boxShadow: "2px 8px 24px -6px rgba(55, 54, 64, 0.26)"
|
|
82
|
+
} : {})
|
|
83
|
+
},
|
|
84
|
+
nativeShadow: {
|
|
85
|
+
shadowColor: "#373640",
|
|
86
|
+
shadowOffset: {
|
|
87
|
+
width: 2,
|
|
88
|
+
height: 8
|
|
89
|
+
},
|
|
90
|
+
shadowOpacity: 0.26,
|
|
91
|
+
shadowRadius: 12,
|
|
92
|
+
elevation: 3
|
|
93
|
+
},
|
|
94
|
+
input: {
|
|
95
|
+
flex: 1,
|
|
96
|
+
color: "#4F4E57",
|
|
97
|
+
fontFamily: "Roboto",
|
|
98
|
+
fontSize: 14,
|
|
99
|
+
fontStyle: "normal",
|
|
100
|
+
fontWeight: "400",
|
|
101
|
+
lineHeight: 20,
|
|
102
|
+
minHeight: 20,
|
|
103
|
+
maxHeight: 120,
|
|
104
|
+
paddingHorizontal: 8,
|
|
105
|
+
paddingVertical: 0,
|
|
106
|
+
backgroundColor: "transparent",
|
|
107
|
+
borderWidth: 0
|
|
108
|
+
},
|
|
109
|
+
inputWeb: {
|
|
110
|
+
...(Platform.OS === "web" ? {
|
|
111
|
+
outlineStyle: "none",
|
|
112
|
+
outlineWidth: 0,
|
|
113
|
+
boxShadow: "none"
|
|
114
|
+
} : {})
|
|
115
|
+
},
|
|
116
|
+
button: {
|
|
117
|
+
marginLeft: 8,
|
|
118
|
+
padding: 4,
|
|
119
|
+
justifyContent: "center",
|
|
120
|
+
alignItems: "center",
|
|
121
|
+
height: 40,
|
|
122
|
+
aspectRatio: 1,
|
|
123
|
+
borderRadius: 40,
|
|
124
|
+
backgroundColor: "#C000FF"
|
|
125
|
+
},
|
|
126
|
+
buttonIcon: {
|
|
127
|
+
height: 16,
|
|
128
|
+
width: 16
|
|
129
|
+
},
|
|
130
|
+
sendIconText: {
|
|
131
|
+
fontSize: 18,
|
|
132
|
+
fontWeight: "700",
|
|
133
|
+
textAlign: "center"
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
//# sourceMappingURL=ChatInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","View","TextInput","TouchableOpacity","StyleSheet","Platform","Image","ImageComponent","OS","ExpoImage","require","SendIcon","disabled","isEmpty","isInactive","createElement","source","uri","resizeMode","style","styles","buttonIcon","tintColor","ChatInput","value","onChangeText","onSend","placeholder","theme","inputRef","trim","container","webShadow","nativeShadow","ref","id","input","inputWeb","placeholderTextColor","onSubmitEditing","editable","autoFocus","button","backgroundColor","onPress","create","flexDirection","height","paddingHorizontal","paddingVertical","justifyContent","alignItems","alignSelf","borderRadius","margin","boxShadow","shadowColor","shadowOffset","width","shadowOpacity","shadowRadius","elevation","flex","color","fontFamily","fontSize","fontStyle","fontWeight","lineHeight","minHeight","maxHeight","borderWidth","outlineStyle","outlineWidth","marginLeft","padding","aspectRatio","sendIconText","textAlign"],"sourceRoot":"../../../src","sources":["components/ChatInput.tsx"],"mappings":"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","ignoreList":[]}
|