turbodesk-livechat-react-native 0.1.0-alpha.32 → 0.1.0-alpha.34

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationScreen.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ConversationScreen.tsx"],"names":[],"mappings":"AA0BA,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qBAAqB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1D,CAAC;AA+FF,wBAAgB,kBAAkB,CAAC,EACjC,cAAc,EACd,MAAM,EACN,OAAO,EACP,qBAAqB,GACtB,EAAE,uBAAuB,2CAwOzB"}
1
+ {"version":3,"file":"ConversationScreen.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ConversationScreen.tsx"],"names":[],"mappings":"AA4BA,MAAM,MAAM,uBAAuB,GAAG;IACpC,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,qBAAqB,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1D,CAAC;AA+FF,wBAAgB,kBAAkB,CAAC,EACjC,cAAc,EACd,MAAM,EACN,OAAO,EACP,qBAAqB,GACtB,EAAE,uBAAuB,2CAiPzB"}
@@ -4,7 +4,6 @@ exports.ConversationScreen = ConversationScreen;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const react_native_1 = require("react-native");
7
- const react_native_keyboard_controller_1 = require("react-native-keyboard-controller");
8
7
  const LiveChatContext_1 = require("../../provider/LiveChatContext");
9
8
  const conversation_api_1 = require("../../api/conversation-api");
10
9
  const use_messages_1 = require("../../hooks/use-messages");
@@ -173,22 +172,14 @@ function ConversationScreen({ conversationId, onBack, onClose, onConversationCre
173
172
  renderListRef.current = renderList;
174
173
  (0, react_1.useEffect)(() => { if (conversationId && conversationId !== "new")
175
174
  markAsRead(); }, [conversationId, markAsRead]);
176
- // Set synchronously via ref so FCM suppression works before useEffect fires
177
- const setActiveConvRef = (0, react_1.useRef)(setActiveConversationId);
178
- setActiveConvRef.current = setActiveConversationId;
179
- const activeConvSetRef = (0, react_1.useRef)(null);
180
- if (conversationId && conversationId !== "new" && activeConvSetRef.current !== conversationId) {
181
- activeConvSetRef.current = conversationId;
182
- setActiveConversationId(conversationId);
183
- }
184
- (0, react_1.useEffect)(() => {
185
- if (!conversationId || conversationId === "new")
175
+ (0, react_1.useLayoutEffect)(() => {
176
+ if (!conversationId || conversationId === "new") {
177
+ setActiveConversationId(null);
186
178
  return;
187
- return () => {
188
- activeConvSetRef.current = null;
189
- setActiveConvRef.current(null);
190
- };
191
- }, [conversationId]);
179
+ }
180
+ setActiveConversationId(conversationId);
181
+ return () => setActiveConversationId(null);
182
+ }, [conversationId, setActiveConversationId]);
192
183
  (0, react_1.useEffect)(() => {
193
184
  if (renderList.length > 0) {
194
185
  setTimeout(() => { var _a; return (_a = flatListRef.current) === null || _a === void 0 ? void 0 : _a.scrollToEnd({ animated: true }); }, 100);
@@ -233,10 +224,22 @@ function ConversationScreen({ conversationId, onBack, onClose, onConversationCre
233
224
  }
234
225
  }, onShowListPicker: (sections, onSelect) => setListPickerState({ sections, onSelect }) }));
235
226
  }, [t, widgetName, handleSend]);
