@droppii-org/chat-mobile 0.2.44 → 0.2.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/lib/module/hooks/message/usePinMessage.js +12 -8
  2. package/lib/module/hooks/message/usePinMessage.js.map +1 -1
  3. package/lib/module/screens/chat-detail/ChatComposer.js +87 -69
  4. package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
  5. package/lib/module/screens/chat-detail/ChatDetail.js +39 -34
  6. package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
  7. package/lib/module/screens/chat-detail/ChatListLegend.js +16 -8
  8. package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
  9. package/lib/module/screens/chat-detail/hooks/useChatComposerAnimation.js +7 -65
  10. package/lib/module/screens/chat-detail/hooks/useChatComposerAnimation.js.map +1 -1
  11. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +6 -1
  12. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
  13. package/lib/module/store/pinnedMessage.js +10 -5
  14. package/lib/module/store/pinnedMessage.js.map +1 -1
  15. package/lib/module/translation/resources/i18n.js +1 -1
  16. package/lib/module/translation/resources/i18n.js.map +1 -1
  17. package/lib/typescript/src/hooks/message/usePinMessage.d.ts.map +1 -1
  18. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts +5 -1
  19. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
  20. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
  21. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts +15 -1
  22. package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -1
  23. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerAnimation.d.ts +2 -3
  24. package/lib/typescript/src/screens/chat-detail/hooks/useChatComposerAnimation.d.ts.map +1 -1
  25. package/lib/typescript/src/store/pinnedMessage.d.ts +2 -1
  26. package/lib/typescript/src/store/pinnedMessage.d.ts.map +1 -1
  27. package/package.json +2 -2
  28. package/src/hooks/message/usePinMessage.ts +16 -8
  29. package/src/screens/chat-detail/ChatComposer.tsx +132 -99
  30. package/src/screens/chat-detail/ChatDetail.tsx +41 -37
  31. package/src/screens/chat-detail/ChatListLegend.tsx +36 -7
  32. package/src/screens/chat-detail/hooks/useChatComposerAnimation.ts +11 -106
  33. package/src/screens/chat-detail/legend/LegendChatMessage.tsx +6 -1
  34. package/src/store/pinnedMessage.ts +20 -6
  35. package/src/translation/resources/i18n.ts +1 -1
@@ -8,16 +8,16 @@ import { usePinnedMessageStore } from "../../store/pinnedMessage.js";
8
8
  import { useUserStore } from "../../store/user.js";
9
9
  import { UIUtils } from "../../utils/UIUtils.js";
10
10
  import { trans } from "../../translation/index.js";
11
- const MAX_PINNED_MESSAGES = 5;
11
+ const PINNED_MESSAGES_PAGE_SIZE = 5;
12
12
  export const fetchPinnedMessages = async conversationID => {
13
13
  const result = await OpenIMSDK.getPinnedMessageList({
14
14
  conversationID,
15
15
  offset: 0,
16
- pageSize: MAX_PINNED_MESSAGES
16
+ pageSize: PINNED_MESSAGES_PAGE_SIZE
17
17
  });
18
18
  const previouslyPinnedIds = new Set(usePinnedMessageStore.getState().messages.map(msg => msg.clientMsgID));
19
19
  const pinnedIds = new Set(result.messageList.map(msg => msg.clientMsgID));
20
- usePinnedMessageStore.getState().setMessages(result.messageList, result.totalCount);
20
+ usePinnedMessageStore.getState().setMessages(result.messageList, result.totalCount, result.remainingPinCount);
21
21
 
22
22
  // Reconcile the per-message `isPinned` flag (used by the toolbox and the
23
23
  // pinned badge) with the authoritative list from the server — messages
@@ -41,10 +41,12 @@ export const fetchPinnedMessages = async conversationID => {
41
41
  }
42
42
  });
43
43
  };
