react-native-chatbot-ai 0.1.19 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/module/components/Drawer/DeleteSessionPopup.js +113 -0
- package/lib/module/components/Drawer/DeleteSessionPopup.js.map +1 -0
- package/lib/module/components/Drawer/DrawerContent.js +21 -8
- package/lib/module/components/Drawer/DrawerContent.js.map +1 -1
- package/lib/module/components/Drawer/RenameSessionPopup.js +121 -0
- package/lib/module/components/Drawer/RenameSessionPopup.js.map +1 -0
- package/lib/module/components/Drawer/SearchInput.js +10 -3
- package/lib/module/components/Drawer/SearchInput.js.map +1 -1
- package/lib/module/components/Drawer/SessionItem.js +36 -20
- package/lib/module/components/Drawer/SessionItem.js.map +1 -1
- package/lib/module/components/Drawer/SessionList.js +2 -5
- package/lib/module/components/Drawer/SessionList.js.map +1 -1
- package/lib/module/components/Drawer/SessionOptionsBottomSheet.js +129 -0
- package/lib/module/components/Drawer/SessionOptionsBottomSheet.js.map +1 -0
- package/lib/module/components/Drawer/ShareSessionPopup.js +132 -0
- package/lib/module/components/Drawer/ShareSessionPopup.js.map +1 -0
- package/lib/module/components/chat/ChatEmpty.js +15 -4
- package/lib/module/components/chat/ChatEmpty.js.map +1 -1
- package/lib/module/components/chat/ChatHeader.js +10 -4
- package/lib/module/components/chat/ChatHeader.js.map +1 -1
- package/lib/module/components/chat/ChatMessageList.js +75 -24
- package/lib/module/components/chat/ChatMessageList.js.map +1 -1
- package/lib/module/components/chat/SuggestionItem.js +2 -1
- package/lib/module/components/chat/SuggestionItem.js.map +1 -1
- package/lib/module/components/chat/footer/index.js +77 -15
- package/lib/module/components/chat/footer/index.js.map +1 -1
- package/lib/module/components/chat/footer/item/UploadImageItem.js +21 -1
- package/lib/module/components/chat/footer/item/UploadImageItem.js.map +1 -1
- package/lib/module/components/chat/index.js +7 -6
- package/lib/module/components/chat/index.js.map +1 -1
- package/lib/module/components/chat/item/ChatAIAnswerMessageItem.js +36 -5
- package/lib/module/components/chat/item/ChatAIAnswerMessageItem.js.map +1 -1
- package/lib/module/components/chat/item/DeeplinkItem.js +30 -2
- package/lib/module/components/chat/item/DeeplinkItem.js.map +1 -1
- package/lib/module/components/chat/item/MessageActionsBar.js +243 -0
- package/lib/module/components/chat/item/MessageActionsBar.js.map +1 -0
- package/lib/module/components/chat/item/actions/ActionButton.js +56 -0
- package/lib/module/components/chat/item/actions/ActionButton.js.map +1 -0
- package/lib/module/components/portal/BottomSheet.js +245 -0
- package/lib/module/components/portal/BottomSheet.js.map +1 -0
- package/lib/module/components/portal/Popup.js +278 -0
- package/lib/module/components/portal/Popup.js.map +1 -0
- package/lib/module/components/portal/index.js +11 -5
- package/lib/module/components/portal/index.js.map +1 -1
- package/lib/module/components/product/CardHorizontal.js +44 -7
- package/lib/module/components/product/CardHorizontal.js.map +1 -1
- package/lib/module/constants/events.js +33 -0
- package/lib/module/constants/events.js.map +1 -1
- package/lib/module/constants/index.js +5 -1
- package/lib/module/constants/index.js.map +1 -1
- package/lib/module/constants/query.js +5 -1
- package/lib/module/constants/query.js.map +1 -1
- package/lib/module/context/ChatContext.js +9 -3
- package/lib/module/context/ChatContext.js.map +1 -1
- package/lib/module/hooks/message/useSendMessage.js +21 -3
- package/lib/module/hooks/message/useSendMessage.js.map +1 -1
- package/lib/module/hooks/message/useStreamMessage.js +10 -3
- package/lib/module/hooks/message/useStreamMessage.js.map +1 -1
- package/lib/module/hooks/messageActions/index.js +13 -0
- package/lib/module/hooks/messageActions/index.js.map +1 -0
- package/lib/module/hooks/messageActions/useAudioPlayer.js +269 -0
- package/lib/module/hooks/messageActions/useAudioPlayer.js.map +1 -0
- package/lib/module/hooks/messageActions/useCopyToClipboard.js +38 -0
- package/lib/module/hooks/messageActions/useCopyToClipboard.js.map +1 -0
- package/lib/module/hooks/messageActions/useFeedback.js +93 -0
- package/lib/module/hooks/messageActions/useFeedback.js.map +1 -0
- package/lib/module/hooks/messageActions/useSendFeedback.js +24 -0
- package/lib/module/hooks/messageActions/useSendFeedback.js.map +1 -0
- package/lib/module/hooks/messageActions/useShareMessage.js +128 -0
- package/lib/module/hooks/messageActions/useShareMessage.js.map +1 -0
- package/lib/module/hooks/session/useDeleteSession.js +23 -0
- package/lib/module/hooks/session/useDeleteSession.js.map +1 -0
- package/lib/module/hooks/session/useRenameSession.js +28 -0
- package/lib/module/hooks/session/useRenameSession.js.map +1 -0
- package/lib/module/hooks/session/useSearchSessions.js +5 -1
- package/lib/module/hooks/session/useSearchSessions.js.map +1 -1
- package/lib/module/hooks/session/useShareSession.js +16 -0
- package/lib/module/hooks/session/useShareSession.js.map +1 -0
- package/lib/module/hooks/upload/useImageUpload.js +2 -1
- package/lib/module/hooks/upload/useImageUpload.js.map +1 -1
- package/lib/module/services/endpoints.js +6 -1
- package/lib/module/services/endpoints.js.map +1 -1
- package/lib/module/services/index.js +1 -0
- package/lib/module/services/index.js.map +1 -1
- package/lib/module/services/playbackService.js +22 -0
- package/lib/module/services/playbackService.js.map +1 -0
- package/lib/module/store/audioPlayer.js +75 -0
- package/lib/module/store/audioPlayer.js.map +1 -0
- package/lib/module/store/messageActions.js +160 -0
- package/lib/module/store/messageActions.js.map +1 -0
- package/lib/module/store/session.js +6 -3
- package/lib/module/store/session.js.map +1 -1
- package/lib/module/translation/index.js +21 -25
- package/lib/module/translation/index.js.map +1 -1
- package/lib/module/translation/resources/i18n.js +39 -0
- package/lib/module/translation/resources/i18n.js.map +1 -0
- package/lib/module/types/chat.js +12 -1
- package/lib/module/types/chat.js.map +1 -1
- package/lib/module/types/index.js +1 -0
- package/lib/module/types/index.js.map +1 -1
- package/lib/module/types/messageActions.js +56 -0
- package/lib/module/types/messageActions.js.map +1 -0
- package/lib/module/utils/textCleaner.js +67 -0
- package/lib/module/utils/textCleaner.js.map +1 -0
- package/lib/module/utils/ui.js +27 -1
- package/lib/module/utils/ui.js.map +1 -1
- package/lib/typescript/src/components/Drawer/DeleteSessionPopup.d.ts +3 -0
- package/lib/typescript/src/components/Drawer/DeleteSessionPopup.d.ts.map +1 -0
- package/lib/typescript/src/components/Drawer/DrawerContent.d.ts.map +1 -1
- package/lib/typescript/src/components/Drawer/RenameSessionPopup.d.ts +3 -0
- package/lib/typescript/src/components/Drawer/RenameSessionPopup.d.ts.map +1 -0
- package/lib/typescript/src/components/Drawer/SearchInput.d.ts.map +1 -1
- package/lib/typescript/src/components/Drawer/SessionItem.d.ts.map +1 -1
- package/lib/typescript/src/components/Drawer/SessionList.d.ts.map +1 -1
- package/lib/typescript/src/components/Drawer/SessionOptionsBottomSheet.d.ts +3 -0
- package/lib/typescript/src/components/Drawer/SessionOptionsBottomSheet.d.ts.map +1 -0
- package/lib/typescript/src/components/Drawer/ShareSessionPopup.d.ts +3 -0
- package/lib/typescript/src/components/Drawer/ShareSessionPopup.d.ts.map +1 -0
- package/lib/typescript/src/components/chat/ChatEmpty.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/ChatMessageList.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/SuggestionItem.d.ts +3 -2
- package/lib/typescript/src/components/chat/SuggestionItem.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/footer/index.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/footer/item/UploadImageItem.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/index.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/item/ChatAIAnswerMessageItem.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/item/DeeplinkItem.d.ts +2 -1
- package/lib/typescript/src/components/chat/item/DeeplinkItem.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/item/MessageActionsBar.d.ts +16 -0
- package/lib/typescript/src/components/chat/item/MessageActionsBar.d.ts.map +1 -0
- package/lib/typescript/src/components/chat/item/actions/ActionButton.d.ts +19 -0
- package/lib/typescript/src/components/chat/item/actions/ActionButton.d.ts.map +1 -0
- package/lib/typescript/src/components/portal/BottomSheet.d.ts +8 -0
- package/lib/typescript/src/components/portal/BottomSheet.d.ts.map +1 -0
- package/lib/typescript/src/components/portal/Popup.d.ts +4 -0
- package/lib/typescript/src/components/portal/Popup.d.ts.map +1 -0
- package/lib/typescript/src/components/portal/index.d.ts.map +1 -1
- package/lib/typescript/src/components/product/CardHorizontal.d.ts +3 -2
- package/lib/typescript/src/components/product/CardHorizontal.d.ts.map +1 -1
- package/lib/typescript/src/constants/events.d.ts +33 -0
- package/lib/typescript/src/constants/events.d.ts.map +1 -1
- package/lib/typescript/src/constants/index.d.ts +5 -1
- package/lib/typescript/src/constants/index.d.ts.map +1 -1
- package/lib/typescript/src/constants/query.d.ts +4 -0
- package/lib/typescript/src/constants/query.d.ts.map +1 -1
- package/lib/typescript/src/context/ChatContext.d.ts.map +1 -1
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts +2 -2
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -1
- package/lib/typescript/src/hooks/message/useStreamMessage.d.ts.map +1 -1
- package/lib/typescript/src/hooks/messageActions/index.d.ts +10 -0
- package/lib/typescript/src/hooks/messageActions/index.d.ts.map +1 -0
- package/lib/typescript/src/hooks/messageActions/useAudioPlayer.d.ts +14 -0
- package/lib/typescript/src/hooks/messageActions/useAudioPlayer.d.ts.map +1 -0
- package/lib/typescript/src/hooks/messageActions/useCopyToClipboard.d.ts +9 -0
- package/lib/typescript/src/hooks/messageActions/useCopyToClipboard.d.ts.map +1 -0
- package/lib/typescript/src/hooks/messageActions/useFeedback.d.ts +18 -0
- package/lib/typescript/src/hooks/messageActions/useFeedback.d.ts.map +1 -0
- package/lib/typescript/src/hooks/messageActions/useSendFeedback.d.ts +6 -0
- package/lib/typescript/src/hooks/messageActions/useSendFeedback.d.ts.map +1 -0
- package/lib/typescript/src/hooks/messageActions/useShareMessage.d.ts +12 -0
- package/lib/typescript/src/hooks/messageActions/useShareMessage.d.ts.map +1 -0
- package/lib/typescript/src/hooks/session/useDeleteSession.d.ts +2 -0
- package/lib/typescript/src/hooks/session/useDeleteSession.d.ts.map +1 -0
- package/lib/typescript/src/hooks/session/useRenameSession.d.ts +2 -0
- package/lib/typescript/src/hooks/session/useRenameSession.d.ts.map +1 -0
- package/lib/typescript/src/hooks/session/useSearchSessions.d.ts +1 -1
- package/lib/typescript/src/hooks/session/useSearchSessions.d.ts.map +1 -1
- package/lib/typescript/src/hooks/session/useShareSession.d.ts +2 -0
- package/lib/typescript/src/hooks/session/useShareSession.d.ts.map +1 -0
- package/lib/typescript/src/hooks/upload/useImageUpload.d.ts +1 -1
- package/lib/typescript/src/hooks/upload/useImageUpload.d.ts.map +1 -1
- package/lib/typescript/src/services/endpoints.d.ts +5 -0
- package/lib/typescript/src/services/endpoints.d.ts.map +1 -1
- package/lib/typescript/src/services/index.d.ts +1 -0
- package/lib/typescript/src/services/index.d.ts.map +1 -1
- package/lib/typescript/src/services/playbackService.d.ts +2 -0
- package/lib/typescript/src/services/playbackService.d.ts.map +1 -0
- package/lib/typescript/src/store/audioPlayer.d.ts +27 -0
- package/lib/typescript/src/store/audioPlayer.d.ts.map +1 -0
- package/lib/typescript/src/store/messageActions.d.ts +9 -0
- package/lib/typescript/src/store/messageActions.d.ts.map +1 -0
- package/lib/typescript/src/store/session.d.ts.map +1 -1
- package/lib/typescript/src/translation/index.d.ts +3 -4
- package/lib/typescript/src/translation/index.d.ts.map +1 -1
- package/lib/typescript/src/translation/resources/i18n.d.ts +5 -0
- package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -0
- package/lib/typescript/src/types/chat.d.ts +16 -1
- package/lib/typescript/src/types/chat.d.ts.map +1 -1
- package/lib/typescript/src/types/dto.d.ts +11 -0
- package/lib/typescript/src/types/dto.d.ts.map +1 -1
- package/lib/typescript/src/types/index.d.ts +1 -0
- package/lib/typescript/src/types/index.d.ts.map +1 -1
- package/lib/typescript/src/types/messageActions.d.ts +85 -0
- package/lib/typescript/src/types/messageActions.d.ts.map +1 -0
- package/lib/typescript/src/types/ui.d.ts +16 -1
- package/lib/typescript/src/types/ui.d.ts.map +1 -1
- package/lib/typescript/src/utils/textCleaner.d.ts +30 -0
- package/lib/typescript/src/utils/textCleaner.d.ts.map +1 -0
- package/lib/typescript/src/utils/ui.d.ts +12 -1
- package/lib/typescript/src/utils/ui.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/components/Drawer/DeleteSessionPopup.tsx +121 -0
- package/src/components/Drawer/DrawerContent.tsx +23 -7
- package/src/components/Drawer/RenameSessionPopup.tsx +145 -0
- package/src/components/Drawer/SearchInput.tsx +11 -2
- package/src/components/Drawer/SessionItem.tsx +22 -8
- package/src/components/Drawer/SessionList.tsx +0 -2
- package/src/components/Drawer/SessionOptionsBottomSheet.tsx +138 -0
- package/src/components/Drawer/ShareSessionPopup.tsx +145 -0
- package/src/components/chat/ChatEmpty.tsx +15 -5
- package/src/components/chat/ChatHeader.tsx +9 -4
- package/src/components/chat/ChatMessageList.tsx +78 -18
- package/src/components/chat/SuggestionItem.tsx +4 -3
- package/src/components/chat/footer/index.tsx +95 -14
- package/src/components/chat/footer/item/UploadImageItem.tsx +21 -1
- package/src/components/chat/index.tsx +8 -11
- package/src/components/chat/item/ChatAIAnswerMessageItem.tsx +55 -6
- package/src/components/chat/item/DeeplinkItem.tsx +30 -2
- package/src/components/chat/item/MessageActionsBar.tsx +326 -0
- package/src/components/chat/item/actions/ActionButton.tsx +65 -0
- package/src/components/portal/BottomSheet.tsx +307 -0
- package/src/components/portal/Popup.tsx +345 -0
- package/src/components/portal/index.tsx +5 -1
- package/src/components/product/CardHorizontal.tsx +45 -10
- package/src/constants/events.ts +34 -0
- package/src/constants/index.ts +6 -1
- package/src/constants/query.ts +4 -0
- package/src/context/ChatContext.tsx +6 -0
- package/src/hooks/message/useSendMessage.ts +47 -4
- package/src/hooks/message/useStreamMessage.ts +15 -4
- package/src/hooks/messageActions/index.ts +10 -0
- package/src/hooks/messageActions/useAudioPlayer.ts +346 -0
- package/src/hooks/messageActions/useCopyToClipboard.ts +38 -0
- package/src/hooks/messageActions/useFeedback.ts +114 -0
- package/src/hooks/messageActions/useSendFeedback.ts +31 -0
- package/src/hooks/messageActions/useShareMessage.ts +146 -0
- package/src/hooks/session/useDeleteSession.ts +25 -0
- package/src/hooks/session/useRenameSession.ts +37 -0
- package/src/hooks/session/useSearchSessions.ts +6 -1
- package/src/hooks/session/useShareSession.ts +22 -0
- package/src/hooks/upload/useImageUpload.ts +6 -2
- package/src/ignore.d.ts +20 -1
- package/src/services/endpoints.ts +10 -0
- package/src/services/index.ts +1 -0
- package/src/services/playbackService.ts +22 -0
- package/src/store/audioPlayer.ts +112 -0
- package/src/store/messageActions.ts +161 -0
- package/src/store/session.ts +4 -2
- package/src/translation/index.ts +27 -19
- package/src/translation/resources/i18n.ts +45 -0
- package/src/types/chat.ts +21 -1
- package/src/types/dto.ts +14 -0
- package/src/types/index.ts +1 -0
- package/src/types/messageActions.ts +131 -0
- package/src/types/ui.ts +19 -1
- package/src/utils/textCleaner.ts +65 -0
- package/src/utils/ui.tsx +29 -2
- package/lib/module/translation/resources/vi.js +0 -12
- package/lib/module/translation/resources/vi.js.map +0 -1
- package/lib/typescript/src/translation/resources/vi.d.ts +0 -11
- package/lib/typescript/src/translation/resources/vi.d.ts.map +0 -1
- package/src/translation/resources/vi.ts +0 -10
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StyleSheet } from 'react-native';
|
|
4
|
+
import { KContainer, KLabel, KColors, KSpacingValue, KImage } from '@droppii/libs';
|
|
5
|
+
import UIUtils from "../../utils/ui.js";
|
|
6
|
+
import { trans } from "../../translation/index.js";
|
|
7
|
+
import { openRenameSessionPopup } from "./RenameSessionPopup.js";
|
|
8
|
+
import { openShareSessionPopup } from "./ShareSessionPopup.js";
|
|
9
|
+
import { openDeleteSessionPopup } from "./DeleteSessionPopup.js";
|
|
10
|
+
import { GAEvents } from "../../constants/events.js";
|
|
11
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
|
+
const OptionItem = ({
|
|
13
|
+
icon,
|
|
14
|
+
label,
|
|
15
|
+
onPress,
|
|
16
|
+
isDanger
|
|
17
|
+
}) => {
|
|
18
|
+
const color = isDanger ? KColors.danger.normal : KColors.gray.dark;
|
|
19
|
+
return (
|
|
20
|
+
/*#__PURE__*/
|
|
21
|
+
// @ts-ignore
|
|
22
|
+
_jsxs(KContainer.Touchable, {
|
|
23
|
+
onPress: onPress,
|
|
24
|
+
style: styles.optionItem,
|
|
25
|
+
children: [/*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
26
|
+
name: icon,
|
|
27
|
+
size: 20,
|
|
28
|
+
color: color
|
|
29
|
+
}), /*#__PURE__*/_jsx(KLabel.Text, {
|
|
30
|
+
typo: "TextMdMedium",
|
|
31
|
+
color: color,
|
|
32
|
+
style: styles.optionLabel,
|
|
33
|
+
children: label
|
|
34
|
+
})]
|
|
35
|
+
})
|
|
36
|
+
);
|
|
37
|
+
};
|
|
38
|
+
export const openSessionOptionsBottomSheet = (session, closeDrawer, logGA) => {
|
|
39
|
+
const handleRename = () => {
|
|
40
|
+
UIUtils.bottomSheet.dismiss();
|
|
41
|
+
// Close drawer first, then open popup
|
|
42
|
+
closeDrawer?.();
|
|
43
|
+
setTimeout(() => {
|
|
44
|
+
openRenameSessionPopup(session);
|
|
45
|
+
}, 300);
|
|
46
|
+
logGA?.(GAEvents.chatDetailRenameBtnTap, {
|
|
47
|
+
conversation_id: session?.id
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
const handleShare = () => {
|
|
51
|
+
UIUtils.bottomSheet.dismiss();
|
|
52
|
+
// Close drawer first, then open popup
|
|
53
|
+
closeDrawer?.();
|
|
54
|
+
setTimeout(() => {
|
|
55
|
+
openShareSessionPopup(session);
|
|
56
|
+
}, 300);
|
|
57
|
+
logGA?.(GAEvents.chatDetailShareBtnTap, {
|
|
58
|
+
conversation_id: session?.id
|
|
59
|
+
});
|
|
60
|
+
};
|
|
61
|
+
const handleDelete = () => {
|
|
62
|
+
UIUtils.bottomSheet.dismiss();
|
|
63
|
+
// Close drawer first, then open popup
|
|
64
|
+
closeDrawer?.();
|
|
65
|
+
setTimeout(() => {
|
|
66
|
+
openDeleteSessionPopup(session, logGA);
|
|
67
|
+
}, 300);
|
|
68
|
+
};
|
|
69
|
+
const OptionsContent = () => {
|
|
70
|
+
return (
|
|
71
|
+
/*#__PURE__*/
|
|
72
|
+
// @ts-ignore
|
|
73
|
+
_jsxs(KContainer.View, {
|
|
74
|
+
style: styles.container,
|
|
75
|
+
children: [/*#__PURE__*/_jsx(OptionItem, {
|
|
76
|
+
icon: "edit-o",
|
|
77
|
+
label: trans('chatbot:session_rename'),
|
|
78
|
+
onPress: handleRename
|
|
79
|
+
}), /*#__PURE__*/_jsx(KContainer.View, {
|
|
80
|
+
style: styles.divider
|
|
81
|
+
}), /*#__PURE__*/_jsx(OptionItem, {
|
|
82
|
+
icon: "share-o",
|
|
83
|
+
label: trans('chatbot:session_share'),
|
|
84
|
+
onPress: handleShare
|
|
85
|
+
}), /*#__PURE__*/_jsx(KContainer.View, {
|
|
86
|
+
style: styles.divider
|
|
87
|
+
}), /*#__PURE__*/_jsx(OptionItem, {
|
|
88
|
+
icon: "trash-alt-o-1",
|
|
89
|
+
label: trans('chatbot:session_delete'),
|
|
90
|
+
onPress: handleDelete,
|
|
91
|
+
isDanger: true
|
|
92
|
+
})]
|
|
93
|
+
})
|
|
94
|
+
);
|
|
95
|
+
};
|
|
96
|
+
UIUtils.bottomSheet.open({
|
|
97
|
+
header: {
|
|
98
|
+
title: {
|
|
99
|
+
text: trans('chatbot:session_options_title')
|
|
100
|
+
},
|
|
101
|
+
showCloseButton: true
|
|
102
|
+
},
|
|
103
|
+
body: {
|
|
104
|
+
renderContent: () => /*#__PURE__*/_jsx(OptionsContent, {})
|
|
105
|
+
},
|
|
106
|
+
touchOutsideToDismiss: true
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
const styles = StyleSheet.create({
|
|
110
|
+
container: {
|
|
111
|
+
paddingHorizontal: KSpacingValue['1rem'],
|
|
112
|
+
paddingVertical: KSpacingValue['0.5rem']
|
|
113
|
+
},
|
|
114
|
+
optionItem: {
|
|
115
|
+
flexDirection: 'row',
|
|
116
|
+
alignItems: 'center',
|
|
117
|
+
paddingVertical: KSpacingValue['1rem'],
|
|
118
|
+
paddingHorizontal: KSpacingValue['0.5rem']
|
|
119
|
+
},
|
|
120
|
+
optionLabel: {
|
|
121
|
+
marginLeft: KSpacingValue['0.75rem']
|
|
122
|
+
},
|
|
123
|
+
divider: {
|
|
124
|
+
height: 1,
|
|
125
|
+
backgroundColor: KColors.border.light,
|
|
126
|
+
marginHorizontal: KSpacingValue['0.5rem']
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=SessionOptionsBottomSheet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSheet","KContainer","KLabel","KColors","KSpacingValue","KImage","UIUtils","trans","openRenameSessionPopup","openShareSessionPopup","openDeleteSessionPopup","GAEvents","jsx","_jsx","jsxs","_jsxs","OptionItem","icon","label","onPress","isDanger","color","danger","normal","gray","dark","Touchable","style","styles","optionItem","children","VectorIcons","name","size","Text","typo","optionLabel","openSessionOptionsBottomSheet","session","closeDrawer","logGA","handleRename","bottomSheet","dismiss","setTimeout","chatDetailRenameBtnTap","conversation_id","id","handleShare","chatDetailShareBtnTap","handleDelete","OptionsContent","View","container","divider","open","header","title","text","showCloseButton","body","renderContent","touchOutsideToDismiss","create","paddingHorizontal","paddingVertical","flexDirection","alignItems","marginLeft","height","backgroundColor","border","light","marginHorizontal"],"sourceRoot":"../../../../src","sources":["components/Drawer/SessionOptionsBottomSheet.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useState, useEffect } from 'react';
|
|
4
|
+
import { StyleSheet } from 'react-native';
|
|
5
|
+
import { KContainer, KLabel, KColors, KSpacingValue, KInput } from '@droppii/libs';
|
|
6
|
+
import { useShareSession } from "../../hooks/session/useShareSession.js";
|
|
7
|
+
import UIUtils from "../../utils/ui.js";
|
|
8
|
+
import { trans } from "../../translation/index.js";
|
|
9
|
+
import Clipboard from '@react-native-clipboard/clipboard';
|
|
10
|
+
import { useChatContext } from "../../context/ChatContext.js";
|
|
11
|
+
import { GAEvents } from "../../constants/events.js";
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
const truncateText = (text, maxLength) => {
|
|
14
|
+
if (text.length <= maxLength) return text;
|
|
15
|
+
return text.substring(0, maxLength) + '…';
|
|
16
|
+
};
|
|
17
|
+
const ShareContent = ({
|
|
18
|
+
session,
|
|
19
|
+
onConfirmRef
|
|
20
|
+
}) => {
|
|
21
|
+
const {
|
|
22
|
+
mutateAsync: shareSession
|
|
23
|
+
} = useShareSession();
|
|
24
|
+
const {
|
|
25
|
+
chatbotUrl,
|
|
26
|
+
logGA
|
|
27
|
+
} = useChatContext();
|
|
28
|
+
const [shareUrl, setShareUrl] = useState('');
|
|
29
|
+
|
|
30
|
+
// Generate share URL based on chatbotUrl
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
setShareUrl(`${chatbotUrl}/shared/${session.id}`);
|
|
33
|
+
}, [chatbotUrl, session.id]);
|
|
34
|
+
|
|
35
|
+
// Expose handleConfirm via ref
|
|
36
|
+
onConfirmRef.current = useCallback(async () => {
|
|
37
|
+
try {
|
|
38
|
+
const response = await shareSession(session.id);
|
|
39
|
+
if (response) {
|
|
40
|
+
// Copy the generated share URL to clipboard
|
|
41
|
+
Clipboard.setString(shareUrl);
|
|
42
|
+
UIUtils.toast.showSuccess(trans('chatbot:share_session_success'));
|
|
43
|
+
UIUtils.popup.dismiss();
|
|
44
|
+
logGA(GAEvents.shareChatModalCopyBtnTap, {
|
|
45
|
+
conversation_id: session.id
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
} catch (err) {
|
|
49
|
+
UIUtils.toast.showError(err);
|
|
50
|
+
}
|
|
51
|
+
}, [session.id, shareSession, shareUrl, logGA]);
|
|
52
|
+
const truncatedName = truncateText(session.title, 50);
|
|
53
|
+
const descriptionTemplate = trans('chatbot:share_session_description');
|
|
54
|
+
const parts = descriptionTemplate.split('{sessionName}');
|
|
55
|
+
return (
|
|
56
|
+
/*#__PURE__*/
|
|
57
|
+
// @ts-ignore
|
|
58
|
+
_jsxs(KContainer.View, {
|
|
59
|
+
style: styles.container,
|
|
60
|
+
children: [/*#__PURE__*/_jsxs(KLabel.Text, {
|
|
61
|
+
typo: "TextMdNormal",
|
|
62
|
+
color: KColors.gray.dark,
|
|
63
|
+
style: styles.description,
|
|
64
|
+
children: [parts[0], /*#__PURE__*/_jsx(KLabel.Text, {
|
|
65
|
+
typo: "TextMdBold",
|
|
66
|
+
color: KColors.gray.dark,
|
|
67
|
+
children: truncatedName
|
|
68
|
+
}), parts[1]]
|
|
69
|
+
}), /*#__PURE__*/_jsx(KContainer.View, {
|
|
70
|
+
style: [styles.inputWrapper],
|
|
71
|
+
children: /*#__PURE__*/_jsx(KInput.TextBox, {
|
|
72
|
+
value: shareUrl,
|
|
73
|
+
label: trans('chatbot:share_session_link_label'),
|
|
74
|
+
labelTypo: "TextMdBold",
|
|
75
|
+
disabled: true,
|
|
76
|
+
withBorder: true,
|
|
77
|
+
height: 40,
|
|
78
|
+
border: "entire",
|
|
79
|
+
radius: "borderless"
|
|
80
|
+
})
|
|
81
|
+
})]
|
|
82
|
+
})
|
|
83
|
+
);
|
|
84
|
+
};
|
|
85
|
+
export const openShareSessionPopup = session => {
|
|
86
|
+
const onConfirmRef = {
|
|
87
|
+
current: null
|
|
88
|
+
};
|
|
89
|
+
UIUtils.popup.open({
|
|
90
|
+
header: {
|
|
91
|
+
title: {
|
|
92
|
+
text: trans('chatbot:share_session_title')
|
|
93
|
+
},
|
|
94
|
+
showCloseButton: true,
|
|
95
|
+
alignment: 'left'
|
|
96
|
+
},
|
|
97
|
+
body: {
|
|
98
|
+
scrollable: false,
|
|
99
|
+
renderContent: () => /*#__PURE__*/_jsx(ShareContent, {
|
|
100
|
+
session: session,
|
|
101
|
+
onConfirmRef: onConfirmRef
|
|
102
|
+
})
|
|
103
|
+
},
|
|
104
|
+
actions: {
|
|
105
|
+
type: 'horizontal-button',
|
|
106
|
+
buttons: [{
|
|
107
|
+
kind: 'light',
|
|
108
|
+
label: trans('chatbot:share_session_cancel'),
|
|
109
|
+
weight: 'medium',
|
|
110
|
+
onPress: () => UIUtils.popup.dismiss()
|
|
111
|
+
}, {
|
|
112
|
+
kind: 'primary',
|
|
113
|
+
label: trans('chatbot:share_session_confirm'),
|
|
114
|
+
weight: 'medium',
|
|
115
|
+
onPress: () => onConfirmRef.current?.()
|
|
116
|
+
}]
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
const styles = StyleSheet.create({
|
|
121
|
+
container: {
|
|
122
|
+
paddingVertical: KSpacingValue['1rem'],
|
|
123
|
+
paddingHorizontal: KSpacingValue['1rem']
|
|
124
|
+
},
|
|
125
|
+
description: {
|
|
126
|
+
marginBottom: KSpacingValue['1rem']
|
|
127
|
+
},
|
|
128
|
+
inputWrapper: {
|
|
129
|
+
paddingBottom: KSpacingValue['0.5rem']
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
//# sourceMappingURL=ShareSessionPopup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useState","useEffect","StyleSheet","KContainer","KLabel","KColors","KSpacingValue","KInput","useShareSession","UIUtils","trans","Clipboard","useChatContext","GAEvents","jsx","_jsx","jsxs","_jsxs","truncateText","text","maxLength","length","substring","ShareContent","session","onConfirmRef","mutateAsync","shareSession","chatbotUrl","logGA","shareUrl","setShareUrl","id","current","response","setString","toast","showSuccess","popup","dismiss","shareChatModalCopyBtnTap","conversation_id","err","showError","truncatedName","title","descriptionTemplate","parts","split","View","style","styles","container","children","Text","typo","color","gray","dark","description","inputWrapper","TextBox","value","label","labelTypo","disabled","withBorder","height","border","radius","openShareSessionPopup","open","header","showCloseButton","alignment","body","scrollable","renderContent","actions","type","buttons","kind","weight","onPress","create","paddingVertical","paddingHorizontal","marginBottom","paddingBottom"],"sourceRoot":"../../../../src","sources":["components/Drawer/ShareSessionPopup.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,7 +6,10 @@ import { useFetchSuggestions } from "../../hooks/suggestions/useFetchSuggestions
|
|
|
6
6
|
import SuggestionItem from "./SuggestionItem.js";
|
|
7
7
|
import { useSendMessage } from "../../hooks/message/useSendMessage.js";
|
|
8
8
|
import debounce from 'lodash/debounce';
|
|
9
|
-
import
|
|
9
|
+
import { SendActionLogType } from "../../types/index.js";
|
|
10
|
+
import { trans } from "../../translation/index.js";
|
|
11
|
+
import { useChatContext } from "../../context/ChatContext.js";
|
|
12
|
+
import { GAEvents } from "../../constants/events.js";
|
|
10
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
14
|
const ChatEmpty = () => {
|
|
12
15
|
const {
|
|
@@ -15,8 +18,15 @@ const ChatEmpty = () => {
|
|
|
15
18
|
const {
|
|
16
19
|
onSendMessage
|
|
17
20
|
} = useSendMessage();
|
|
18
|
-
const
|
|
19
|
-
|
|
21
|
+
const logGA = useChatContext().logGA;
|
|
22
|
+
const onPress = debounce((item, index) => {
|
|
23
|
+
logGA(GAEvents.newChatNewChatPrmSuggTap, {
|
|
24
|
+
suggestion_id: item.suggestion_id,
|
|
25
|
+
suggestion_content: item.content,
|
|
26
|
+
suggestion_cate: item.category,
|
|
27
|
+
order: index
|
|
28
|
+
});
|
|
29
|
+
onSendMessage(item.content, undefined, SendActionLogType.promptSuggestion);
|
|
20
30
|
}, 200);
|
|
21
31
|
return /*#__PURE__*/_jsxs(KContainer.ScrollView, {
|
|
22
32
|
contentContainerStyle: styles.container,
|
|
@@ -38,8 +48,9 @@ const ChatEmpty = () => {
|
|
|
38
48
|
color: KColors.gray.normal,
|
|
39
49
|
children: trans('chat_empty_description_2')
|
|
40
50
|
})]
|
|
41
|
-
}), data?.suggestions?.map(item => /*#__PURE__*/_jsx(SuggestionItem, {
|
|
51
|
+
}), data?.suggestions?.map((item, index) => /*#__PURE__*/_jsx(SuggestionItem, {
|
|
42
52
|
item: item,
|
|
53
|
+
index: index,
|
|
43
54
|
onPressItem: onPress
|
|
44
55
|
}, item.suggestion_id)), /*#__PURE__*/_jsx(KLabel.Text, {
|
|
45
56
|
typo: "TextSmNormal",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["KColors","KContainer","KLabel","KSpacingValue","StyleSheet","Platform","useFetchSuggestions","SuggestionItem","useSendMessage","debounce","trans","jsx","_jsx","jsxs","_jsxs","ChatEmpty","data","onSendMessage","onPress","item","content","ScrollView","contentContainerStyle","styles","container","style","transformStyle","children","Text","typo","center","View","color","gray","normal","suggestions","map","onPressItem","
|
|
1
|
+
{"version":3,"names":["KColors","KContainer","KLabel","KSpacingValue","StyleSheet","Platform","useFetchSuggestions","SuggestionItem","useSendMessage","debounce","SendActionLogType","trans","useChatContext","GAEvents","jsx","_jsx","jsxs","_jsxs","ChatEmpty","data","onSendMessage","logGA","onPress","item","index","newChatNewChatPrmSuggTap","suggestion_id","suggestion_content","content","suggestion_cate","category","order","undefined","promptSuggestion","ScrollView","contentContainerStyle","styles","container","style","transformStyle","children","Text","typo","center","View","color","gray","normal","suggestions","map","onPressItem","light","textAlign","create","flexGrow","justifyContent","alignItems","padding","gap","transform","OS","scale","scaleY"],"sourceRoot":"../../../../src","sources":["components/chat/ChatEmpty.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,6 +7,8 @@ import { ImageBackground, StatusBar, StyleSheet } from 'react-native';
|
|
|
7
7
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
8
8
|
import useSessionStore from "../../store/session.js";
|
|
9
9
|
import { useChatContext } from "../../context/ChatContext.js";
|
|
10
|
+
import { SessionLogType } from "../../types/chat.js";
|
|
11
|
+
import { GAEvents } from "../../constants/events.js";
|
|
10
12
|
|
|
11
13
|
// Type assertion to fix TypeScript issue with React Native components
|
|
12
14
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -17,11 +19,15 @@ export const ChatHeader = () => {
|
|
|
17
19
|
const setSessionId = useSessionStore(state => state.setSessionId);
|
|
18
20
|
const {
|
|
19
21
|
cartButton,
|
|
20
|
-
openDrawer
|
|
22
|
+
openDrawer,
|
|
23
|
+
logGA
|
|
21
24
|
} = useChatContext();
|
|
22
|
-
const onPressNewSession = () => {
|
|
23
|
-
setSessionId(undefined);
|
|
24
|
-
|
|
25
|
+
const onPressNewSession = useCallback(() => {
|
|
26
|
+
setSessionId(undefined, SessionLogType.newChatBtn);
|
|
27
|
+
logGA(GAEvents.newChatCreateBtnTap, {
|
|
28
|
+
button_type: 'quick_button'
|
|
29
|
+
});
|
|
30
|
+
}, [setSessionId, logGA]);
|
|
25
31
|
const renderStatusBar = useCallback(() => {
|
|
26
32
|
return /*#__PURE__*/_jsx(KContainer.View, {
|
|
27
33
|
height: insets.top,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","KColors","KContainer","KImage","KLabel","KSpacingValue","images","ImageBackground","StatusBar","StyleSheet","useSafeAreaInsets","useSessionStore","useChatContext","jsx","_jsx","jsxs","_jsxs","StatusBarComponent","ImageBackgroundComponent","ChatHeader","insets","setSessionId","state","cartButton","openDrawer","onPressNewSession","undefined","renderStatusBar","View","height","top","background","children","translucent","source","bg_header","resizeMode","style","styles","header","Touchable","button","onPress","VectorIcons","name","size","color","white","Text","flex","typo","create","paddingHorizontal","paddingVertical","flexDirection","gap","alignItems","width","justifyContent"],"sourceRoot":"../../../../src","sources":["components/chat/ChatHeader.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SACEC,OAAO,EACPC,UAAU,EACVC,MAAM,EACNC,MAAM,EACNC,aAAa,QACR,eAAe;AACtB,OAAOC,MAAM,MAAM,8BAAqB;AACxC,SAASC,eAAe,EAAEC,SAAS,EAAEC,UAAU,QAAQ,cAAc;AACrE,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,OAAOC,eAAe,MAAM,wBAAqB;AACjD,SAASC,cAAc,QAAQ,8BAA2B;;
|
|
1
|
+
{"version":3,"names":["useCallback","KColors","KContainer","KImage","KLabel","KSpacingValue","images","ImageBackground","StatusBar","StyleSheet","useSafeAreaInsets","useSessionStore","useChatContext","SessionLogType","GAEvents","jsx","_jsx","jsxs","_jsxs","StatusBarComponent","ImageBackgroundComponent","ChatHeader","insets","setSessionId","state","cartButton","openDrawer","logGA","onPressNewSession","undefined","newChatBtn","newChatCreateBtnTap","button_type","renderStatusBar","View","height","top","background","children","translucent","source","bg_header","resizeMode","style","styles","header","Touchable","button","onPress","VectorIcons","name","size","color","white","Text","flex","typo","create","paddingHorizontal","paddingVertical","flexDirection","gap","alignItems","width","justifyContent"],"sourceRoot":"../../../../src","sources":["components/chat/ChatHeader.tsx"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SACEC,OAAO,EACPC,UAAU,EACVC,MAAM,EACNC,MAAM,EACNC,aAAa,QACR,eAAe;AACtB,OAAOC,MAAM,MAAM,8BAAqB;AACxC,SAASC,eAAe,EAAEC,SAAS,EAAEC,UAAU,QAAQ,cAAc;AACrE,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,OAAOC,eAAe,MAAM,wBAAqB;AACjD,SAASC,cAAc,QAAQ,8BAA2B;AAC1D,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,QAAQ,QAAQ,2BAAwB;;AAEjD;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,MAAMC,kBAAkB,GAAGX,SAEzB;AACF,MAAMY,wBAAwB,GAC5Bb,eAAgD;AAElD,OAAO,MAAMc,UAAU,GAAGA,CAAA,KAAM;EAC9B,MAAMC,MAAM,GAAGZ,iBAAiB,CAAC,CAAC;EAClC,MAAMa,YAAY,GAAGZ,eAAe,CAAEa,KAAK,IAAKA,KAAK,CAACD,YAAY,CAAC;EACnE,MAAM;IAAEE,UAAU;IAAEC,UAAU;IAAEC;EAAM,CAAC,GAAGf,cAAc,CAAC,CAAC;EAE1D,MAAMgB,iBAAiB,GAAG5B,WAAW,CAAC,MAAM;IAC1CuB,YAAY,CAACM,SAAS,EAAEhB,cAAc,CAACiB,UAAU,CAAC;IAClDH,KAAK,CAACb,QAAQ,CAACiB,mBAAmB,EAAE;MAClCC,WAAW,EAAE;IACf,CAAC,CAAC;EACJ,CAAC,EAAE,CAACT,YAAY,EAAEI,KAAK,CAAC,CAAC;EAEzB,MAAMM,eAAe,GAAGjC,WAAW,CAAC,MAAM;IACxC,oBACEgB,IAAA,CAACd,UAAU,CAACgC,IAAI;MAACC,MAAM,EAAEb,MAAM,CAACc,GAAI;MAACC,UAAU,EAAC,aAAa;MAAAC,QAAA,eAC3DtB,IAAA,CAACG,kBAAkB;QAACoB,WAAW;MAAA,CAAE;IAAC,CACnB,CAAC;EAEtB,CAAC,EAAE,CAACjB,MAAM,CAACc,GAAG,CAAC,CAAC;EAChB,oBACElB,KAAA,CAACE,wBAAwB;IAACoB,MAAM,EAAElC,MAAM,CAACmC,SAAU;IAACC,UAAU,EAAC,OAAO;IAAAJ,QAAA,GACnEL,eAAe,CAAC,CAAC,eAClBf,KAAA,CAAChB,UAAU,CAACgC,IAAI;MAACS,KAAK,EAAEC,MAAM,CAACC,MAAO;MAAAP,QAAA,gBACpCtB,IAAA,CAACd,UAAU,CAAC4C,SAAS;QAACH,KAAK,EAAEC,MAAM,CAACG,MAAO;QAACC,OAAO,EAAEtB,UAAW;QAAAY,QAAA,eAC9DtB,IAAA,CAACb,MAAM,CAAC8C,WAAW;UACjBC,IAAI,EAAC,WAAW;UAChBC,IAAI,EAAE,EAAG;UACTC,KAAK,EAAEnD,OAAO,CAACoD;QAAM,CACtB;MAAC,CACkB,CAAC,eACvBrC,IAAA,CAACZ,MAAM,CAACkD,IAAI;QAACC,IAAI;QAACC,IAAI,EAAC,kBAAkB;QAACJ,KAAK,EAAEnD,OAAO,CAACoD,KAAM;QAAAf,QAAA,EAC5D;MAAY,CACF,CAAC,eACdtB,IAAA,CAACd,UAAU,CAAC4C,SAAS;QAACH,KAAK,EAAEC,MAAM,CAACG,MAAO;QAACC,OAAO,EAAEpB,iBAAkB;QAAAU,QAAA,eACrEtB,IAAA,CAACb,MAAM,CAAC8C,WAAW;UACjBC,IAAI,EAAC,iBAAiB;UACtBC,IAAI,EAAE,EAAG;UACTC,KAAK,EAAEnD,OAAO,CAACoD;QAAM,CACtB;MAAC,CACkB,CAAC,EACtB5B,UAAU;IAAA,CACI,CAAC;EAAA,CACM,CAAC;AAE/B,CAAC;AAED,eAAeJ,UAAU;AAEzB,MAAMuB,MAAM,GAAGnC,UAAU,CAACgD,MAAM,CAAC;EAC/BZ,MAAM,EAAE;IACNa,iBAAiB,EAAErD,aAAa,CAAC,SAAS,CAAC;IAC3CsD,eAAe,EAAEtD,aAAa,CAAC,QAAQ,CAAC;IACxCuD,aAAa,EAAE,KAAK;IACpBC,GAAG,EAAExD,aAAa,CAAC,QAAQ,CAAC;IAC5ByD,UAAU,EAAE;EACd,CAAC;EACDf,MAAM,EAAE;IACNgB,KAAK,EAAE,EAAE;IACT5B,MAAM,EAAE,EAAE;IACV6B,cAAc,EAAE,QAAQ;IACxBF,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,23 +1,34 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { FlatList, StyleSheet, DeviceEventEmitter } from 'react-native';
|
|
3
|
+
import { FlatList, StyleSheet, DeviceEventEmitter, View } from 'react-native';
|
|
4
|
+
import { useCallback, useRef, useEffect, useState } from 'react';
|
|
4
5
|
import ChatEmpty from "./ChatEmpty.js";
|
|
5
6
|
import ChatItem from "./item/index.js";
|
|
6
|
-
import { KSpacingValue } from '@droppii/libs';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
// Type assertion to fix TypeScript issue with React Native components
|
|
12
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
import { KSpacingValue, KColors, KImage, KContainer } from '@droppii/libs';
|
|
8
|
+
import { events, GAEvents } from "../../constants/events.js";
|
|
9
|
+
import { useChatContext } from "../../context/ChatContext.js";
|
|
10
|
+
import useSessionStore from "../../store/session.js";
|
|
11
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
12
|
const FlatListComponent = FlatList;
|
|
14
13
|
const ChatMessageList = ({
|
|
15
14
|
messageList = []
|
|
16
15
|
}) => {
|
|
16
|
+
const logGA = useChatContext().logGA;
|
|
17
|
+
const sessionId = useSessionStore(state => state.sessionId);
|
|
17
18
|
const flatListRef = useRef(null);
|
|
18
19
|
const scrollOffsetRef = useRef(0);
|
|
20
|
+
const [showScrollToBottom, setShowScrollToBottom] = useState(false);
|
|
19
21
|
const onScroll = useCallback(event => {
|
|
20
|
-
|
|
22
|
+
const offsetY = event?.nativeEvent?.contentOffset?.y ?? 0;
|
|
23
|
+
scrollOffsetRef.current = offsetY;
|
|
24
|
+
const threshold = 50;
|
|
25
|
+
setShowScrollToBottom(offsetY > threshold);
|
|
26
|
+
}, []);
|
|
27
|
+
const scrollToBottom = useCallback(() => {
|
|
28
|
+
flatListRef.current?.scrollToOffset({
|
|
29
|
+
offset: 0,
|
|
30
|
+
animated: true
|
|
31
|
+
}); // inverted => bottom = offset 0
|
|
21
32
|
}, []);
|
|
22
33
|
useEffect(() => {
|
|
23
34
|
const subExpandThinkingStep = DeviceEventEmitter.addListener(events.expandThinkingStep, isExpand => {
|
|
@@ -37,21 +48,46 @@ const ChatMessageList = ({
|
|
|
37
48
|
subExpandThinkingStep.remove();
|
|
38
49
|
};
|
|
39
50
|
}, []);
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
if (!sessionId) {
|
|
53
|
+
logGA(GAEvents.newChatPageView);
|
|
54
|
+
} else {
|
|
55
|
+
logGA(GAEvents.chatDetailPageView, {
|
|
56
|
+
conversation_id: sessionId
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}, [sessionId, logGA]);
|
|
60
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
61
|
+
style: {
|
|
62
|
+
flex: 1
|
|
63
|
+
},
|
|
64
|
+
children: [/*#__PURE__*/_jsx(FlatListComponent, {
|
|
65
|
+
ref: flatListRef,
|
|
66
|
+
data: messageList,
|
|
67
|
+
renderItem: ({
|
|
68
|
+
item,
|
|
69
|
+
index
|
|
70
|
+
}) => /*#__PURE__*/_jsx(ChatItem, {
|
|
71
|
+
item: item,
|
|
72
|
+
index: index
|
|
73
|
+
}),
|
|
74
|
+
keyExtractor: item => item.id,
|
|
75
|
+
contentContainerStyle: styles.container,
|
|
76
|
+
inverted: true,
|
|
77
|
+
ListEmptyComponent: /*#__PURE__*/_jsx(ChatEmpty, {}),
|
|
78
|
+
onScroll: onScroll,
|
|
79
|
+
scrollEventThrottle: 16
|
|
80
|
+
}), showScrollToBottom && /*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
81
|
+
style: styles.scrollButton,
|
|
82
|
+
onPress: scrollToBottom,
|
|
83
|
+
activeOpacity: 0.7,
|
|
84
|
+
center: true,
|
|
85
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
86
|
+
name: "arrow-down-o",
|
|
87
|
+
size: 16,
|
|
88
|
+
color: KColors.palette.gray.w400
|
|
89
|
+
})
|
|
90
|
+
})]
|
|
55
91
|
});
|
|
56
92
|
};
|
|
57
93
|
export default ChatMessageList;
|
|
@@ -61,6 +97,21 @@ const styles = StyleSheet.create({
|
|
|
61
97
|
gap: KSpacingValue['0.5rem'],
|
|
62
98
|
paddingVertical: KSpacingValue['1rem'],
|
|
63
99
|
justifyContent: 'flex-end'
|
|
100
|
+
},
|
|
101
|
+
scrollButton: {
|
|
102
|
+
position: 'absolute',
|
|
103
|
+
bottom: 20,
|
|
104
|
+
right: 16,
|
|
105
|
+
backgroundColor: KColors.white,
|
|
106
|
+
width: 32,
|
|
107
|
+
height: 32,
|
|
108
|
+
borderRadius: 16,
|
|
109
|
+
shadowColor: '#000',
|
|
110
|
+
shadowOpacity: 0.15,
|
|
111
|
+
shadowRadius: 4,
|
|
112
|
+
elevation: 4,
|
|
113
|
+
justifyContent: 'center',
|
|
114
|
+
alignItems: 'center'
|
|
64
115
|
}
|
|
65
116
|
});
|
|
66
117
|
//# sourceMappingURL=ChatMessageList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["FlatList","StyleSheet","DeviceEventEmitter","ChatEmpty","ChatItem","KSpacingValue","
|
|
1
|
+
{"version":3,"names":["FlatList","StyleSheet","DeviceEventEmitter","View","useCallback","useRef","useEffect","useState","ChatEmpty","ChatItem","KSpacingValue","KColors","KImage","KContainer","events","GAEvents","useChatContext","useSessionStore","jsx","_jsx","jsxs","_jsxs","FlatListComponent","ChatMessageList","messageList","logGA","sessionId","state","flatListRef","scrollOffsetRef","showScrollToBottom","setShowScrollToBottom","onScroll","event","offsetY","nativeEvent","contentOffset","y","current","threshold","scrollToBottom","scrollToOffset","offset","animated","subExpandThinkingStep","addListener","expandThinkingStep","isExpand","setTimeout","error","console","remove","newChatPageView","chatDetailPageView","conversation_id","style","flex","children","ref","data","renderItem","item","index","keyExtractor","id","contentContainerStyle","styles","container","inverted","ListEmptyComponent","scrollEventThrottle","Touchable","scrollButton","onPress","activeOpacity","center","VectorIcons","name","size","color","palette","gray","w400","create","flexGrow","gap","paddingVertical","justifyContent","position","bottom","right","backgroundColor","white","width","height","borderRadius","shadowColor","shadowOpacity","shadowRadius","elevation","alignItems"],"sourceRoot":"../../../../src","sources":["components/chat/ChatMessageList.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,6 +7,7 @@ import { StyleSheet } from 'react-native';
|
|
|
7
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
8
|
const SuggestionItem = ({
|
|
9
9
|
item,
|
|
10
|
+
index,
|
|
10
11
|
onPressItem
|
|
11
12
|
}) => {
|
|
12
13
|
const icon = useMemo(() => {
|
|
@@ -57,7 +58,7 @@ const SuggestionItem = ({
|
|
|
57
58
|
}, [item.category]);
|
|
58
59
|
return /*#__PURE__*/_jsxs(KContainer.Touchable, {
|
|
59
60
|
style: styles.container,
|
|
60
|
-
onPress: () => onPressItem(item),
|
|
61
|
+
onPress: () => onPressItem(item, index),
|
|
61
62
|
children: [icon, /*#__PURE__*/_jsx(KLabel.Text, {
|
|
62
63
|
flex: true,
|
|
63
64
|
typo: "TextNmNormal",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","KColors","KContainer","KImage","KLabel","KRadiusValue","KSpacingValue","SuggestionCategory","StyleSheet","jsx","_jsx","jsxs","_jsxs","SuggestionItem","item","onPressItem","icon","category","product","VectorIcons","name","size","color","palette","primary","w400","discount","danger","normal","gift","success","health_advice","secondary","content","warning","guide","blue","Touchable","style","styles","container","onPress","children","Text","flex","typo","create","flexDirection","alignItems","gap","paddingHorizontal","paddingVertical","borderRadius","backgroundColor","hexToRgba","gray","dark"],"sourceRoot":"../../../../src","sources":["components/chat/SuggestionItem.tsx"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAE/B,SACEC,OAAO,EACPC,UAAU,EACVC,MAAM,EACNC,MAAM,EACNC,YAAY,EACZC,aAAa,QACR,eAAe;AACtB,SAASC,kBAAkB,QAAQ,uBAAoB;AACvD,SAASC,UAAU,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;
|
|
1
|
+
{"version":3,"names":["useMemo","KColors","KContainer","KImage","KLabel","KRadiusValue","KSpacingValue","SuggestionCategory","StyleSheet","jsx","_jsx","jsxs","_jsxs","SuggestionItem","item","index","onPressItem","icon","category","product","VectorIcons","name","size","color","palette","primary","w400","discount","danger","normal","gift","success","health_advice","secondary","content","warning","guide","blue","Touchable","style","styles","container","onPress","children","Text","flex","typo","create","flexDirection","alignItems","gap","paddingHorizontal","paddingVertical","borderRadius","backgroundColor","hexToRgba","gray","dark"],"sourceRoot":"../../../../src","sources":["components/chat/SuggestionItem.tsx"],"mappings":"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","ignoreList":[]}
|