236
- return ((0, jsx_runtime_1.jsxs)(react_native_keyboard_controller_1.KeyboardAvoidingView, { style: [styles.flex, { backgroundColor: t.colors.background }], behavior: "padding", children: [(0, jsx_runtime_1.jsx)(ConversationHeader_1.ConversationHeader, { conversation: isNewConversation ? null : conversation, isLoading: !isNewConversation && conversation === null, onBack: onBack, onClose: onClose }), loadingOlder && ((0, jsx_runtime_1.jsx)(react_native_1.ActivityIndicator, { color: t.colors.brand, style: { marginTop: 8 } })), (0, jsx_runtime_1.jsx)(react_native_1.FlatList, { ref: flatListRef, data: renderList, keyExtractor: (item, i) => { var _a; return (_a = item === null || item === void 0 ? void 0 : item._id) !== null && _a !== void 0 ? _a : String(i); }, renderItem: renderItem, style: styles.flex, contentContainerStyle: { paddingVertical: 8 }, onEndReached: hasOlder ? loadOlder : undefined, onEndReachedThreshold: 0.2, maintainVisibleContentPosition: { minIndexForVisible: 0 }, onContentSizeChange: () => { var _a; return (_a = flatListRef.current) === null || _a === void 0 ? void 0 : _a.scrollToEnd({ animated: true }); }, ListHeaderComponent: loading && messages.length === 0 ? ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.center, children: (0, jsx_runtime_1.jsx)(react_native_1.ActivityIndicator, { color: t.colors.brand, size: "large", style: { marginVertical: 24 } }) })) : null, ListEmptyComponent: !loading ? ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [styles.flex, styles.center], children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: { color: t.colors.textMuted, fontSize: t.fontSizes.md }, children: "Start the conversation" }) })) : null }), (0, jsx_runtime_1.jsx)(MessageComposer_1.MessageComposer, { onSend: handleSend, disabled: isResolved || sending, placeholder: isResolved ? "This conversation is resolved" : "Message…" }), listPickerState && ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.listPicker, { backgroundColor: t.colors.surface }], children: [(0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.listPickerHeader, { borderBottomColor: t.colors.border }], children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.listPickerTitle, { color: t.colors.text }], children: "Select an option" }), (0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { onPress: () => setListPickerState(null), children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: { color: t.colors.textMuted, fontSize: 20 }, children: "\u00D7" }) })] }), (0, jsx_runtime_1.jsx)(react_native_1.FlatList, { data: listPickerState.sections, keyExtractor: (_, i) => String(i), renderItem: ({ item: section }) => {
227
+ // Manual keyboard offset works when the panel is inside React Navigation screens
228
+ // or modals where KeyboardAvoidingView / keyboard-controller often fail on Android.
229
+ const [keyboardHeight, setKeyboardHeight] = (0, react_1.useState)(0);
230
+ (0, react_1.useEffect)(() => {
231
+ const showEvent = react_native_1.Platform.OS === "ios" ? "keyboardWillShow" : "keyboardDidShow";
232
+ const hideEvent = react_native_1.Platform.OS === "ios" ? "keyboardWillHide" : "keyboardDidHide";
233
+ const show = react_native_1.Keyboard.addListener(showEvent, (e) => {
234
+ setKeyboardHeight(e.endCoordinates.height);
235
+ });
236
+ const hide = react_native_1.Keyboard.addListener(hideEvent, () => setKeyboardHeight(0));
237
+ return () => { show.remove(); hide.remove(); };
238
+ }, []);
239
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.flex, { backgroundColor: t.colors.background, paddingBottom: keyboardHeight }], children: [(0, jsx_runtime_1.jsx)(ConversationHeader_1.ConversationHeader, { conversation: isNewConversation ? null : conversation, isLoading: !isNewConversation && conversation === null, onBack: onBack, onClose: onClose }), loadingOlder && ((0, jsx_runtime_1.jsx)(react_native_1.ActivityIndicator, { color: t.colors.brand, style: { marginTop: 8 } })), (0, jsx_runtime_1.jsx)(react_native_1.FlatList, { ref: flatListRef, data: renderList, keyExtractor: (item, i) => { var _a; return (_a = item === null || item === void 0 ? void 0 : item._id) !== null && _a !== void 0 ? _a : String(i); }, renderItem: renderItem, style: styles.flex, contentContainerStyle: { paddingVertical: 8 }, onEndReached: hasOlder ? loadOlder : undefined, onEndReachedThreshold: 0.2, maintainVisibleContentPosition: { minIndexForVisible: 0 }, onContentSizeChange: () => { var _a; return (_a = flatListRef.current) === null || _a === void 0 ? void 0 : _a.scrollToEnd({ animated: true }); }, ListHeaderComponent: loading && messages.length === 0 ? ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: styles.center, children: (0, jsx_runtime_1.jsx)(react_native_1.ActivityIndicator, { color: t.colors.brand, size: "large", style: { marginVertical: 24 } }) })) : null, ListEmptyComponent: !loading ? ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [styles.flex, styles.center], children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: { color: t.colors.textMuted, fontSize: t.fontSizes.md }, children: "Start the conversation" }) })) : null }), (0, jsx_runtime_1.jsx)(MessageComposer_1.MessageComposer, { onSend: handleSend, disabled: isResolved || sending, placeholder: isResolved ? "This conversation is resolved" : "Message…", keyboardVisible: keyboardHeight > 0 }), listPickerState && ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.listPicker, { backgroundColor: t.colors.surface }], children: [(0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.listPickerHeader, { borderBottomColor: t.colors.border }], children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.listPickerTitle, { color: t.colors.text }], children: "Select an option" }), (0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { onPress: () => setListPickerState(null), children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: { color: t.colors.textMuted, fontSize: 20 }, children: "\u00D7" }) })] }), (0, jsx_runtime_1.jsx)(react_native_1.FlatList, { data: listPickerState.sections, keyExtractor: (_, i) => String(i), renderItem: ({ item: section }) => {
237
240
  var _a;
238
241
  return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { children: [section.title ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.listPickerSectionTitle, { color: t.colors.textMuted }], children: section.title })) : null, ((_a = section.rows) !== null && _a !== void 0 ? _a : []).map((row) => ((0, jsx_runtime_1.jsxs)(react_native_1.TouchableOpacity, { onPress: () => { listPickerState.onSelect(row.id, row.title); setListPickerState(null); }, style: [styles.listPickerRow, { borderBottomColor: t.colors.border }], children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.listPickerRowTitle, { color: t.colors.text }], children: row.title }), row.description ? (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.listPickerRowDesc, { color: t.colors.textMuted }], children: row.description }) : null] }, row.id)))] }));
239
- } })] })), (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.poweredBy, { color: t.colors.textMuted }], children: theme_1.POWERED_BY_TEXT })] }));
242
+ } })] })), keyboardHeight === 0 ? ((0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.poweredBy, { color: t.colors.textMuted }], children: theme_1.POWERED_BY_TEXT })) : null] }));
240
243
  }