44
- const showPinLimitReachedModal = () => {
44
+ const showPinLimitReachedModal = maxCount => {
45
45
  UIUtils.alert.open({
46
46
  title: trans('chat:pin_limit_title'),
47
- message: trans('chat:pin_limit_desc'),
47
+ message: trans('chat:pin_limit_desc', {
48
+ maxCount
49
+ }),
48
50
  primaryIndex: 0,
49
51
  buttons: [{
50
52
  label: trans('chat:pin_limit_primary'),
@@ -55,6 +57,8 @@ const showPinLimitReachedModal = () => {
55
57
  };
56
58
  export const usePinMessage = conversationID => {
57
59
  const pinnedMessages = usePinnedMessageStore(state => state.messages);
60
+ const totalCount = usePinnedMessageStore(state => state.totalCount);
61
+ const remainingPinCount = usePinnedMessageStore(state => state.remainingPinCount);
58
62
  const addMessage = usePinnedMessageStore(state => state.addMessage);
59
63
  const removeMessage = usePinnedMessageStore(state => state.removeMessage);
60
64
  const reset = usePinnedMessageStore(state => state.reset);
@@ -69,8 +73,8 @@ export const usePinMessage = conversationID => {
69
73
  }, [conversationID, reset]);
70
74
  const pinMessage = useCallback(async message => {
71
75
  if (!conversationID) return;
72
- if (pinnedMessages.length >= MAX_PINNED_MESSAGES) {
73
- showPinLimitReachedModal();
76
+ if (remainingPinCount <= 0) {
77
+ showPinLimitReachedModal(totalCount + remainingPinCount);
74
78
  return;
75
79
  }
76
80
  try {
@@ -93,7 +97,7 @@ export const usePinMessage = conversationID => {
93
97
  theme: 'error'
94
98
  });
95
99
  }
96
- }, [conversationID, pinnedMessages.length, addMessage]);
100
+ }, [conversationID, remainingPinCount, totalCount, addMessage]);
97
101
  const unpinMessage = useCallback(async message => {
98
102
  if (!conversationID) return;
99
103
  try {
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","OpenIMSDK","useConversationStore","useMessageStore","usePinnedMessageStore","useUserStore","UIUtils","trans","MAX_PINNED_MESSAGES","fetchPinnedMessages","conversationID","result","getPinnedMessageList","offset","pageSize","previouslyPinnedIds","Set","getState","messages","map","msg","clientMsgID","pinnedIds","messageList","setMessages","totalCount","updateOneMessage","forEach","isPinned","has","showPinLimitReachedModal","alert","open","title","message","primaryIndex","buttons","label","kind","onPress","usePinMessage","pinnedMessages","state","addMessage","removeMessage","reset","catch","error","console","pinMessage","length","pinMsg","pinnedByUserID","user","userID","pinnedTime","Date","now","toast","theme","unpinMessage","unpinMsg","undefined","syncPinnedMessagesOnEvent","currentConversationId"],"sourceRoot":"../../../../src","sources":["hooks/message/usePinMessage.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","OpenIMSDK","useConversationStore","useMessageStore","usePinnedMessageStore","useUserStore","UIUtils","trans","PINNED_MESSAGES_PAGE_SIZE","fetchPinnedMessages","conversationID","result","getPinnedMessageList","offset","pageSize","previouslyPinnedIds","Set","getState","messages","map","msg","clientMsgID","pinnedIds","messageList","setMessages","totalCount","remainingPinCount","updateOneMessage","forEach","isPinned","has","showPinLimitReachedModal","maxCount","alert","open","title","message","primaryIndex","buttons","label","kind","onPress","usePinMessage","pinnedMessages","state","addMessage","removeMessage","reset","catch","error","console","pinMessage","pinMsg","pinnedByUserID","user","userID","pinnedTime","Date","now","toast","theme","unpinMessage","unpinMsg","undefined","syncPinnedMessagesOnEvent","currentConversationId"],"sourceRoot":"../../../../src","sources":["hooks/message/usePinMessage.ts"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ import { memo, useCallback, useEffect, useMemo, useRef } from 'react';
4
4
  import { Platform, StyleSheet } from 'react-native';
5
5
  import { debounce } from 'lodash';
6
6
  import Reanimated from 'react-native-reanimated';
7
+ import { KeyboardStickyView } from 'react-native-keyboard-controller';
7
8
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
8
9
  import { KContainer, KColors, KImage, KButton, KLabel } from '@droppii/libs';
9
10
  const IS_IOS = Platform.OS === 'ios';
@@ -25,11 +26,13 @@ import { ReactFlowsNodeTypes } from "../../types/flows.js";
25
26
  import { useAttachmentMapping } from "./hooks/useAttachmentMapping.js";
26
27
  import { useChatCompose } from "../../hooks/useChatCompose.js";
27
28
  import { ChatCurrentQuotedMessage } from "./ChatCurrentQuotedMessage.js";
28
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
29
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
29
30
  export const ChatComposer = /*#__PURE__*/memo(({
30
31
  isEmptyMessage = false,
31
32
  pannelActions,
32
- isDisableCompose = false
33
+ isDisableCompose = false,
34
+ composerRef,
35
+ onComposerLayout
33
36
  }) => {
34
37
  const insets = useSafeAreaInsets();
35
38
  const {
@@ -56,7 +59,6 @@ export const ChatComposer = /*#__PURE__*/memo(({
56
59
  toggleAttachmentVisibility,
57
60
  closeAttachment
58
61
  } = useChatComposerAnimation({
59
- isAttachmentOpen,
60
62
  panelHeight,
61
63
  onAttachmentOpenChange: setIsAttachmentOpen
62
64
  });
@@ -70,7 +72,7 @@ export const ChatComposer = /*#__PURE__*/memo(({
70
72
  }, [compose]);
71
73
  const handleInputFocus = useCallback(() => {
72
74
  setIsInputFocused(true);
73
- if (isAttachmentOpen) closeAttachment();
75
+ if (isAttachmentOpen) closeAttachment(true);
74
76
  }, [closeAttachment, isAttachmentOpen, setIsInputFocused]);
75
77
  const handleInputBlur = useCallback(() => {
76
78
  setIsInputFocused(false);
@@ -137,8 +139,10 @@ export const ChatComposer = /*#__PURE__*/memo(({
137
139
  if (type === 'file') return compose.removeFile(data);
138
140
  return compose.removeImage(data);
139
141
  }, [compose]);
142
+ let content;
143
+ const isNewBotConversation = isBotConversation && conversationFlow?.flowCurrentStep?.type === ReactFlowsNodeTypes.Start && isEmptyMessage;
140
144
  if (isDisableCompose) {
141
- return /*#__PURE__*/_jsxs(KContainer.View, {
145
+ content = /*#__PURE__*/_jsxs(KContainer.View, {
142
146
  row: true,
143
147
  alignItems: true,
144
148
  justifyContent: true,
@@ -154,9 +158,8 @@ export const ChatComposer = /*#__PURE__*/memo(({
154
158
  children: "Ng\u01B0\u1EDDi d\xF9ng n\xE0y kh\xF4ng c\xF2n kh\u1EA3 d\u1EE5ng"
155
159
  })]
156
160
  });
157
- }
158
- if (isBotConversation && conversationFlow?.flowCurrentStep?.type === ReactFlowsNodeTypes.Start && isEmptyMessage) {
159
- return /*#__PURE__*/_jsx(KContainer.View, {
161
+ } else if (isNewBotConversation) {
162
+ content = /*#__PURE__*/_jsx(KContainer.View, {
160
163
  padding: '1.5rem',
161
164
  paddingB: 0,
162
165
  children: /*#__PURE__*/_jsx(KButton.Solid, {
@@ -171,69 +174,84 @@ export const ChatComposer = /*#__PURE__*/memo(({
171
174
  onPress: onStartConversationFlow
172
175
  })
173
176
  });
177
+ } else {
178
+ content = /*#__PURE__*/_jsxs(KContainer.View, {
179
+ background: '#F9F9FA',
180
+ children: [/*#__PURE__*/_jsx(ChatCurrentQuotedMessage, {}), /*#__PURE__*/_jsx(ChatQuickActions, {
181
+ visible: true,
182
+ actions: DEFAULT_QUICK_ACTIONS,
183
+ onActionPress: action => console.log('[ChatComposer] quick action:', action.id)
184
+ }), compose.showLinkPreview && /*#__PURE__*/_jsx(ChatLinkPreview, {
185
+ metadata: compose.urlMetadata,
186
+ isLoading: compose.isMetadataLoading,
187
+ onDismiss: compose.dismissPreview
188
+ }), /*#__PURE__*/_jsx(AttachmentPreview, {
189
+ visible: compose.isImagePreviewVisible || compose.isFilePreviewVisible,
190
+ attachments: attachments,
191
+ onRemove: onRemove
192
+ }), /*#__PURE__*/_jsxs(KContainer.View, {
193
+ row: true,
194
+ alignItems: true,
195
+ paddingH: "0.75rem",
196
+ paddingT: "0.75rem",
197
+ paddingB: "0.75rem",
198
+ style: inputRowStyle,
199
+ children: [/*#__PURE__*/_jsx(KContainer.Touchable, {
200
+ onPress: toggleAttachmentVisibility,
201
+ center: true,
202
+ br: "round",
203
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
204
+ name: isAttachmentOpen ? 'close-circle-o' : 'plus-circle-o',
205
+ size: 24,
206
+ color: isAttachmentOpen ? KColors.palette.primary.w400 : KColors.palette.gray.w600
207
+ })
208
+ }), /*#__PURE__*/_jsx(ChatMessageInput, {
209
+ value: compose.text,
210
+ placeholder: "Nh\u1EADp tin nh\u1EAFn...",
211
+ onChangeText: handleChangeText,
212
+ onFocus: handleInputFocus,
213
+ onBlur: handleInputBlur,
214
+ onContentSizeChange: handleInputContentSizeChange,
215
+ isInputFocused: isInputFocused,
216
+ isMultilineInput: isMultilineInput,
217
+ inputRef: inputRef
218
+ }), /*#__PURE__*/_jsx(KContainer.Touchable, {
219
+ onPress: compose.isUploading ? undefined : handleSend,
220
+ pointerEvents: compose.isUploading ? 'none' : 'auto',
221
+ width: 40,
222
+ height: 40,
223
+ center: true,
224
+ br: "round",
225
+ background: compose.isUploading ? KColors.palette.gray.w400 : KColors.palette.primary.w400,
226
+ marginL: "0.75rem",
227
+ opacity: compose.isUploading ? 0.6 : 1,
228
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
229
+ name: "send",
230
+ provider: "MaterialCommunityIcons",
231
+ size: 20,
232
+ color: KColors.white
233
+ })
234
+ })]
235
+ })]
236
+ });
174
237
  }
175
- return /*#__PURE__*/_jsxs(KContainer.View, {
176
- background: 'rgba(131, 137, 157, 0.05)',
177
- children: [/*#__PURE__*/_jsx(ChatCurrentQuotedMessage, {}), /*#__PURE__*/_jsx(ChatQuickActions, {
178
- visible: true,
179
- actions: DEFAULT_QUICK_ACTIONS,
180
- onActionPress: action => console.log('[ChatComposer] quick action:', action.id)
181
- }), compose.showLinkPreview && /*#__PURE__*/_jsx(ChatLinkPreview, {
182
- metadata: compose.urlMetadata,
183
- isLoading: compose.isMetadataLoading,
184
- onDismiss: compose.dismissPreview
185
- }), /*#__PURE__*/_jsx(AttachmentPreview, {
186
- visible: compose.isImagePreviewVisible || compose.isFilePreviewVisible,
187
- attachments: attachments,
188
- onRemove: onRemove
189
- }), /*#__PURE__*/_jsxs(KContainer.View, {
190
- row: true,
191
- alignItems: true,
192
- paddingH: "0.75rem",
193
- paddingT: "0.75rem",
194
- paddingB: "0.75rem",
195
- style: inputRowStyle,
196
- children: [/*#__PURE__*/_jsx(KContainer.Touchable, {
197
- onPress: toggleAttachmentVisibility,
198
- center: true,
199
- br: "round",
200
- children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
201
- name: isAttachmentOpen ? 'close-circle-o' : 'plus-circle-o',
202
- size: 24,
203
- color: isAttachmentOpen ? KColors.palette.primary.w400 : KColors.palette.gray.w600
238
+ return /*#__PURE__*/_jsxs(_Fragment, {
239
+ children: [/*#__PURE__*/_jsx(KeyboardStickyView, {
240
+ ref: composerRef,
241
+ onLayout: onComposerLayout,
242
+ offset: {
243
+ closed: 0,
244
+ opened: insets.bottom
245
+ },
246
+ children: content
247
+ }), /*#__PURE__*/_jsx(KContainer.VisibleView, {
248
+ visible: !isDisableCompose && !isNewBotConversation,
249
+ children: /*#__PURE__*/_jsx(Reanimated.View, {
250
+ style: [styles.accessorySlot, accessorySlotStyle],
251
+ pointerEvents: isAttachmentOpen ? 'auto' : 'none',
252
+ children: /*#__PURE__*/_jsx(ChatAttachmentPanel, {
253
+ actions: resolvedPannelActons
204
254
  })
205
- }), /*#__PURE__*/_jsx(ChatMessageInput, {
206
- value: compose.text,
207
- placeholder: "Nh\u1EADp tin nh\u1EAFn...",
208
- onChangeText: handleChangeText,
209
- onFocus: handleInputFocus,
210
- onBlur: handleInputBlur,
211
- onContentSizeChange: handleInputContentSizeChange,
212
- isInputFocused: isInputFocused,
213
- isMultilineInput: isMultilineInput,
214
- inputRef: inputRef
215
- }), /*#__PURE__*/_jsx(KContainer.Touchable, {
216
- onPress: compose.isUploading ? undefined : handleSend,
217
- pointerEvents: compose.isUploading ? 'none' : 'auto',
218
- width: 40,
219
- height: 40,
220
- center: true,
221
- br: "round",
222
- background: compose.isUploading ? KColors.palette.gray.w400 : KColors.palette.primary.w400,
223
- marginL: "0.75rem",
224
- opacity: compose.isUploading ? 0.6 : 1,
225
- children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
226
- name: "send",
227
- provider: "MaterialCommunityIcons",
228
- size: 20,
229
- color: KColors.white
230
- })
231
- })]
232
- }), /*#__PURE__*/_jsx(Reanimated.View, {
233
- style: [styles.accessorySlot, accessorySlotStyle],
234
- pointerEvents: isAttachmentOpen ? 'auto' : 'none',
235
- children: /*#__PURE__*/_jsx(ChatAttachmentPanel, {
236
- actions: resolvedPannelActons
237
255
  })
238
256
  })]
239
257
  });
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useCallback","useEffect","useMemo","useRef","Platform","StyleSheet","debounce","Reanimated","useSafeAreaInsets","KContainer","KColors","KImage","KButton","KLabel","IS_IOS","OS","INPUT_LINE_HEIGHT","WRAPPED_HEIGHT_THRESHOLD","ChatQuickActions","ChatAttachmentPanel","ChatLinkPreview","ChatMessageInput","AttachmentPreview","DEFAULT_QUICK_ACTIONS","getAttachmentPanelHeight","DEFAULT_PANNEL_ACTIONS","DChatPannelActionItemType","useChatComposerState","useChatComposerAnimation","useChatDetailContext","trans","useRunFlow","ReactFlowsNodeTypes","useAttachmentMapping","useChatCompose","ChatCurrentQuotedMessage","jsx","_jsx","jsxs","_jsxs","ChatComposer","isEmptyMessage","pannelActions","isDisableCompose","insets","isBotConversation","conversationFlow","mutate","runFlow","isPending","compose","isAttachmentOpen","setIsAttachmentOpen","isInputFocused","setIsInputFocused","setIsInputWrapped","isMultilineInput","inputRef","text","panelHeight","length","accessorySlotStyle","toggleAttachmentVisibility","closeAttachment","onAttachmentOpenChange","handleSend","isUploading","canSend","send","error","__DEV__","console","handleInputFocus","handleInputBlur","handleChangeText","setText","handleInputContentSizeChange","event","height","nativeEvent","contentSize","onStartConversationFlow","groupId","flowCurrentStep","id","actionId","childId","plainText","addImagesRef","addImages","current","debouncedImagePickerRef","leading","trailing","addFilesRef","addFiles","debouncedFilePickerRef","resolvedPannelActons","map","p","onPress","Gallery","Documents","inputRowStyle","paddingBottom","bottom","attachments","selectedImages","selectedFiles","onRemove","type","data","removeFile","removeImage","View","row","alignItems","justifyContent","children","marginR","VectorIcons","name","size","color","palette","gray","w600","Text","typo","Start","padding","paddingB","Solid","label","stretch","icon","vectorName","loading","background","visible","actions","onActionPress","action","log","showLinkPreview","metadata","urlMetadata","isLoading","isMetadataLoading","onDismiss","dismissPreview","isImagePreviewVisible","isFilePreviewVisible","paddingH","paddingT","style","Touchable","center","br","primary","w400","value","placeholder","onChangeText","onFocus","onBlur","onContentSizeChange","undefined","pointerEvents","width","marginL","opacity","provider","white","styles","accessorySlot","displayName","create","overflow","backgroundColor","w25"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatComposer.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["memo","useCallback","useEffect","useMemo","useRef","Platform","StyleSheet","debounce","Reanimated","KeyboardStickyView","useSafeAreaInsets","KContainer","KColors","KImage","KButton","KLabel","IS_IOS","OS","INPUT_LINE_HEIGHT","WRAPPED_HEIGHT_THRESHOLD","ChatQuickActions","ChatAttachmentPanel","ChatLinkPreview","ChatMessageInput","AttachmentPreview","DEFAULT_QUICK_ACTIONS","getAttachmentPanelHeight","DEFAULT_PANNEL_ACTIONS","DChatPannelActionItemType","useChatComposerState","useChatComposerAnimation","useChatDetailContext","trans","useRunFlow","ReactFlowsNodeTypes","useAttachmentMapping","useChatCompose","ChatCurrentQuotedMessage","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ChatComposer","isEmptyMessage","pannelActions","isDisableCompose","composerRef","onComposerLayout","insets","isBotConversation","conversationFlow","mutate","runFlow","isPending","compose","isAttachmentOpen","setIsAttachmentOpen","isInputFocused","setIsInputFocused","setIsInputWrapped","isMultilineInput","inputRef","text","panelHeight","length","accessorySlotStyle","toggleAttachmentVisibility","closeAttachment","onAttachmentOpenChange","handleSend","isUploading","canSend","send","error","__DEV__","console","handleInputFocus","handleInputBlur","handleChangeText","setText","handleInputContentSizeChange","event","height","nativeEvent","contentSize","onStartConversationFlow","groupId","flowCurrentStep","id","actionId","childId","plainText","addImagesRef","addImages","current","debouncedImagePickerRef","leading","trailing","addFilesRef","addFiles","debouncedFilePickerRef","resolvedPannelActons","map","p","onPress","Gallery","Documents","inputRowStyle","paddingBottom","bottom","attachments","selectedImages","selectedFiles","onRemove","type","data","removeFile","removeImage","content","isNewBotConversation","Start","View","row","alignItems","justifyContent","children","marginR","VectorIcons","name","size","color","palette","gray","w600","Text","typo","padding","paddingB","Solid","label","stretch","icon","vectorName","loading","background","visible","actions","onActionPress","action","log","showLinkPreview","metadata","urlMetadata","isLoading","isMetadataLoading","onDismiss","dismissPreview","isImagePreviewVisible","isFilePreviewVisible","paddingH","paddingT","style","Touchable","center","br","primary","w400","value","placeholder","onChangeText","onFocus","onBlur","onContentSizeChange","undefined","pointerEvents","width","marginL","opacity","provider","white","ref","onLayout","offset","closed","opened","VisibleView","styles","accessorySlot","displayName","create","overflow","backgroundColor","w25"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatComposer.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  import { memo, useCallback, useEffect, useMemo, useRef } from 'react';
4
- import { DeviceEventEmitter, Platform, StyleSheet } from 'react-native';
5
- import { KeyboardAvoidingView } from 'react-native-keyboard-controller';
4
+ import { DeviceEventEmitter } from 'react-native';
5
+ import { useKeyboardChatComposerInset, useKeyboardScrollToEnd } from '@legendapp/list/keyboard';
6
6
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
7
7
  import { KContainer } from '@droppii/libs';
8
8
  import { useNavigation } from '@react-navigation/native';
@@ -101,10 +101,18 @@ const ChatDetail = /*#__PURE__*/memo(({
101
101
  }, [conversationId]);
102
102
  const resolvedShowAddMember = showAddMember ?? shouldShowAddMember(conversation);
103
103
  const insets = useSafeAreaInsets();
104
- const keyboardVerticalOffset = useMemo(() => Platform.select({
105
- android: insets.bottom,
106
- default: 0
107
- }), [insets.bottom]);
104
+ const listRef = useRef(null);
105
+ const composerRef = useRef(null);
106
+ const {
107
+ contentInsetEndAdjustment,
108
+ onComposerLayout
109
+ } = useKeyboardChatComposerInset(listRef, composerRef);
110
+ const {
111
+ freeze,
112
+ scrollMessageToEnd
113
+ } = useKeyboardScrollToEnd({
114
+ listRef
115
+ });
108
116
  const handlePressUrl = useCallback(url => {
109
117
  onPressUrl?.(normalizeUrl(url));
110
118
  }, [onPressUrl]);
@@ -138,29 +146,31 @@ const ChatDetail = /*#__PURE__*/memo(({
138
146
  messages: pinnedMessages,
139
147
  currentUserId: currentUser?.userID,
140
148
  onPress: handlePressPinnedMessageBar
141
- }), /*#__PURE__*/_jsxs(KeyboardAvoidingView, {
142
- style: styles.keyboardAvoiding,
143
- behavior: "padding",
144
- keyboardVerticalOffset: keyboardVerticalOffset,
145
- children: [/*#__PURE__*/_jsx(ChatListLegend, {
146
- messages: messages,
147
- conversationId: conversationId,
148
- customMessageItemFactory: customMessageItemFactory,
149
- isLoading: initLoading || isLoadingConversation,
150
- onLoadMoreOld: getMoreOldMessages,
151
- hasMoreOld: hasMoreOld,
152
- moreOldLoading: moreOldLoading,
153
- onLoadMoreNew: getMoreNewMessages,
154
- hasMoreNew: hasMoreNew,
155
- moreNewLoading: moreNewLoading,
156
- onMediaPress: handleMediaPress,
157
- onPressUrl: handlePressUrl,
158
- onLongPress: handleMessageLongPress
159
- }), /*#__PURE__*/_jsx(ChatComposer, {
160
- isEmptyMessage: messages?.length === 0,
161
- pannelActions: pannelActions,
162
- isDisableCompose: botStatus === DBotStatusValue.INACTIVE
163
- })]
149
+ }), /*#__PURE__*/_jsx(ChatListLegend, {
150
+ messages: messages,
151
+ conversationId: conversationId,
152
+ customMessageItemFactory: customMessageItemFactory,
153
+ isLoading: initLoading || isLoadingConversation,
154
+ onLoadMoreOld: getMoreOldMessages,
155
+ hasMoreOld: hasMoreOld,
156
+ moreOldLoading: moreOldLoading,
157
+ onLoadMoreNew: getMoreNewMessages,
158
+ hasMoreNew: hasMoreNew,
159
+ moreNewLoading: moreNewLoading,
160
+ onMediaPress: handleMediaPress,
161
+ onPressUrl: handlePressUrl,
162
+ onLongPress: handleMessageLongPress,
163
+ listRef: listRef,
164
+ contentInsetEndAdjustment: contentInsetEndAdjustment,
165
+ freeze: freeze,
166
+ scrollMessageToEnd: scrollMessageToEnd,
167
+ keyboardOffset: insets.bottom
168
+ }), /*#__PURE__*/_jsx(ChatComposer, {
169
+ isEmptyMessage: messages?.length === 0,
170
+ pannelActions: pannelActions,
171
+ isDisableCompose: botStatus === DBotStatusValue.INACTIVE,
172
+ composerRef: composerRef,
173
+ onComposerLayout: onComposerLayout
164
174
  }), /*#__PURE__*/_jsx(MediaViewerModal, {
165
175
  ref: mediaViewerRef
166
176
  }), /*#__PURE__*/_jsx(MessageToolboxOverlay, {
@@ -173,10 +183,5 @@ const ChatDetail = /*#__PURE__*/memo(({
173
183
  });
174
184
  });
175
185
  ChatDetail.displayName = 'ChatDetail';
176
- const styles = StyleSheet.create({
177
- keyboardAvoiding: {
178
- flex: 1
179
- }
180
- });
181
186
  export default ChatDetail;
182
187
  //# sourceMappingURL=ChatDetail.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useCallback","useEffect","useMemo","useRef","DeviceEventEmitter","Platform","StyleSheet","KeyboardAvoidingView","useSafeAreaInsets","KContainer","useNavigation","usePinMessage","PinnedMessageBar","openPinnedMessagesSheet","MediaViewerModal","useConversation","useConversationStore","useUserStore","ChatDetailHeader","ChatListLegend","ChatComposer","shouldShowAddMember","normalizeUrl","MessageToolboxOverlay","DBotStatusValue","useGetConversationDetail","useGetStatusConversationBot","PeerType","useMessages","getBotId","ChatEvent","jsx","_jsx","jsxs","_jsxs","ChatDetail","targetConversationId","targetUserId","targetGroupId","targetBotId","showAddMember","onBack","onPressSearch","onPressAddMember","onPressMenu","onPressAvatar","onPressUrl","customMessageItemFactory","pannelActions","navigation","mediaViewerRef","messageToolboxRef","currentUser","s","user","conversationId","isLoading","isLoadingConversation","conversation","botId","peerType","Bot","undefined","data","botInfo","status","botStatus","handleBackDefault","goBack","handleMediaPress","items","index","current","show","messages","initLoading","moreOldLoading","moreNewLoading","getMoreOldMessages","getMoreNewMessages","hasMoreOld","hasMoreNew","pinnedMessages","pinMessage","unpinMessage","getState","setCurrentConversation","resolvedShowAddMember","insets","keyboardVerticalOffset","select","android","bottom","default","handlePressUrl","url","handleMessageLongPress","message","rect","handlePressPinnedMessageBar","currentUserId","userID","onPressMessage","emit","ScrollToMessage","clientMessageId","clientMsgID","Page","flex","edges","children","onPress","style","styles","keyboardAvoiding","behavior","onLoadMoreOld","onLoadMoreNew","onMediaPress","onLongPress","isEmptyMessage","length","isDisableCompose","INACTIVE","ref","onPinMessage","onUnpinMessage","displayName","create"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatDetail.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["memo","useCallback","useEffect","useMemo","useRef","DeviceEventEmitter","useKeyboardChatComposerInset","useKeyboardScrollToEnd","useSafeAreaInsets","KContainer","useNavigation","usePinMessage","PinnedMessageBar","openPinnedMessagesSheet","MediaViewerModal","useConversation","useConversationStore","useUserStore","ChatDetailHeader","ChatListLegend","ChatComposer","shouldShowAddMember","normalizeUrl","MessageToolboxOverlay","DBotStatusValue","useGetConversationDetail","useGetStatusConversationBot","PeerType","useMessages","getBotId","ChatEvent","jsx","_jsx","jsxs","_jsxs","ChatDetail","targetConversationId","targetUserId","targetGroupId","targetBotId","showAddMember","onBack","onPressSearch","onPressAddMember","onPressMenu","onPressAvatar","onPressUrl","customMessageItemFactory","pannelActions","navigation","mediaViewerRef","messageToolboxRef","currentUser","s","user","conversationId","isLoading","isLoadingConversation","conversation","botId","peerType","Bot","undefined","data","botInfo","status","botStatus","handleBackDefault","goBack","handleMediaPress","items","index","current","show","messages","initLoading","moreOldLoading","moreNewLoading","getMoreOldMessages","getMoreNewMessages","hasMoreOld","hasMoreNew","pinnedMessages","pinMessage","unpinMessage","getState","setCurrentConversation","resolvedShowAddMember","insets","listRef","composerRef","contentInsetEndAdjustment","onComposerLayout","freeze","scrollMessageToEnd","handlePressUrl","url","handleMessageLongPress","message","rect","handlePressPinnedMessageBar","currentUserId","userID","onPressMessage","emit","ScrollToMessage","clientMessageId","clientMsgID","Page","flex","edges","children","onPress","onLoadMoreOld","onLoadMoreNew","onMediaPress","onLongPress","keyboardOffset","bottom","isEmptyMessage","length","isDisableCompose","INACTIVE","ref","onPinMessage","onUnpinMessage","displayName"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatDetail.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,7 @@
3
3
  import { memo, useCallback, useMemo, useEffect, useRef, useState } from 'react';
4
4
  import { DeviceEventEmitter, StyleSheet } from 'react-native';
5
5
  import Animated, { useSharedValue, useAnimatedStyle, withSpring } from 'react-native-reanimated';
6
- import { LegendList } from '@legendapp/list/react-native';
6
+ import { KeyboardAwareLegendList } from '@legendapp/list/keyboard';
7
7
  import { KContainer, KColors, KSpacingValue, KLabel } from '@droppii/libs';
8
8
  import { precomputeLegendListData } from "../../utils/legendListMessage.js";
9
9
  import { LegendChatMessage } from "./legend/LegendChatMessage.js";
@@ -33,7 +33,12 @@ export const ChatListLegend = /*#__PURE__*/memo(({
33
33
  hasMoreNew,
34
34
  onMediaPress,
35
35
  onPressUrl,
36
- onLongPress
36
+ onLongPress,
37
+ listRef,
38
+ contentInsetEndAdjustment,
39
+ freeze,
40
+ scrollMessageToEnd,
41
+ keyboardOffset
37
42
  }) => {
38
43
  const currentUserId = useUserStore(s => s.user?.userID);
39
44
  // Precompute all message data in single pass (O(n))
@@ -55,7 +60,6 @@ export const ChatListLegend = /*#__PURE__*/memo(({
55
60
  const {
56
61
  mutate: resetFlow
57
62
  } = useResetFlow();
58
- const listRef = useRef(null);
59
63
  const buttonOpacity = useSharedValue(0);
60
64
  const isAtBottomRef = useRef(true);
61
65
  const scrollDebounceRef = useRef(undefined);
@@ -219,8 +223,9 @@ export const ChatListLegend = /*#__PURE__*/memo(({
219
223
  if (hasMoreNew) {
220
224
  onLoadMoreOld?.(false);
221
225
  } else {
222
- listRef.current?.scrollToEnd({
223
- animated: true
226
+ scrollMessageToEnd({
227
+ animated: true,
228
+ closeKeyboard: false
224
229
  });
225
230
  buttonOpacity.value = withSpring(0, {
226
231
  duration: 300
@@ -228,7 +233,7 @@ export const ChatListLegend = /*#__PURE__*/memo(({
228
233
  isAtBottomRef.current = true;
229
234
  setShowBadge(false);
230
235
  }
231
- }, [buttonOpacity, onLoadMoreOld, hasMoreNew]);
236
+ }, [hasMoreNew, onLoadMoreOld, scrollMessageToEnd, buttonOpacity]);
232
237
  const animatedButtonStyle = useAnimatedStyle(() => ({
233
238
  opacity: buttonOpacity.value,
234
239
  pointerEvents: buttonOpacity.value === 0 ? 'none' : 'auto'
@@ -278,7 +283,7 @@ export const ChatListLegend = /*#__PURE__*/memo(({
278
283
  bottomSubscription.remove();
279
284
  subscription.remove();
280
285
  };
281
- }, [messages, applicationType, searchMessages, conversationId, buttonOpacity, handleScrollToBottom]);
286
+ }, [messages, applicationType, searchMessages, conversationId, buttonOpacity, handleScrollToBottom, listRef]);
282
287
 
283
288
  // if (isLoading) {
284
289
  // return (
@@ -295,7 +300,7 @@ export const ChatListLegend = /*#__PURE__*/memo(({
295
300
  flex: true,
296
301
  background: KColors.white,
297
302
  style: styles.container,
298
- children: [/*#__PURE__*/_jsx(LegendList, {
303
+ children: [/*#__PURE__*/_jsx(KeyboardAwareLegendList, {
299
304
  ref: listRef,
300
305
  data: messages,
301
306
  renderItem: renderItem,
@@ -306,6 +311,9 @@ export const ChatListLegend = /*#__PURE__*/memo(({
306
311
  alignItemsAtEnd: true,
307
312
  maintainVisibleContentPosition: maintainVisiblePositionConfig,
308
313
  maintainScrollAtEnd: maintainScrollConfig,
314
+ contentInsetEndAdjustment: contentInsetEndAdjustment,
315
+ freeze: freeze,
316
+ keyboardOffset: keyboardOffset,
309
317
  scrollEventThrottle: 16,
310
318
  onScroll: handleScroll,
311
319
  contentContainerStyle: styles.content,