241
244
  const styles = react_native_1.StyleSheet.create({
242
245
  flex: { flex: 1 },
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationScreen.js","sourceRoot":"","sources":["../../../src/ui/components/ConversationScreen.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConversationScreen.js","sourceRoot":"","sources":["../../../src/ui/components/ConversationScreen.tsx"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export type MessageComposerProps = {
27
27
  onSend: (text: string, uploadedAttachments?: UploadedAttachment[]) => void | Promise<void>;
28
28
  disabled?: boolean;
29
29
  placeholder?: string;
30
+ keyboardVisible?: boolean;
30
31
  };
31
- export declare function MessageComposer({ onSend, disabled, placeholder, }: MessageComposerProps): import("react/jsx-runtime").JSX.Element;
32
+ export declare function MessageComposer({ onSend, disabled, placeholder, keyboardVisible, }: MessageComposerProps): import("react/jsx-runtime").JSX.Element;
32
33
  //# sourceMappingURL=MessageComposer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageComposer.d.ts","sourceRoot":"","sources":["../../../src/ui/components/MessageComposer.tsx"],"names":[],"mappings":"AAmBA,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAE5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,oBAAoB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,oBAAoB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,oBAAoB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AA0OF,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,QAAgB,EAChB,WAAwB,GACzB,EAAE,oBAAoB,2CAqItB"}
1
+ {"version":3,"file":"MessageComposer.d.ts","sourceRoot":"","sources":["../../../src/ui/components/MessageComposer.tsx"],"names":[],"mappings":"AAmBA,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,CAAC;AAE5E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,oBAAoB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,oBAAoB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,oBAAoB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,EAAE,CACN,IAAI,EAAE,MAAM,EACZ,mBAAmB,CAAC,EAAE,kBAAkB,EAAE,KACvC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAkTF,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,QAAgB,EAChB,WAAwB,EACxB,eAAuB,GACxB,EAAE,oBAAoB,2CA8KtB"}
@@ -14,7 +14,7 @@ function newId() {
14
14
  ? crypto.randomUUID()
15
15
  : `a-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
16
16
  }
17
- function AttachmentMenu({ onPick, disabled, attachmentCount, color }) {
17
+ function AttachmentMenu({ onPick, disabled, attachmentCount, color, }) {
18
18
  const { theme: t } = (0, LiveChatContext_1.useLiveChatContext)();
19
19
  const [open, setOpen] = (0, react_1.useState)(false);
20
20
  const atLimit = attachmentCount >= MAX_ATTACHMENTS;
@@ -81,7 +81,12 @@ function AttachmentMenu({ onPick, disabled, attachmentCount, color }) {
81
81
  const DocumentPicker = require("@react-native-documents/picker");
82
82
  const types = kind === "audio"
83
83
  ? [DocumentPicker.types.audio]
84
- : [DocumentPicker.types.pdf, DocumentPicker.types.plainText, DocumentPicker.types.doc, DocumentPicker.types.docx];
84
+ : [
85
+ DocumentPicker.types.pdf,
86
+ DocumentPicker.types.plainText,
87
+ DocumentPicker.types.doc,
88
+ DocumentPicker.types.docx,
89
+ ];
85
90
  const res = await DocumentPicker.pick({ type: types });
86
91
  const file = Array.isArray(res) ? res[0] : res;
87
92
  if (file) {
@@ -98,12 +103,19 @@ function AttachmentMenu({ onPick, disabled, attachmentCount, color }) {
98
103
  onPick(picked);
99
104
  }
100
105
  catch (e) {
101
- if ((e === null || e === void 0 ? void 0 : e.code) !== "DOCUMENT_PICKER_CANCELED" && (e === null || e === void 0 ? void 0 : e.code) !== "OPERATION_CANCELED") {
106
+ if ((e === null || e === void 0 ? void 0 : e.code) !== "DOCUMENT_PICKER_CANCELED" &&
107
+ (e === null || e === void 0 ? void 0 : e.code) !== "OPERATION_CANCELED") {
102
108
  react_native_1.Alert.alert("Error", "Could not pick file.");
103
109
  }
104
110
  }
105
111
  }, [triggerDisabled, onPick]);
106
- return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.attachMenuRoot, children: [(0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { onPress: () => !triggerDisabled && setOpen((o) => !o), disabled: triggerDisabled, style: [styles.iconBtn, triggerDisabled && styles.disabled], accessibilityLabel: "Attach file", children: (0, jsx_runtime_1.jsx)(icons_1.PaperclipIcon, { size: 20, color: color }) }), open ? ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.attachPopover, { backgroundColor: t.colors.surface, borderColor: t.colors.border }], children: [["image", "video", "audio", "document"].map((kind) => ((0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { onPress: () => void handleKind(kind), style: styles.attachMenuItem, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.attachMenuLabel, { color: t.colors.text }], children: kind.charAt(0).toUpperCase() + kind.slice(1) }) }, kind))), (0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { onPress: () => setOpen(false), style: [styles.attachMenuClose, { borderTopColor: t.colors.border }], children: (0, jsx_runtime_1.jsx)(icons_1.CloseIcon, { size: 14, color: t.colors.textMuted }) })] })) : null] }));
112
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.attachMenuRoot, children: [(0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { onPress: () => !triggerDisabled && setOpen((o) => !o), disabled: triggerDisabled, style: [styles.iconBtn, triggerDisabled && styles.disabled], accessibilityLabel: "Attach file", children: (0, jsx_runtime_1.jsx)(icons_1.PaperclipIcon, { size: 20, color: color }) }), open ? ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [
113
+ styles.attachPopover,
114
+ { backgroundColor: t.colors.surface, borderColor: t.colors.border },
115
+ ], children: [["image", "video", "audio", "document"].map((kind) => ((0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { onPress: () => void handleKind(kind), style: styles.attachMenuItem, children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.attachMenuLabel, { color: t.colors.text }], children: kind.charAt(0).toUpperCase() + kind.slice(1) }) }, kind))), (0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { onPress: () => setOpen(false), style: [
116
+ styles.attachMenuClose,
117
+ { borderTopColor: t.colors.border },
118
+ ], children: (0, jsx_runtime_1.jsx)(icons_1.CloseIcon, { size: 14, color: t.colors.textMuted }) })] })) : null] }));
107
119
  }
108
120
  // ── file previews ─────────────────────────────────────────────────────────────
109
121
  function FilePreviews({ items, onRemove, borderColor, }) {
@@ -112,7 +124,16 @@ function FilePreviews({ items, onRemove, borderColor, }) {
112
124
  return null;
113
125
  return ((0, jsx_runtime_1.jsx)(react_native_1.ScrollView, { horizontal: true, showsHorizontalScrollIndicator: false, style: styles.previewScroll, contentContainerStyle: styles.previewContent, children: items.map((item) => {
114
126
  const isImage = item.kind === "image";
115
- return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.previewItem, children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: [styles.previewThumb, { borderColor }], children: isImage ? ((0, jsx_runtime_1.jsx)(react_native_1.Image, { source: { uri: item.uri }, style: styles.previewImage, resizeMode: "cover" })) : ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [styles.previewFileIcon, { backgroundColor: t.colors.bubbleIn }], children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.previewFileIconText, children: "\uD83D\uDCC4" }) })) }), (0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { onPress: () => onRemove(item.id), style: [styles.previewRemoveBtn, { backgroundColor: t.colors.surface, borderColor: t.colors.border }], accessibilityLabel: `Remove ${item.name}`, children: (0, jsx_runtime_1.jsx)(icons_1.CloseIcon, { size: 10, color: borderColor }) })] }, item.id));
127
+ return ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.previewItem, children: [(0, jsx_runtime_1.jsx)(react_native_1.View, { style: [styles.previewThumb, { borderColor }], children: isImage ? ((0, jsx_runtime_1.jsx)(react_native_1.Image, { source: { uri: item.uri }, style: styles.previewImage, resizeMode: "cover" })) : ((0, jsx_runtime_1.jsx)(react_native_1.View, { style: [
128
+ styles.previewFileIcon,
129
+ { backgroundColor: t.colors.bubbleIn },
130
+ ], children: (0, jsx_runtime_1.jsx)(react_native_1.Text, { style: styles.previewFileIconText, children: "\uD83D\uDCC4" }) })) }), (0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { onPress: () => onRemove(item.id), style: [
131
+ styles.previewRemoveBtn,
132
+ {
133
+ backgroundColor: t.colors.surface,
134
+ borderColor: t.colors.border,
135
+ },
136
+ ], accessibilityLabel: `Remove ${item.name}`, children: (0, jsx_runtime_1.jsx)(icons_1.CloseIcon, { size: 10, color: borderColor }) })] }, item.id));
116
137
  }) }));
117
138
  }
118
139
  // ── upload helper ─────────────────────────────────────────────────────────────
@@ -142,7 +163,11 @@ async function uploadAttachment(pending, visitorQueryParams) {
142
163
  putRes = await fetch(signedUrl, {
143
164
  method: "PUT",
144
165
  headers: { "Content-Type": pending.mimeType },
145
- body: { uri: pending.uri, type: pending.mimeType, name: pending.name },
166
+ body: {
167
+ uri: pending.uri,
168
+ type: pending.mimeType,
169
+ name: pending.name,
170
+ },
146
171
  });
147
172
  }
148
173
  catch {
@@ -166,7 +191,7 @@ async function uploadAttachment(pending, visitorQueryParams) {
166
191
  };
167
192
  }
168
193
  // ── main composer ─────────────────────────────────────────────────────────────
169
- function MessageComposer({ onSend, disabled = false, placeholder = "Message…", }) {
194
+ function MessageComposer({ onSend, disabled = false, placeholder = "Message…", keyboardVisible = false, }) {
170
195
  var _a;
171
196
  const { theme: t, visitorQueryParams } = (0, LiveChatContext_1.useLiveChatContext)();
172
197
  const { bottom: safeBottom } = (0, safe_area_1.usePanelSafeAreaInsets)();
@@ -177,7 +202,10 @@ function MessageComposer({ onSend, disabled = false, placeholder = "Message…",
177
202
  const inputRef = (0, react_1.useRef)(null);
178
203
  const isConnecting = !visitorQueryParams;
179
204
  const trimmed = text.trim();
180
- const canSend = (trimmed.length > 0 || attachments.length > 0) && !disabled && !isSending && !isConnecting;
205
+ const canSend = (trimmed.length > 0 || attachments.length > 0) &&
206
+ !disabled &&
207
+ !isSending &&
208
+ !isConnecting;
181
209
  // Clear stale error when the user edits the message
182
210
  (0, react_1.useEffect)(() => {
183
211
  if (sendError && (text || attachments.length))
@@ -187,7 +215,17 @@ function MessageComposer({ onSend, disabled = false, placeholder = "Message…",
187
215
  setAttachments((prev) => {
188
216
  if (prev.length >= MAX_ATTACHMENTS)
189
217
  return prev;
190
- return [...prev, { id: newId(), uri: item.uri, name: item.name, mimeType: item.type, size: item.size, kind: item.kind }];
218
+ return [
219
+ ...prev,
220
+ {
221
+ id: newId(),
222
+ uri: item.uri,
223
+ name: item.name,
224
+ mimeType: item.type,
225
+ size: item.size,
226
+ kind: item.kind,
227
+ },
228
+ ];
191
229
  });
192
230
  }, []);
193
231
  const handleRemove = (0, react_1.useCallback)((id) => {
@@ -228,11 +266,21 @@ function MessageComposer({ onSend, disabled = false, placeholder = "Message…",
228
266
  {
229
267
  backgroundColor: t.colors.composerBackground,
230
268
  borderTopColor: t.colors.composerBorder,
231
- paddingBottom: 8 + safeBottom,
269
+ paddingBottom: 8 + (keyboardVisible ? 0 : safeBottom),
232
270
  },
233
- ], children: [sendError ? ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.errorBanner, { backgroundColor: t.colors.surface, borderColor: t.colors.border }], children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.errorText, { color: (_a = t.colors.error) !== null && _a !== void 0 ? _a : "#c0392b" }], numberOfLines: 2, children: sendError }), (0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { onPress: () => setSendError(null), accessibilityLabel: "Dismiss error", children: (0, jsx_runtime_1.jsx)(icons_1.CloseIcon, { size: 14, color: t.colors.textMuted }) })] })) : null, (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.inner, { borderColor: t.colors.composerBorder }], children: [(0, jsx_runtime_1.jsx)(FilePreviews, { items: attachments, onRemove: handleRemove, borderColor: t.colors.border }), (0, jsx_runtime_1.jsx)(react_native_1.TextInput, { ref: inputRef, style: [styles.input, { color: t.colors.inputText, fontSize: t.fontSizes.md }], value: text, onChangeText: setText, placeholder: isConnecting ? "Connecting…" : placeholder, placeholderTextColor: t.colors.textMuted, multiline: true, maxLength: 4000, editable: !disabled && !isConnecting, returnKeyType: "default", blurOnSubmit: false }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.toolbar, children: [(0, jsx_runtime_1.jsx)(AttachmentMenu, { onPick: handlePick, disabled: disabled || isSending || isConnecting, attachmentCount: attachments.length, color: t.colors.textMuted }), (0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { onPress: () => void handleSend(), disabled: !canSend, activeOpacity: 0.75, style: [
271
+ ], children: [sendError ? ((0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [
272
+ styles.errorBanner,
273
+ { backgroundColor: t.colors.surface, borderColor: t.colors.border },
274
+ ], children: [(0, jsx_runtime_1.jsx)(react_native_1.Text, { style: [styles.errorText, { color: (_a = t.colors.error) !== null && _a !== void 0 ? _a : "#c0392b" }], numberOfLines: 2, children: sendError }), (0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { onPress: () => setSendError(null), accessibilityLabel: "Dismiss error", children: (0, jsx_runtime_1.jsx)(icons_1.CloseIcon, { size: 14, color: t.colors.textMuted }) })] })) : null, (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: [styles.inner, { borderColor: t.colors.composerBorder }], children: [(0, jsx_runtime_1.jsx)(FilePreviews, { items: attachments, onRemove: handleRemove, borderColor: t.colors.border }), (0, jsx_runtime_1.jsx)(react_native_1.TextInput, { ref: inputRef, style: [
275
+ styles.input,
276
+ { color: t.colors.inputText, fontSize: t.fontSizes.md },
277
+ ], value: text, onChangeText: setText, placeholder: isConnecting ? "Connecting…" : placeholder, placeholderTextColor: t.colors.textMuted, multiline: true, maxLength: 4000, editable: !disabled && !isConnecting, returnKeyType: "default", blurOnSubmit: false }), (0, jsx_runtime_1.jsxs)(react_native_1.View, { style: styles.toolbar, children: [(0, jsx_runtime_1.jsx)(AttachmentMenu, { onPick: handlePick, disabled: disabled || isSending || isConnecting, attachmentCount: attachments.length, color: t.colors.textMuted }), (0, jsx_runtime_1.jsx)(react_native_1.TouchableOpacity, { onPress: () => void handleSend(), disabled: !canSend, activeOpacity: 0.75, style: [
234
278
  styles.sendBtn,
235
- { backgroundColor: canSend ? t.colors.sendButtonBackground : t.colors.border },
279
+ {
280
+ backgroundColor: canSend
281
+ ? t.colors.sendButtonBackground
282
+ : t.colors.border,
283
+ },
236
284
  ], accessibilityLabel: isConnecting ? "Connecting, please wait" : "Send message", children: isSending ? ((0, jsx_runtime_1.jsx)(react_native_1.ActivityIndicator, { size: "small", color: t.colors.sendButtonIcon })) : isConnecting ? ((0, jsx_runtime_1.jsx)(react_native_1.ActivityIndicator, { size: "small", color: t.colors.textMuted })) : ((0, jsx_runtime_1.jsx)(icons_1.SendPlaneIcon, { size: 18, color: canSend ? t.colors.sendButtonIcon : t.colors.textMuted })) })] })] })] }));
237
285
  }
238
286
  const styles = react_native_1.StyleSheet.create({
@@ -1 +1 @@
1
- {"version":3,"file":"MessageComposer.js","sourceRoot":"","sources":["../../../src/ui/components/MessageComposer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageComposer.js","sourceRoot":"","sources":["../../../src/ui/components/MessageComposer.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "turbodesk-livechat-react-native",
3
- "version": "0.1.0-alpha.32",
3
+ "version": "0.1.0-alpha.34",
4
4
  "description": "Headless Live Chat SDK for React Native - REST, WebSocket, hooks, and optional UI kit",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
@@ -1,13 +1,15 @@
1
- import React, { useCallback, useEffect, useRef, useState } from "react";
1
+ import React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from "react";
2
2
  import {
3
3
  ActivityIndicator,
4
4
  FlatList,
5
+ Keyboard,
6
+ KeyboardEvent,
7
+ Platform,
5
8
  StyleSheet,
6
9
  Text,
7
10
  TouchableOpacity,
8
11
  View,
9
12
  } from "react-native";
10
- import { KeyboardAvoidingView } from "react-native-keyboard-controller";
11
13
  import { useLiveChatContext } from "../../provider/LiveChatContext";
12
14
  import { conversationApi } from "../../api/conversation-api";
13
15
  import { useMessages } from "../../hooks/use-messages";
@@ -197,21 +199,14 @@ export function ConversationScreen({
197
199
 
198
200
  useEffect(() => { if (conversationId && conversationId !== "new") markAsRead(); }, [conversationId, markAsRead]);
199
201
 
200
- // Set synchronously via ref so FCM suppression works before useEffect fires
201
- const setActiveConvRef = useRef(setActiveConversationId);
202
- setActiveConvRef.current = setActiveConversationId;
203
- const activeConvSetRef = useRef<string | null>(null);
204
- if (conversationId && conversationId !== "new" && activeConvSetRef.current !== conversationId) {
205
- activeConvSetRef.current = conversationId;
202
+ useLayoutEffect(() => {
203
+ if (!conversationId || conversationId === "new") {
204
+ setActiveConversationId(null);
205
+ return;
206
+ }
206
207
  setActiveConversationId(conversationId);
207
- }
208
- useEffect(() => {
209
- if (!conversationId || conversationId === "new") return;
210
- return () => {
211
- activeConvSetRef.current = null;
212
- setActiveConvRef.current(null);
213
- };
214
- }, [conversationId]);
208
+ return () => setActiveConversationId(null);
209
+ }, [conversationId, setActiveConversationId]);
215
210
 
216
211
  useEffect(() => {
217
212
  if (renderList.length > 0) {
@@ -273,10 +268,23 @@ export function ConversationScreen({
273
268
  );
274
269
  }, [t, widgetName, handleSend]);
275
270
 
271
+ // Manual keyboard offset — works when the panel is inside React Navigation screens
272
+ // or modals where KeyboardAvoidingView / keyboard-controller often fail on Android.
273
+ const [keyboardHeight, setKeyboardHeight] = useState(0);
274
+
275
+ useEffect(() => {
276
+ const showEvent = Platform.OS === "ios" ? "keyboardWillShow" : "keyboardDidShow";
277
+ const hideEvent = Platform.OS === "ios" ? "keyboardWillHide" : "keyboardDidHide";
278
+ const show = Keyboard.addListener(showEvent, (e: KeyboardEvent) => {
279
+ setKeyboardHeight(e.endCoordinates.height);
280
+ });
281
+ const hide = Keyboard.addListener(hideEvent, () => setKeyboardHeight(0));
282
+ return () => { show.remove(); hide.remove(); };
283
+ }, []);
284
+
276
285
  return (
277
- <KeyboardAvoidingView
278
- style={[styles.flex, { backgroundColor: t.colors.background }]}
279
- behavior="padding"
286
+ <View
287
+ style={[styles.flex, { backgroundColor: t.colors.background, paddingBottom: keyboardHeight }]}
280
288
  >
281
289
  <ConversationHeader
282
290
  conversation={isNewConversation ? null : conversation}
@@ -322,6 +330,7 @@ export function ConversationScreen({
322
330
  onSend={handleSend}
323
331
  disabled={isResolved || sending}
324
332
  placeholder={isResolved ? "This conversation is resolved" : "Message…"}
333
+ keyboardVisible={keyboardHeight > 0}
325
334
  />
326
335
 
327
336
  {listPickerState && (
@@ -356,10 +365,12 @@ export function ConversationScreen({
356
365
  </View>
357
366
  )}
358
367
 
359
- <Text style={[styles.poweredBy, { color: t.colors.textMuted }]}>
360
- {POWERED_BY_TEXT}
361
- </Text>
362
- </KeyboardAvoidingView>
368
+ {keyboardHeight === 0 ? (
369
+ <Text style={[styles.poweredBy, { color: t.colors.textMuted }]}>
370
+ {POWERED_BY_TEXT}
371
+ </Text>
372
+ ) : null}
373
+ </View>
363
374
  );
364
375
  }
365
376
 
@@ -47,9 +47,13 @@ export type PendingAttachment = {
47
47
  };
48
48
 
49
49
  export type MessageComposerProps = {
50
- onSend: (text: string, uploadedAttachments?: UploadedAttachment[]) => void | Promise<void>;
50
+ onSend: (
51
+ text: string,
52
+ uploadedAttachments?: UploadedAttachment[],
53
+ ) => void | Promise<void>;
51
54
  disabled?: boolean;
52
55
  placeholder?: string;
56
+ keyboardVisible?: boolean;
53
57
  };
54
58
 
55
59
  const MAX_ATTACHMENTS = 5;
@@ -69,79 +73,114 @@ type AttachmentMenuProps = {
69
73
  color: string;
70
74
  };
71
75
 
72
- function AttachmentMenu({ onPick, disabled, attachmentCount, color }: AttachmentMenuProps) {
76
+ function AttachmentMenu({
77
+ onPick,
78
+ disabled,
79
+ attachmentCount,
80
+ color,
81
+ }: AttachmentMenuProps) {
73
82
  const { theme: t } = useLiveChatContext();
74
83
  const [open, setOpen] = useState(false);
75
84
  const atLimit = attachmentCount >= MAX_ATTACHMENTS;
76
85
  const triggerDisabled = disabled || atLimit;
77
86
 
78
- const handleKind = useCallback(async (kind: PickedAttachmentKind) => {
79
- setOpen(false);
80
- if (triggerDisabled) return;
81
-
82
- try {
83
- let picked: PickedAttachment | null = null;
84
-
85
- if (kind === "image") {
86
- const ImagePicker = require("react-native-image-picker");
87
- await new Promise<void>((resolve) => {
88
- ImagePicker.launchImageLibrary({ mediaType: "photo", quality: 0.8 }, (res: any) => {
89
- if (res.didCancel || res.errorCode) { resolve(); return; }
90
- const asset = res.assets?.[0];
91
- if (!asset) { resolve(); return; }
92
- picked = {
93
- uri: asset.uri,
94
- name: asset.fileName ?? "image.jpg",
95
- type: asset.type ?? "image/jpeg",
96
- size: asset.fileSize,
97
- kind: "image",
98
- };
99
- resolve();
87
+ const handleKind = useCallback(
88
+ async (kind: PickedAttachmentKind) => {
89
+ setOpen(false);
90
+ if (triggerDisabled) return;
91
+
92
+ try {
93
+ let picked: PickedAttachment | null = null;
94
+
95
+ if (kind === "image") {
96
+ const ImagePicker = require("react-native-image-picker");
97
+ await new Promise<void>((resolve) => {
98
+ ImagePicker.launchImageLibrary(
99
+ { mediaType: "photo", quality: 0.8 },
100
+ (res: any) => {
101
+ if (res.didCancel || res.errorCode) {
102
+ resolve();
103
+ return;
104
+ }
105
+ const asset = res.assets?.[0];
106
+ if (!asset) {
107
+ resolve();
108
+ return;
109
+ }
110
+ picked = {
111
+ uri: asset.uri,
112
+ name: asset.fileName ?? "image.jpg",
113
+ type: asset.type ?? "image/jpeg",
114
+ size: asset.fileSize,
115
+ kind: "image",
116
+ };
117
+ resolve();
118
+ },
119
+ );
100
120
  });
101
- });
102
- } else if (kind === "video") {
103
- const ImagePicker = require("react-native-image-picker");
104
- await new Promise<void>((resolve) => {
105
- ImagePicker.launchImageLibrary({ mediaType: "video" }, (res: any) => {
106
- if (res.didCancel || res.errorCode) { resolve(); return; }
107
- const asset = res.assets?.[0];
108
- if (!asset) { resolve(); return; }
121
+ } else if (kind === "video") {
122
+ const ImagePicker = require("react-native-image-picker");
123
+ await new Promise<void>((resolve) => {
124
+ ImagePicker.launchImageLibrary(
125
+ { mediaType: "video" },
126
+ (res: any) => {
127
+ if (res.didCancel || res.errorCode) {
128
+ resolve();
129
+ return;
130
+ }
131
+ const asset = res.assets?.[0];
132
+ if (!asset) {
133
+ resolve();
134
+ return;
135
+ }
136
+ picked = {
137
+ uri: asset.uri,
138
+ name: asset.fileName ?? "video.mp4",
139
+ type: asset.type ?? "video/mp4",
140
+ size: asset.fileSize,
141
+ kind: "video",
142
+ };
143
+ resolve();
144
+ },
145
+ );
146
+ });
147
+ } else {
148
+ // audio / document — use @react-native-documents/picker
149
+ const DocumentPicker = require("@react-native-documents/picker");
150
+ const types =
151
+ kind === "audio"
152
+ ? [DocumentPicker.types.audio]
153
+ : [
154
+ DocumentPicker.types.pdf,
155
+ DocumentPicker.types.plainText,
156
+ DocumentPicker.types.doc,
157
+ DocumentPicker.types.docx,
158
+ ];
159
+ const res = await DocumentPicker.pick({ type: types });
160
+ const file = Array.isArray(res) ? res[0] : res;
161
+ if (file) {
109
162
  picked = {
110
- uri: asset.uri,
111
- name: asset.fileName ?? "video.mp4",
112
- type: asset.type ?? "video/mp4",
113
- size: asset.fileSize,
114
- kind: "video",
163
+ uri: file.uri,
164
+ name: file.name ?? "file",
165
+ type: file.type ?? "application/octet-stream",
166
+ size: file.size,
167
+ kind,
115
168
  };
116
- resolve();
117
- });
118
- });
119
- } else {
120
- // audio / document — use @react-native-documents/picker
121
- const DocumentPicker = require("@react-native-documents/picker");
122
- const types = kind === "audio"
123
- ? [DocumentPicker.types.audio]
124
- : [DocumentPicker.types.pdf, DocumentPicker.types.plainText, DocumentPicker.types.doc, DocumentPicker.types.docx];
125
- const res = await DocumentPicker.pick({ type: types });
126
- const file = Array.isArray(res) ? res[0] : res;
127
- if (file) {
128
- picked = {
129
- uri: file.uri,
130
- name: file.name ?? "file",
131
- type: file.type ?? "application/octet-stream",
132
- size: file.size,
133
- kind,
134
- };
169
+ }
135
170
  }
136
- }
137
171
 
138
- if (picked) onPick(picked);
139
- } catch (e: any) {
140
- if (e?.code !== "DOCUMENT_PICKER_CANCELED" && e?.code !== "OPERATION_CANCELED") {
141
- Alert.alert("Error", "Could not pick file.");
172
+ if (picked) onPick(picked);
173
+ } catch (e: any) {
174
+ if (
175
+ e?.code !== "DOCUMENT_PICKER_CANCELED" &&
176
+ e?.code !== "OPERATION_CANCELED"
177
+ ) {
178
+ Alert.alert("Error", "Could not pick file.");
179
+ }
142
180
  }
143
- }
144
- }, [triggerDisabled, onPick]);
181
+ },
182
+ [triggerDisabled, onPick],
183
+ );
145
184
 
146
185
  return (
147
186
  <View style={styles.attachMenuRoot}>
@@ -155,8 +194,15 @@ function AttachmentMenu({ onPick, disabled, attachmentCount, color }: Attachment
155
194
  </TouchableOpacity>
156
195
 
157
196
  {open ? (
158
- <View style={[styles.attachPopover, { backgroundColor: t.colors.surface, borderColor: t.colors.border }]}>
159
- {(["image", "video", "audio", "document"] as PickedAttachmentKind[]).map((kind) => (
197
+ <View
198
+ style={[
199
+ styles.attachPopover,
200
+ { backgroundColor: t.colors.surface, borderColor: t.colors.border },
201
+ ]}
202
+ >
203
+ {(
204
+ ["image", "video", "audio", "document"] as PickedAttachmentKind[]
205
+ ).map((kind) => (
160
206
  <TouchableOpacity
161
207
  key={kind}
162
208
  onPress={() => void handleKind(kind)}
@@ -167,7 +213,13 @@ function AttachmentMenu({ onPick, disabled, attachmentCount, color }: Attachment
167
213
  </Text>
168
214
  </TouchableOpacity>
169
215
  ))}
170
- <TouchableOpacity onPress={() => setOpen(false)} style={[styles.attachMenuClose, { borderTopColor: t.colors.border }]}>
216
+ <TouchableOpacity
217
+ onPress={() => setOpen(false)}
218
+ style={[
219
+ styles.attachMenuClose,
220
+ { borderTopColor: t.colors.border },
221
+ ]}
222
+ >
171
223
  <CloseIcon size={14} color={t.colors.textMuted} />
172
224
  </TouchableOpacity>
173
225
  </View>
@@ -202,16 +254,31 @@ function FilePreviews({
202
254
  <View key={item.id} style={styles.previewItem}>
203
255
  <View style={[styles.previewThumb, { borderColor }]}>
204
256
  {isImage ? (
205
- <Image source={{ uri: item.uri }} style={styles.previewImage} resizeMode="cover" />
257
+ <Image
258
+ source={{ uri: item.uri }}
259
+ style={styles.previewImage}
260
+ resizeMode="cover"
261
+ />
206
262
  ) : (
207
- <View style={[styles.previewFileIcon, { backgroundColor: t.colors.bubbleIn }]}>
263
+ <View
264
+ style={[
265
+ styles.previewFileIcon,
266
+ { backgroundColor: t.colors.bubbleIn },
267
+ ]}
268
+ >
208
269
  <Text style={styles.previewFileIconText}>📄</Text>
209
270
  </View>
210
271
  )}
211
272
  </View>
212
273
  <TouchableOpacity
213
274
  onPress={() => onRemove(item.id)}
214
- style={[styles.previewRemoveBtn, { backgroundColor: t.colors.surface, borderColor: t.colors.border }]}
275
+ style={[
276
+ styles.previewRemoveBtn,
277
+ {
278
+ backgroundColor: t.colors.surface,
279
+ borderColor: t.colors.border,
280
+ },
281
+ ]}
215
282
  accessibilityLabel={`Remove ${item.name}`}
216
283
  >
217
284
  <CloseIcon size={10} color={borderColor} />
@@ -228,7 +295,7 @@ function FilePreviews({
228
295
  // Throws on any failure so the caller can surface the error and preserve the draft.
229
296
  async function uploadAttachment(
230
297
  pending: PendingAttachment,
231
- visitorQueryParams: Record<string, string> | null
298
+ visitorQueryParams: Record<string, string> | null,
232
299
  ): Promise<UploadedAttachment> {
233
300
  const ext = pending.name.split(".").pop() ?? "";
234
301
  let presigned: any;
@@ -242,33 +309,42 @@ async function uploadAttachment(
242
309
  bytes: pending.size,
243
310
  folder: "livechat",
244
311
  },
245
- visitorQueryParams ? { params: visitorQueryParams } : undefined
312
+ visitorQueryParams ? { params: visitorQueryParams } : undefined,
246
313
  );
247
314
  } catch {
248
315
  throw new Error(`Failed to prepare upload for "${pending.name}"`);
249
316
  }
250
317
 
251
318
  const signedUrl = presigned?.data?.signedUrl;
252
- if (!signedUrl) throw new Error(`No upload URL returned for "${pending.name}"`);
319
+ if (!signedUrl)
320
+ throw new Error(`No upload URL returned for "${pending.name}"`);
253
321
 
254
322
  let putRes: Response;
255
323
  try {
256
324
  putRes = await fetch(signedUrl, {
257
325
  method: "PUT",
258
326
  headers: { "Content-Type": pending.mimeType },
259
- body: { uri: pending.uri, type: pending.mimeType, name: pending.name } as any,
327
+ body: {
328
+ uri: pending.uri,
329
+ type: pending.mimeType,
330
+ name: pending.name,
331
+ } as any,
260
332
  });
261
333
  } catch {
262
334
  throw new Error(`Network error while uploading "${pending.name}"`);
263
335
  }
264
336
 
265
337
  if (!putRes.ok) {
266
- throw new Error(`Upload failed for "${pending.name}" (HTTP ${putRes.status})`);
338
+ throw new Error(
339
+ `Upload failed for "${pending.name}" (HTTP ${putRes.status})`,
340
+ );
267
341
  }
268
342
 
269
343
  const uploaded = presigned?.data?.file;
270
344
  if (!uploaded?._id) {
271
- throw new Error(`Upload succeeded but server returned no file metadata for "${pending.name}"`);
345
+ throw new Error(
346
+ `Upload succeeded but server returned no file metadata for "${pending.name}"`,
347
+ );
272
348
  }
273
349
 
274
350
  return {
@@ -288,6 +364,7 @@ export function MessageComposer({
288
364
  onSend,
289
365
  disabled = false,
290
366
  placeholder = "Message…",
367
+ keyboardVisible = false,
291
368
  }: MessageComposerProps) {
292
369
  const { theme: t, visitorQueryParams } = useLiveChatContext();
293
370
  const { bottom: safeBottom } = usePanelSafeAreaInsets();
@@ -299,7 +376,11 @@ export function MessageComposer({
299
376
 
300
377
  const isConnecting = !visitorQueryParams;
301
378
  const trimmed = text.trim();
302
- const canSend = (trimmed.length > 0 || attachments.length > 0) && !disabled && !isSending && !isConnecting;
379
+ const canSend =
380
+ (trimmed.length > 0 || attachments.length > 0) &&
381
+ !disabled &&
382
+ !isSending &&
383
+ !isConnecting;
303
384
 
304
385
  // Clear stale error when the user edits the message
305
386
  useEffect(() => {
@@ -309,7 +390,17 @@ export function MessageComposer({
309
390
  const handlePick = useCallback((item: PickedAttachment) => {
310
391
  setAttachments((prev) => {
311
392
  if (prev.length >= MAX_ATTACHMENTS) return prev;
312
- return [...prev, { id: newId(), uri: item.uri, name: item.name, mimeType: item.type, size: item.size, kind: item.kind }];
393
+ return [
394
+ ...prev,
395
+ {
396
+ id: newId(),
397
+ uri: item.uri,
398
+ name: item.name,
399
+ mimeType: item.type,
400
+ size: item.size,
401
+ kind: item.kind,
402
+ },
403
+ ];
313
404
  });
314
405
  }, []);
315
406
 
@@ -333,7 +424,7 @@ export function MessageComposer({
333
424
  if (snapshot.length > 0) {
334
425
  // Upload all attachments — throws on the first failure, preserving draft
335
426
  uploaded = await Promise.all(
336
- snapshot.map((a) => uploadAttachment(a, visitorQueryParams))
427
+ snapshot.map((a) => uploadAttachment(a, visitorQueryParams)),
337
428
  );
338
429
  }
339
430
 
@@ -359,27 +450,45 @@ export function MessageComposer({
359
450
  {
360
451
  backgroundColor: t.colors.composerBackground,
361
452
  borderTopColor: t.colors.composerBorder,
362
- paddingBottom: 8 + safeBottom,
453
+ paddingBottom: 8 + (keyboardVisible ? 0 : safeBottom),
363
454
  },
364
455
  ]}
365
456
  >
366
457
  {sendError ? (
367
- <View style={[styles.errorBanner, { backgroundColor: t.colors.surface, borderColor: t.colors.border }]}>
368
- <Text style={[styles.errorText, { color: t.colors.error ?? "#c0392b" }]} numberOfLines={2}>
458
+ <View
459
+ style={[
460
+ styles.errorBanner,
461
+ { backgroundColor: t.colors.surface, borderColor: t.colors.border },
462
+ ]}
463
+ >
464
+ <Text
465
+ style={[styles.errorText, { color: t.colors.error ?? "#c0392b" }]}
466
+ numberOfLines={2}
467
+ >
369
468
  {sendError}
370
469
  </Text>
371
- <TouchableOpacity onPress={() => setSendError(null)} accessibilityLabel="Dismiss error">
470
+ <TouchableOpacity
471
+ onPress={() => setSendError(null)}
472
+ accessibilityLabel="Dismiss error"
473
+ >
372
474
  <CloseIcon size={14} color={t.colors.textMuted} />
373
475
  </TouchableOpacity>
374
476
  </View>
375
477
  ) : null}
376
478
 
377
479
  <View style={[styles.inner, { borderColor: t.colors.composerBorder }]}>
378
- <FilePreviews items={attachments} onRemove={handleRemove} borderColor={t.colors.border} />
480
+ <FilePreviews
481
+ items={attachments}
482
+ onRemove={handleRemove}
483
+ borderColor={t.colors.border}
484
+ />
379
485
 
380
486
  <TextInput
381
487
  ref={inputRef}
382
- style={[styles.input, { color: t.colors.inputText, fontSize: t.fontSizes.md }]}
488
+ style={[
489
+ styles.input,
490
+ { color: t.colors.inputText, fontSize: t.fontSizes.md },
491
+ ]}
383
492
  value={text}
384
493
  onChangeText={setText}
385
494
  placeholder={isConnecting ? "Connecting…" : placeholder}
@@ -405,16 +514,25 @@ export function MessageComposer({
405
514
  activeOpacity={0.75}
406
515
  style={[
407
516
  styles.sendBtn,
408
- { backgroundColor: canSend ? t.colors.sendButtonBackground : t.colors.border },
517
+ {
518
+ backgroundColor: canSend
519
+ ? t.colors.sendButtonBackground
520
+ : t.colors.border,
521
+ },
409
522
  ]}
410
- accessibilityLabel={isConnecting ? "Connecting, please wait" : "Send message"}
523
+ accessibilityLabel={
524
+ isConnecting ? "Connecting, please wait" : "Send message"
525
+ }
411
526
  >
412
527
  {isSending ? (
413
528
  <ActivityIndicator size="small" color={t.colors.sendButtonIcon} />
414
529
  ) : isConnecting ? (
415
530
  <ActivityIndicator size="small" color={t.colors.textMuted} />
416
531
  ) : (
417
- <SendPlaneIcon size={18} color={canSend ? t.colors.sendButtonIcon : t.colors.textMuted} />
532
+ <SendPlaneIcon
533
+ size={18}
534
+ color={canSend ? t.colors.sendButtonIcon : t.colors.textMuted}
535
+ />
418
536
  )}
419
537
  </TouchableOpacity>
420
538
  </View>