react-native-chatbot-ai 0.1.18 → 0.1.21

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 (189) hide show
  1. package/lib/module/components/Drawer/DeleteSessionPopup.js +99 -0
  2. package/lib/module/components/Drawer/DeleteSessionPopup.js.map +1 -0
  3. package/lib/module/components/Drawer/DrawerContent.js +4 -3
  4. package/lib/module/components/Drawer/DrawerContent.js.map +1 -1
  5. package/lib/module/components/Drawer/RenameSessionPopup.js +121 -0
  6. package/lib/module/components/Drawer/RenameSessionPopup.js.map +1 -0
  7. package/lib/module/components/Drawer/SessionItem.js +35 -20
  8. package/lib/module/components/Drawer/SessionItem.js.map +1 -1
  9. package/lib/module/components/Drawer/SessionOptionsBottomSheet.js +122 -0
  10. package/lib/module/components/Drawer/SessionOptionsBottomSheet.js.map +1 -0
  11. package/lib/module/components/Drawer/ShareSessionPopup.js +128 -0
  12. package/lib/module/components/Drawer/ShareSessionPopup.js.map +1 -0
  13. package/lib/module/components/chat/ChatMessageList.js +61 -23
  14. package/lib/module/components/chat/ChatMessageList.js.map +1 -1
  15. package/lib/module/components/chat/item/ChatAIAnswerMessageItem.js +29 -1
  16. package/lib/module/components/chat/item/ChatAIAnswerMessageItem.js.map +1 -1
  17. package/lib/module/components/chat/item/MessageActionsBar.js +237 -0
  18. package/lib/module/components/chat/item/MessageActionsBar.js.map +1 -0
  19. package/lib/module/components/chat/item/actions/ActionButton.js +56 -0
  20. package/lib/module/components/chat/item/actions/ActionButton.js.map +1 -0
  21. package/lib/module/components/portal/BottomSheet.js +245 -0
  22. package/lib/module/components/portal/BottomSheet.js.map +1 -0
  23. package/lib/module/components/portal/Popup.js +278 -0
  24. package/lib/module/components/portal/Popup.js.map +1 -0
  25. package/lib/module/components/portal/index.js +11 -5
  26. package/lib/module/components/portal/index.js.map +1 -1
  27. package/lib/module/constants/index.js +5 -1
  28. package/lib/module/constants/index.js.map +1 -1
  29. package/lib/module/constants/query.js +5 -1
  30. package/lib/module/constants/query.js.map +1 -1
  31. package/lib/module/context/ChatContext.js +6 -3
  32. package/lib/module/context/ChatContext.js.map +1 -1
  33. package/lib/module/hooks/messageActions/index.js +13 -0
  34. package/lib/module/hooks/messageActions/index.js.map +1 -0
  35. package/lib/module/hooks/messageActions/useAudioPlayer.js +243 -0
  36. package/lib/module/hooks/messageActions/useAudioPlayer.js.map +1 -0
  37. package/lib/module/hooks/messageActions/useCopyToClipboard.js +38 -0
  38. package/lib/module/hooks/messageActions/useCopyToClipboard.js.map +1 -0
  39. package/lib/module/hooks/messageActions/useFeedback.js +85 -0
  40. package/lib/module/hooks/messageActions/useFeedback.js.map +1 -0
  41. package/lib/module/hooks/messageActions/useSendFeedback.js +24 -0
  42. package/lib/module/hooks/messageActions/useSendFeedback.js.map +1 -0
  43. package/lib/module/hooks/messageActions/useShareMessage.js +120 -0
  44. package/lib/module/hooks/messageActions/useShareMessage.js.map +1 -0
  45. package/lib/module/hooks/session/useDeleteSession.js +23 -0
  46. package/lib/module/hooks/session/useDeleteSession.js.map +1 -0
  47. package/lib/module/hooks/session/useRenameSession.js +28 -0
  48. package/lib/module/hooks/session/useRenameSession.js.map +1 -0
  49. package/lib/module/hooks/session/useSearchSessions.js +29 -2
  50. package/lib/module/hooks/session/useSearchSessions.js.map +1 -1
  51. package/lib/module/hooks/session/useShareSession.js +16 -0
  52. package/lib/module/hooks/session/useShareSession.js.map +1 -0
  53. package/lib/module/services/endpoints.js +6 -1
  54. package/lib/module/services/endpoints.js.map +1 -1
  55. package/lib/module/services/index.js +1 -0
  56. package/lib/module/services/index.js.map +1 -1
  57. package/lib/module/services/playbackService.js +22 -0
  58. package/lib/module/services/playbackService.js.map +1 -0
  59. package/lib/module/store/audioPlayer.js +75 -0
  60. package/lib/module/store/audioPlayer.js.map +1 -0
  61. package/lib/module/store/messageActions.js +160 -0
  62. package/lib/module/store/messageActions.js.map +1 -0
  63. package/lib/module/translation/index.js +17 -17
  64. package/lib/module/translation/index.js.map +1 -1
  65. package/lib/module/translation/resources/vi.js +25 -1
  66. package/lib/module/translation/resources/vi.js.map +1 -1
  67. package/lib/module/types/index.js +1 -0
  68. package/lib/module/types/index.js.map +1 -1
  69. package/lib/module/types/messageActions.js +56 -0
  70. package/lib/module/types/messageActions.js.map +1 -0
  71. package/lib/module/utils/textCleaner.js +67 -0
  72. package/lib/module/utils/textCleaner.js.map +1 -0
  73. package/lib/module/utils/ui.js +27 -1
  74. package/lib/module/utils/ui.js.map +1 -1
  75. package/lib/typescript/src/components/Drawer/DeleteSessionPopup.d.ts +3 -0
  76. package/lib/typescript/src/components/Drawer/DeleteSessionPopup.d.ts.map +1 -0
  77. package/lib/typescript/src/components/Drawer/DrawerContent.d.ts.map +1 -1
  78. package/lib/typescript/src/components/Drawer/RenameSessionPopup.d.ts +3 -0
  79. package/lib/typescript/src/components/Drawer/RenameSessionPopup.d.ts.map +1 -0
  80. package/lib/typescript/src/components/Drawer/SessionItem.d.ts.map +1 -1
  81. package/lib/typescript/src/components/Drawer/SessionOptionsBottomSheet.d.ts +3 -0
  82. package/lib/typescript/src/components/Drawer/SessionOptionsBottomSheet.d.ts.map +1 -0
  83. package/lib/typescript/src/components/Drawer/ShareSessionPopup.d.ts +3 -0
  84. package/lib/typescript/src/components/Drawer/ShareSessionPopup.d.ts.map +1 -0
  85. package/lib/typescript/src/components/chat/ChatMessageList.d.ts.map +1 -1
  86. package/lib/typescript/src/components/chat/item/ChatAIAnswerMessageItem.d.ts.map +1 -1
  87. package/lib/typescript/src/components/chat/item/MessageActionsBar.d.ts +16 -0
  88. package/lib/typescript/src/components/chat/item/MessageActionsBar.d.ts.map +1 -0
  89. package/lib/typescript/src/components/chat/item/actions/ActionButton.d.ts +19 -0
  90. package/lib/typescript/src/components/chat/item/actions/ActionButton.d.ts.map +1 -0
  91. package/lib/typescript/src/components/portal/BottomSheet.d.ts +8 -0
  92. package/lib/typescript/src/components/portal/BottomSheet.d.ts.map +1 -0
  93. package/lib/typescript/src/components/portal/Popup.d.ts +4 -0
  94. package/lib/typescript/src/components/portal/Popup.d.ts.map +1 -0
  95. package/lib/typescript/src/components/portal/index.d.ts.map +1 -1
  96. package/lib/typescript/src/constants/index.d.ts +5 -1
  97. package/lib/typescript/src/constants/index.d.ts.map +1 -1
  98. package/lib/typescript/src/constants/query.d.ts +4 -0
  99. package/lib/typescript/src/constants/query.d.ts.map +1 -1
  100. package/lib/typescript/src/context/ChatContext.d.ts.map +1 -1
  101. package/lib/typescript/src/hooks/messageActions/index.d.ts +10 -0
  102. package/lib/typescript/src/hooks/messageActions/index.d.ts.map +1 -0
  103. package/lib/typescript/src/hooks/messageActions/useAudioPlayer.d.ts +14 -0
  104. package/lib/typescript/src/hooks/messageActions/useAudioPlayer.d.ts.map +1 -0
  105. package/lib/typescript/src/hooks/messageActions/useCopyToClipboard.d.ts +9 -0
  106. package/lib/typescript/src/hooks/messageActions/useCopyToClipboard.d.ts.map +1 -0
  107. package/lib/typescript/src/hooks/messageActions/useFeedback.d.ts +18 -0
  108. package/lib/typescript/src/hooks/messageActions/useFeedback.d.ts.map +1 -0
  109. package/lib/typescript/src/hooks/messageActions/useSendFeedback.d.ts +6 -0
  110. package/lib/typescript/src/hooks/messageActions/useSendFeedback.d.ts.map +1 -0
  111. package/lib/typescript/src/hooks/messageActions/useShareMessage.d.ts +12 -0
  112. package/lib/typescript/src/hooks/messageActions/useShareMessage.d.ts.map +1 -0
  113. package/lib/typescript/src/hooks/session/useDeleteSession.d.ts +2 -0
  114. package/lib/typescript/src/hooks/session/useDeleteSession.d.ts.map +1 -0
  115. package/lib/typescript/src/hooks/session/useRenameSession.d.ts +2 -0
  116. package/lib/typescript/src/hooks/session/useRenameSession.d.ts.map +1 -0
  117. package/lib/typescript/src/hooks/session/useSearchSessions.d.ts.map +1 -1
  118. package/lib/typescript/src/hooks/session/useShareSession.d.ts +2 -0
  119. package/lib/typescript/src/hooks/session/useShareSession.d.ts.map +1 -0
  120. package/lib/typescript/src/services/endpoints.d.ts +5 -0
  121. package/lib/typescript/src/services/endpoints.d.ts.map +1 -1
  122. package/lib/typescript/src/services/index.d.ts +1 -0
  123. package/lib/typescript/src/services/index.d.ts.map +1 -1
  124. package/lib/typescript/src/services/playbackService.d.ts +2 -0
  125. package/lib/typescript/src/services/playbackService.d.ts.map +1 -0
  126. package/lib/typescript/src/store/audioPlayer.d.ts +27 -0
  127. package/lib/typescript/src/store/audioPlayer.d.ts.map +1 -0
  128. package/lib/typescript/src/store/messageActions.d.ts +9 -0
  129. package/lib/typescript/src/store/messageActions.d.ts.map +1 -0
  130. package/lib/typescript/src/translation/index.d.ts +0 -1
  131. package/lib/typescript/src/translation/index.d.ts.map +1 -1
  132. package/lib/typescript/src/translation/resources/vi.d.ts +20 -0
  133. package/lib/typescript/src/translation/resources/vi.d.ts.map +1 -1
  134. package/lib/typescript/src/types/chat.d.ts +2 -0
  135. package/lib/typescript/src/types/chat.d.ts.map +1 -1
  136. package/lib/typescript/src/types/dto.d.ts +11 -0
  137. package/lib/typescript/src/types/dto.d.ts.map +1 -1
  138. package/lib/typescript/src/types/index.d.ts +1 -0
  139. package/lib/typescript/src/types/index.d.ts.map +1 -1
  140. package/lib/typescript/src/types/messageActions.d.ts +85 -0
  141. package/lib/typescript/src/types/messageActions.d.ts.map +1 -0
  142. package/lib/typescript/src/types/ui.d.ts +16 -0
  143. package/lib/typescript/src/types/ui.d.ts.map +1 -1
  144. package/lib/typescript/src/utils/textCleaner.d.ts +30 -0
  145. package/lib/typescript/src/utils/textCleaner.d.ts.map +1 -0
  146. package/lib/typescript/src/utils/ui.d.ts +12 -0
  147. package/lib/typescript/src/utils/ui.d.ts.map +1 -1
  148. package/package.json +7 -4
  149. package/src/components/Drawer/DeleteSessionPopup.tsx +104 -0
  150. package/src/components/Drawer/DrawerContent.tsx +3 -2
  151. package/src/components/Drawer/RenameSessionPopup.tsx +145 -0
  152. package/src/components/Drawer/SessionItem.tsx +22 -8
  153. package/src/components/Drawer/SessionOptionsBottomSheet.tsx +130 -0
  154. package/src/components/Drawer/ShareSessionPopup.tsx +142 -0
  155. package/src/components/chat/ChatMessageList.tsx +62 -17
  156. package/src/components/chat/item/ChatAIAnswerMessageItem.tsx +38 -0
  157. package/src/components/chat/item/MessageActionsBar.tsx +320 -0
  158. package/src/components/chat/item/actions/ActionButton.tsx +66 -0
  159. package/src/components/portal/BottomSheet.tsx +307 -0
  160. package/src/components/portal/Popup.tsx +345 -0
  161. package/src/components/portal/index.tsx +5 -1
  162. package/src/constants/index.ts +6 -1
  163. package/src/constants/query.ts +4 -0
  164. package/src/context/ChatContext.tsx +3 -0
  165. package/src/hooks/messageActions/index.ts +10 -0
  166. package/src/hooks/messageActions/useAudioPlayer.ts +317 -0
  167. package/src/hooks/messageActions/useCopyToClipboard.ts +39 -0
  168. package/src/hooks/messageActions/useFeedback.ts +105 -0
  169. package/src/hooks/messageActions/useSendFeedback.ts +31 -0
  170. package/src/hooks/messageActions/useShareMessage.ts +138 -0
  171. package/src/hooks/session/useDeleteSession.ts +25 -0
  172. package/src/hooks/session/useRenameSession.ts +37 -0
  173. package/src/hooks/session/useSearchSessions.ts +32 -2
  174. package/src/hooks/session/useShareSession.ts +22 -0
  175. package/src/ignore.d.ts +20 -1
  176. package/src/services/endpoints.ts +10 -0
  177. package/src/services/index.ts +1 -0
  178. package/src/services/playbackService.ts +22 -0
  179. package/src/store/audioPlayer.ts +112 -0
  180. package/src/store/messageActions.ts +161 -0
  181. package/src/translation/index.ts +12 -12
  182. package/src/translation/resources/vi.ts +31 -0
  183. package/src/types/chat.ts +2 -0
  184. package/src/types/dto.ts +14 -0
  185. package/src/types/index.ts +1 -0
  186. package/src/types/messageActions.ts +131 -0
  187. package/src/types/ui.ts +19 -1
  188. package/src/utils/textCleaner.ts +66 -0
  189. package/src/utils/ui.tsx +29 -2
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ import { useCallback } from 'react';
4
+ import { StyleSheet } from 'react-native';
5
+ import { KContainer, KLabel, KColors, KSpacingValue } from '@droppii/libs';
6
+ import { useDeleteSession } from "../../hooks/session/useDeleteSession.js";
7
+ import UIUtils from "../../utils/ui.js";
8
+ import trans from "../../translation/index.js";
9
+ import useSessionStore from "../../store/session.js";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ const truncateText = (text, maxLength) => {
12
+ if (text.length <= maxLength) return text;
13
+ return text.substring(0, maxLength) + '…';
14
+ };
15
+ const DeleteContent = ({
16
+ session,
17
+ onConfirmRef
18
+ }) => {
19
+ const {
20
+ mutateAsync: deleteSession
21
+ } = useDeleteSession();
22
+ const currentSessionId = useSessionStore(state => state.sessionId);
23
+ const setSessionId = useSessionStore(state => state.setSessionId);
24
+
25
+ // Expose handleConfirm via ref
26
+ onConfirmRef.current = useCallback(async () => {
27
+ try {
28
+ await deleteSession(session.id);
29
+
30
+ // If the deleted session is the current active session, clear it
31
+ if (currentSessionId === session.id) {
32
+ setSessionId(undefined);
33
+ }
34
+ UIUtils.toast.showSuccess(trans('chatbot:delete_session_success'));
35
+ UIUtils.popup.dismiss();
36
+ } catch (err) {
37
+ UIUtils.toast.showError(err);
38
+ }
39
+ }, [session.id, currentSessionId, deleteSession, setSessionId]);
40
+ const truncatedName = truncateText(session.title, 50);
41
+ const descriptionTemplate = trans('chatbot:delete_session_description');
42
+ const parts = descriptionTemplate.split('{sessionName}');
43
+ return (
44
+ /*#__PURE__*/
45
+ // @ts-ignore
46
+ _jsx(KContainer.View, {
47
+ style: styles.container,
48
+ children: /*#__PURE__*/_jsxs(KLabel.Text, {
49
+ typo: "TextMdNormal",
50
+ color: KColors.gray.dark,
51
+ children: [parts[0], /*#__PURE__*/_jsx(KLabel.Text, {
52
+ typo: "TextMdBold",
53
+ color: KColors.gray.dark,
54
+ children: truncatedName
55
+ }), parts[1]]
56
+ })
57
+ })
58
+ );
59
+ };
60
+ export const openDeleteSessionPopup = session => {
61
+ const onConfirmRef = {
62
+ current: null
63
+ };
64
+ UIUtils.popup.open({
65
+ header: {
66
+ title: {
67
+ text: trans('chatbot:delete_session_title')
68
+ },
69
+ showCloseButton: false
70
+ },
71
+ body: {
72
+ scrollable: false,
73
+ renderContent: () => /*#__PURE__*/_jsx(DeleteContent, {
74
+ session: session,
75
+ onConfirmRef: onConfirmRef
76
+ })
77
+ },
78
+ actions: {
79
+ type: 'horizontal-button',
80
+ buttons: [{
81
+ kind: 'light',
82
+ label: trans('chatbot:delete_session_cancel'),
83
+ weight: 'medium',
84
+ onPress: () => UIUtils.popup.dismiss()
85
+ }, {
86
+ kind: 'danger',
87
+ label: trans('chatbot:delete_session_confirm'),
88
+ weight: 'medium',
89
+ onPress: () => onConfirmRef.current?.()
90
+ }]
91
+ }
92
+ });
93
+ };
94
+ const styles = StyleSheet.create({
95
+ container: {
96
+ padding: KSpacingValue['1rem']
97
+ }
98
+ });
99
+ //# sourceMappingURL=DeleteSessionPopup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","StyleSheet","KContainer","KLabel","KColors","KSpacingValue","useDeleteSession","UIUtils","trans","useSessionStore","jsx","_jsx","jsxs","_jsxs","truncateText","text","maxLength","length","substring","DeleteContent","session","onConfirmRef","mutateAsync","deleteSession","currentSessionId","state","sessionId","setSessionId","current","id","undefined","toast","showSuccess","popup","dismiss","err","showError","truncatedName","title","descriptionTemplate","parts","split","View","style","styles","container","children","Text","typo","color","gray","dark","openDeleteSessionPopup","open","header","showCloseButton","body","scrollable","renderContent","actions","type","buttons","kind","label","weight","onPress","create","padding"],"sourceRoot":"../../../../src","sources":["components/Drawer/DeleteSessionPopup.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  import { useCallback, useMemo, useState, useEffect, useRef } from 'react';
4
- import { StyleSheet } from 'react-native';
5
- import { KContainer } from '@droppii/libs';
4
+ import { StyleSheet, Platform } from 'react-native';
5
+ import { KContainer, KSpacingValue } from '@droppii/libs';
6
6
  import debounce from 'lodash/debounce';
7
7
  import useSessionStore from "../../store/session.js";
8
8
  import { useChatContext } from "../../context/ChatContext.js";
@@ -78,7 +78,8 @@ const DrawerContent = () => {
78
78
  const styles = StyleSheet.create({
79
79
  drawerContainer: {
80
80
  flex: 1,
81
- backgroundColor: 'white'
81
+ backgroundColor: 'white',
82
+ paddingTop: Platform.OS === 'android' ? KSpacingValue['2rem'] : 0
82
83
  }
83
84
  });
84
85
  export default DrawerContent;
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useMemo","useState","useEffect","useRef","StyleSheet","KContainer","debounce","useSessionStore","useChatContext","useSearchSessions","NewChatButton","SearchInput","SessionList","jsx","_jsx","jsxs","_jsxs","DrawerContent","setSessionId","state","sessionId","closeDrawer","searchQuery","setSearchQuery","debouncedSearchTerm","setDebouncedSearchTerm","debounceRef","value","debouncedFn","current","cancel","data","isLoading","isRefetching","refetch","fetchNextPage","hasNextPage","isFetchingNextPage","sessions","pages","flatMap","page","onPressNewSession","undefined","onPressSession","item","id","onEndReached","View","edges","style","styles","drawerContainer","children","onPress","onChangeText","activeSessionId","onRefresh","create","flex","backgroundColor"],"sourceRoot":"../../../../src","sources":["components/Drawer/DrawerContent.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useMemo","useState","useEffect","useRef","StyleSheet","Platform","KContainer","KSpacingValue","debounce","useSessionStore","useChatContext","useSearchSessions","NewChatButton","SearchInput","SessionList","jsx","_jsx","jsxs","_jsxs","DrawerContent","setSessionId","state","sessionId","closeDrawer","searchQuery","setSearchQuery","debouncedSearchTerm","setDebouncedSearchTerm","debounceRef","value","debouncedFn","current","cancel","data","isLoading","isRefetching","refetch","fetchNextPage","hasNextPage","isFetchingNextPage","sessions","pages","flatMap","page","onPressNewSession","undefined","onPressSession","item","id","onEndReached","View","edges","style","styles","drawerContainer","children","onPress","onChangeText","activeSessionId","onRefresh","create","flex","backgroundColor","paddingTop","OS"],"sourceRoot":"../../../../src","sources":["components/Drawer/DrawerContent.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+
3
+ import { useState, useCallback } from 'react';
4
+ import { useRenameSession } from "../../hooks/session/useRenameSession.js";
5
+ import UIUtils from "../../utils/ui.js";
6
+ import trans from "../../translation/index.js";
7
+ import { StyleSheet, Keyboard } from 'react-native';
8
+ import { KButton, KColors, KContainer, KInput, KLabel, KSpacingValue } from '@droppii/libs';
9
+ import { useChatContext } from "../../context/ChatContext.js";
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ const MAX_LENGTH = 250;
12
+ const MIN_LENGTH = 1;
13
+ const RenameSessionPopup = ({
14
+ session
15
+ }) => {
16
+ const [value, setValue] = useState(session.title);
17
+ const [confirmDisabled, setConfirmDisabled] = useState(true);
18
+ const {
19
+ mutateAsync: renameSession
20
+ } = useRenameSession();
21
+ const {
22
+ openDrawer
23
+ } = useChatContext();
24
+ const onChangeText = useCallback(text => {
25
+ const newText = text.slice(0, MAX_LENGTH);
26
+ setValue(newText);
27
+ const disabled = newText.trim().length < MIN_LENGTH || newText.length > MAX_LENGTH || newText.trim() === session.title.trim();
28
+ setConfirmDisabled(disabled);
29
+ }, [session.title]);
30
+ const onClear = useCallback(() => {
31
+ setValue('');
32
+ setConfirmDisabled(true);
33
+ }, []);
34
+ const handleConfirm = useCallback(async () => {
35
+ const trimmed = value.trim();
36
+ if (confirmDisabled || !trimmed || trimmed.length < MIN_LENGTH || trimmed.length > MAX_LENGTH || trimmed === session.title.trim()) {
37
+ return;
38
+ }
39
+ try {
40
+ await renameSession({
41
+ sessionId: session.id,
42
+ title: trimmed
43
+ });
44
+ Keyboard.dismiss();
45
+ UIUtils.toast.showSuccess(trans('chatbot:rename_session_success'));
46
+ UIUtils.popup.dismiss();
47
+ setTimeout(() => {
48
+ openDrawer();
49
+ }, 500);
50
+ } catch (err) {
51
+ UIUtils.toast.showError(err);
52
+ }
53
+ }, [confirmDisabled, value, session, renameSession, openDrawer]);
54
+ return /*#__PURE__*/_jsxs(KContainer.View, {
55
+ children: [/*#__PURE__*/_jsxs(KContainer.View, {
56
+ style: [styles.searchInputWrapper],
57
+ children: [/*#__PURE__*/_jsx(KInput.TextBox, {
58
+ placeholder: trans('chatbot:rename_session_placeholder'),
59
+ value: value,
60
+ onChangeText: onChangeText,
61
+ onClear: onClear,
62
+ border: "entire",
63
+ radius: "borderless",
64
+ withBorder: true,
65
+ height: 160,
66
+ maxLength: MAX_LENGTH,
67
+ paddingV: "0.5rem",
68
+ multiline: true,
69
+ textAlignVertical: "top"
70
+ }), /*#__PURE__*/_jsx(KLabel.Text, {
71
+ color: KColors.gray.light,
72
+ children: value.trim().length === 0 ? `Tối đa ${MAX_LENGTH} ký tự` : `Còn ${MAX_LENGTH - value.length}/${MAX_LENGTH} ký tự`
73
+ })]
74
+ }), /*#__PURE__*/_jsx(KContainer.View, {
75
+ style: styles.divider
76
+ }), /*#__PURE__*/_jsx(KContainer.View, {
77
+ style: styles.buttonConfirm,
78
+ children: /*#__PURE__*/_jsx(KButton.Solid, {
79
+ label: trans('rename_session_confirm'),
80
+ stretch: true,
81
+ size: "lg",
82
+ marginT: "1rem",
83
+ disabled: confirmDisabled,
84
+ onPress: handleConfirm
85
+ })
86
+ })]
87
+ });
88
+ };
89
+ export const openRenameSessionPopup = session => {
90
+ UIUtils.popup.open({
91
+ header: {
92
+ title: {
93
+ text: trans('chatbot:rename_session_title')
94
+ },
95
+ showCloseButton: true,
96
+ alignment: 'left'
97
+ },
98
+ body: {
99
+ scrollable: false,
100
+ renderContent: () => /*#__PURE__*/_jsx(RenameSessionPopup, {
101
+ session: session
102
+ })
103
+ }
104
+ });
105
+ };
106
+ const styles = StyleSheet.create({
107
+ searchInputWrapper: {
108
+ marginHorizontal: KSpacingValue['1rem'],
109
+ marginBottom: KSpacingValue['0.75rem'],
110
+ paddingTop: KSpacingValue['0.25rem']
111
+ },
112
+ divider: {
113
+ height: 1,
114
+ backgroundColor: KColors.border.light
115
+ },
116
+ buttonConfirm: {
117
+ padding: KSpacingValue['1rem'],
118
+ paddingTop: 0
119
+ }
120
+ });
121
+ //# sourceMappingURL=RenameSessionPopup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useState","useCallback","useRenameSession","UIUtils","trans","StyleSheet","Keyboard","KButton","KColors","KContainer","KInput","KLabel","KSpacingValue","useChatContext","jsx","_jsx","jsxs","_jsxs","MAX_LENGTH","MIN_LENGTH","RenameSessionPopup","session","value","setValue","title","confirmDisabled","setConfirmDisabled","mutateAsync","renameSession","openDrawer","onChangeText","text","newText","slice","disabled","trim","length","onClear","handleConfirm","trimmed","sessionId","id","dismiss","toast","showSuccess","popup","setTimeout","err","showError","View","children","style","styles","searchInputWrapper","TextBox","placeholder","border","radius","withBorder","height","maxLength","paddingV","multiline","textAlignVertical","Text","color","gray","light","divider","buttonConfirm","Solid","label","stretch","size","marginT","onPress","openRenameSessionPopup","open","header","showCloseButton","alignment","body","scrollable","renderContent","create","marginHorizontal","marginBottom","paddingTop","backgroundColor","padding"],"sourceRoot":"../../../../src","sources":["components/Drawer/RenameSessionPopup.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,32 +1,47 @@
1
1
  "use strict";
2
2
 
3
- import { memo } from 'react';
3
+ import { memo, useCallback } from 'react';
4
4
  import { StyleSheet } from 'react-native';
5
5
  import { KContainer, KLabel, KColors, KSpacingValue, KImage } from '@droppii/libs';
6
+ import { openSessionOptionsBottomSheet } from "./SessionOptionsBottomSheet.js";
7
+ import { useChatContext } from "../../context/ChatContext.js";
6
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
9
  const SessionItem = /*#__PURE__*/memo(({
8
10
  item,
9
11
  isActive,
10
12
  onPress
11
13
  }) => {
12
- return /*#__PURE__*/_jsxs(KContainer.View, {
13
- style: [styles.sessionItem, isActive && styles.sessionItemActive],
14
- children: [/*#__PURE__*/_jsx(KContainer.Touchable, {
15
- style: styles.sessionItemTouchable,
16
- onPress: () => onPress(item),
17
- children: /*#__PURE__*/_jsx(KLabel.Text, {
18
- typo: "TextMdNormal",
19
- color: KColors.gray.dark,
20
- numberOfLines: 1,
21
- children: item.title
22
- })
23
- }), /*#__PURE__*/_jsx(KImage.VectorIcons, {
24
- name: "more-horizontal-b",
25
- size: 20,
26
- color: KColors.gray.dark,
27
- style: styles.menuIcon
28
- })]
29
- });
14
+ const {
15
+ closeDrawer
16
+ } = useChatContext();
17
+ const handlePressOptions = useCallback(() => {
18
+ openSessionOptionsBottomSheet(item, closeDrawer);
19
+ }, [item, closeDrawer]);
20
+ return (
21
+ /*#__PURE__*/
22
+ // @ts-ignore
23
+ _jsxs(KContainer.View, {
24
+ style: [styles.sessionItem, isActive && styles.sessionItemActive],
25
+ children: [/*#__PURE__*/_jsx(KContainer.Touchable, {
26
+ style: styles.sessionItemTouchable,
27
+ onPress: () => onPress(item),
28
+ children: /*#__PURE__*/_jsx(KLabel.Text, {
29
+ typo: "TextMdNormal",
30
+ color: KColors.gray.dark,
31
+ numberOfLines: 1,
32
+ children: item.title
33
+ })
34
+ }), /*#__PURE__*/_jsx(KContainer.Touchable, {
35
+ onPress: handlePressOptions,
36
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
37
+ name: "more-horizontal-b",
38
+ size: 20,
39
+ color: KColors.gray.dark,
40
+ style: styles.menuIcon
41
+ })
42
+ })]
43
+ })
44
+ );
30
45
  });
31
46
  SessionItem.displayName = 'SessionItem';
32
47
  const styles = StyleSheet.create({
@@ -40,7 +55,7 @@ const styles = StyleSheet.create({
40
55
  // marginVertical: KSpacingValue['0.25rem'],
41
56
  },
42
57
  sessionItemActive: {
43
- backgroundColor: KColors.primary.lightest
58
+ backgroundColor: KColors.hexToRgba(KColors.primary.normal, 0.1)
44
59
  },
45
60
  sessionItemTouchable: {
46
61
  flex: 1
@@ -1 +1 @@
1
- {"version":3,"names":["memo","StyleSheet","KContainer","KLabel","KColors","KSpacingValue","KImage","jsx","_jsx","jsxs","_jsxs","SessionItem","item","isActive","onPress","View","style","styles","sessionItem","sessionItemActive","children","Touchable","sessionItemTouchable","Text","typo","color","gray","dark","numberOfLines","title","VectorIcons","name","size","menuIcon","displayName","create","flexDirection","alignItems","height","borderRadius","backgroundColor","primary","lightest","flex","marginLeft"],"sourceRoot":"../../../../src","sources":["components/Drawer/SessionItem.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,UAAU,QAAQ,cAAc;AACzC,SACEC,UAAU,EACVC,MAAM,EACNC,OAAO,EACPC,aAAa,EACbC,MAAM,QACD,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AASvB,MAAMC,WAAW,gBAAGX,IAAI,CAAmB,CAAC;EAAEY,IAAI;EAAEC,QAAQ;EAAEC;AAAQ,CAAC,KAAK;EAC1E,oBACEJ,KAAA,CAACR,UAAU,CAACa,IAAI;IACdC,KAAK,EAAE,CAACC,MAAM,CAACC,WAAW,EAAEL,QAAQ,IAAII,MAAM,CAACE,iBAAiB,CAAE;IAAAC,QAAA,gBAElEZ,IAAA,CAACN,UAAU,CAACmB,SAAS;MACnBL,KAAK,EAAEC,MAAM,CAACK,oBAAqB;MACnCR,OAAO,EAAEA,CAAA,KAAMA,OAAO,CAACF,IAAI,CAAE;MAAAQ,QAAA,eAE7BZ,IAAA,CAACL,MAAM,CAACoB,IAAI;QACVC,IAAI,EAAC,cAAc;QACnBC,KAAK,EAAErB,OAAO,CAACsB,IAAI,CAACC,IAAK;QACzBC,aAAa,EAAE,CAAE;QAAAR,QAAA,EAEhBR,IAAI,CAACiB;MAAK,CACA;IAAC,CACM,CAAC,eACvBrB,IAAA,CAACF,MAAM,CAACwB,WAAW;MACjBC,IAAI,EAAC,mBAAmB;MACxBC,IAAI,EAAE,EAAG;MACTP,KAAK,EAAErB,OAAO,CAACsB,IAAI,CAACC,IAAK;MACzBX,KAAK,EAAEC,MAAM,CAACgB;IAAS,CACxB,CAAC;EAAA,CACa,CAAC;AAEtB,CAAC,CAAC;AAEFtB,WAAW,CAACuB,WAAW,GAAG,aAAa;AAEvC,MAAMjB,MAAM,GAAGhB,UAAU,CAACkC,MAAM,CAAC;EAC/BjB,WAAW,EAAE;IACXkB,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,MAAM,EAAE,EAAE;IACV;IACA;IACAC,YAAY,EAAElC,aAAa,CAAC,QAAQ;IACpC;EACF,CAAC;EACDc,iBAAiB,EAAE;IACjBqB,eAAe,EAAEpC,OAAO,CAACqC,OAAO,CAACC;EACnC,CAAC;EACDpB,oBAAoB,EAAE;IACpBqB,IAAI,EAAE;EACR,CAAC;EACDV,QAAQ,EAAE;IACRW,UAAU,EAAEvC,aAAa,CAAC,QAAQ;EACpC;AACF,CAAC,CAAC;AAEF,eAAeM,WAAW","ignoreList":[]}
1
+ {"version":3,"names":["memo","useCallback","StyleSheet","KContainer","KLabel","KColors","KSpacingValue","KImage","openSessionOptionsBottomSheet","useChatContext","jsx","_jsx","jsxs","_jsxs","SessionItem","item","isActive","onPress","closeDrawer","handlePressOptions","View","style","styles","sessionItem","sessionItemActive","children","Touchable","sessionItemTouchable","Text","typo","color","gray","dark","numberOfLines","title","VectorIcons","name","size","menuIcon","displayName","create","flexDirection","alignItems","height","borderRadius","backgroundColor","hexToRgba","primary","normal","flex","marginLeft"],"sourceRoot":"../../../../src","sources":["components/Drawer/SessionItem.tsx"],"mappings":";;AAAA,SAASA,IAAI,EAAEC,WAAW,QAAQ,OAAO;AACzC,SAASC,UAAU,QAAQ,cAAc;AACzC,SACEC,UAAU,EACVC,MAAM,EACNC,OAAO,EACPC,aAAa,EACbC,MAAM,QACD,eAAe;AAEtB,SAASC,6BAA6B,QAAQ,gCAA6B;AAC3E,SAASC,cAAc,QAAQ,8BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQ3D,MAAMC,WAAW,gBAAGd,IAAI,CAAmB,CAAC;EAAEe,IAAI;EAAEC,QAAQ;EAAEC;AAAQ,CAAC,KAAK;EAC1E,MAAM;IAAEC;EAAY,CAAC,GAAGT,cAAc,CAAC,CAAC;EAExC,MAAMU,kBAAkB,GAAGlB,WAAW,CAAC,MAAM;IAC3CO,6BAA6B,CAACO,IAAI,EAAEG,WAAW,CAAC;EAClD,CAAC,EAAE,CAACH,IAAI,EAAEG,WAAW,CAAC,CAAC;EAEvB;IAAA;IACE;IACAL,KAAA,CAACV,UAAU,CAACiB,IAAI;MACdC,KAAK,EAAE,CAACC,MAAM,CAACC,WAAW,EAAEP,QAAQ,IAAIM,MAAM,CAACE,iBAAiB,CAAE;MAAAC,QAAA,gBAGlEd,IAAA,CAACR,UAAU,CAACuB,SAAS;QACnBL,KAAK,EAAEC,MAAM,CAACK,oBAAqB;QACnCV,OAAO,EAAEA,CAAA,KAAMA,OAAO,CAACF,IAAI,CAAE;QAAAU,QAAA,eAG7Bd,IAAA,CAACP,MAAM,CAACwB,IAAI;UACVC,IAAI,EAAC,cAAc;UACnBC,KAAK,EAAEzB,OAAO,CAAC0B,IAAI,CAACC,IAAK;UACzBC,aAAa,EAAE,CAAE;UAAAR,QAAA,EAEhBV,IAAI,CAACmB;QAAK,CACA;MAAC,CACM,CAAC,eAEvBvB,IAAA,CAACR,UAAU,CAACuB,SAAS;QAACT,OAAO,EAAEE,kBAAmB;QAAAM,QAAA,eAChDd,IAAA,CAACJ,MAAM,CAAC4B,WAAW;UACjBC,IAAI,EAAC,mBAAmB;UACxBC,IAAI,EAAE,EAAG;UACTP,KAAK,EAAEzB,OAAO,CAAC0B,IAAI,CAACC,IAAK;UACzBX,KAAK,EAAEC,MAAM,CAACgB;QAAS,CACxB;MAAC,CACkB,CAAC;IAAA,CACR;EAAC;AAEtB,CAAC,CAAC;AAEFxB,WAAW,CAACyB,WAAW,GAAG,aAAa;AAEvC,MAAMjB,MAAM,GAAGpB,UAAU,CAACsC,MAAM,CAAC;EAC/BjB,WAAW,EAAE;IACXkB,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,MAAM,EAAE,EAAE;IACV;IACA;IACAC,YAAY,EAAEtC,aAAa,CAAC,QAAQ;IACpC;EACF,CAAC;EACDkB,iBAAiB,EAAE;IACjBqB,eAAe,EAAExC,OAAO,CAACyC,SAAS,CAACzC,OAAO,CAAC0C,OAAO,CAACC,MAAM,EAAE,GAAG;EAChE,CAAC;EACDrB,oBAAoB,EAAE;IACpBsB,IAAI,EAAE;EACR,CAAC;EACDX,QAAQ,EAAE;IACRY,UAAU,EAAE5C,aAAa,CAAC,QAAQ;EACpC;AACF,CAAC,CAAC;AAEF,eAAeQ,WAAW","ignoreList":[]}
@@ -0,0 +1,122 @@
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 { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ const OptionItem = ({
12
+ icon,
13
+ label,
14
+ onPress,
15
+ isDanger
16
+ }) => {
17
+ const color = isDanger ? KColors.danger.normal : KColors.gray.dark;
18
+ return (
19
+ /*#__PURE__*/
20
+ // @ts-ignore
21
+ _jsxs(KContainer.Touchable, {
22
+ onPress: onPress,
23
+ style: styles.optionItem,
24
+ children: [/*#__PURE__*/_jsx(KImage.VectorIcons, {
25
+ name: icon,
26
+ size: 20,
27
+ color: color
28
+ }), /*#__PURE__*/_jsx(KLabel.Text, {
29
+ typo: "TextMdMedium",
30
+ color: color,
31
+ style: styles.optionLabel,
32
+ children: label
33
+ })]
34
+ })
35
+ );
36
+ };
37
+ export const openSessionOptionsBottomSheet = (session, closeDrawer) => {
38
+ const handleRename = () => {
39
+ UIUtils.bottomSheet.dismiss();
40
+ // Close drawer first, then open popup
41
+ closeDrawer?.();
42
+ setTimeout(() => {
43
+ openRenameSessionPopup(session);
44
+ }, 300);
45
+ };
46
+ const handleShare = () => {
47
+ UIUtils.bottomSheet.dismiss();
48
+ // Close drawer first, then open popup
49
+ closeDrawer?.();
50
+ setTimeout(() => {
51
+ openShareSessionPopup(session);
52
+ }, 300);
53
+ };
54
+ const handleDelete = () => {
55
+ UIUtils.bottomSheet.dismiss();
56
+ // Close drawer first, then open popup
57
+ closeDrawer?.();
58
+ setTimeout(() => {
59
+ openDeleteSessionPopup(session);
60
+ }, 300);
61
+ };
62
+ const OptionsContent = () => {
63
+ return (
64
+ /*#__PURE__*/
65
+ // @ts-ignore
66
+ _jsxs(KContainer.View, {
67
+ style: styles.container,
68
+ children: [/*#__PURE__*/_jsx(OptionItem, {
69
+ icon: "edit-o",
70
+ label: trans('chatbot:session_rename'),
71
+ onPress: handleRename
72
+ }), /*#__PURE__*/_jsx(KContainer.View, {
73
+ style: styles.divider
74
+ }), /*#__PURE__*/_jsx(OptionItem, {
75
+ icon: "share-o",
76
+ label: trans('chatbot:session_share'),
77
+ onPress: handleShare
78
+ }), /*#__PURE__*/_jsx(KContainer.View, {
79
+ style: styles.divider
80
+ }), /*#__PURE__*/_jsx(OptionItem, {
81
+ icon: "trash-alt-o-1",
82
+ label: trans('chatbot:session_delete'),
83
+ onPress: handleDelete,
84
+ isDanger: true
85
+ })]
86
+ })
87
+ );
88
+ };
89
+ UIUtils.bottomSheet.open({
90
+ header: {
91
+ title: {
92
+ text: trans('chatbot:session_options_title')
93
+ },
94
+ showCloseButton: true
95
+ },
96
+ body: {
97
+ renderContent: () => /*#__PURE__*/_jsx(OptionsContent, {})
98
+ },
99
+ touchOutsideToDismiss: true
100
+ });
101
+ };
102
+ const styles = StyleSheet.create({
103
+ container: {
104
+ paddingHorizontal: KSpacingValue['1rem'],
105
+ paddingVertical: KSpacingValue['0.5rem']
106
+ },
107
+ optionItem: {
108
+ flexDirection: 'row',
109
+ alignItems: 'center',
110
+ paddingVertical: KSpacingValue['1rem'],
111
+ paddingHorizontal: KSpacingValue['0.5rem']
112
+ },
113
+ optionLabel: {
114
+ marginLeft: KSpacingValue['0.75rem']
115
+ },
116
+ divider: {
117
+ height: 1,
118
+ backgroundColor: KColors.border.light,
119
+ marginHorizontal: KSpacingValue['0.5rem']
120
+ }
121
+ });
122
+ //# sourceMappingURL=SessionOptionsBottomSheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StyleSheet","KContainer","KLabel","KColors","KSpacingValue","KImage","UIUtils","trans","openRenameSessionPopup","openShareSessionPopup","openDeleteSessionPopup","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","handleRename","bottomSheet","dismiss","setTimeout","handleShare","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,128 @@
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 { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
+ const truncateText = (text, maxLength) => {
13
+ if (text.length <= maxLength) return text;
14
+ return text.substring(0, maxLength) + '…';
15
+ };
16
+ const ShareContent = ({
17
+ session,
18
+ onConfirmRef
19
+ }) => {
20
+ const {
21
+ mutateAsync: shareSession
22
+ } = useShareSession();
23
+ const {
24
+ chatbotUrl
25
+ } = useChatContext();
26
+ const [shareUrl, setShareUrl] = useState('');
27
+
28
+ // Generate share URL based on chatbotUrl
29
+ useEffect(() => {
30
+ setShareUrl(`${chatbotUrl}/shared/${session.id}`);
31
+ }, [chatbotUrl, session.id]);
32
+
33
+ // Expose handleConfirm via ref
34
+ onConfirmRef.current = useCallback(async () => {
35
+ try {
36
+ const response = await shareSession(session.id);
37
+ console.log('response share', response);
38
+ if (response) {
39
+ // Copy the generated share URL to clipboard
40
+ Clipboard.setString(shareUrl);
41
+ UIUtils.toast.showSuccess(trans('chatbot:share_session_success'));
42
+ UIUtils.popup.dismiss();
43
+ }
44
+ } catch (err) {
45
+ UIUtils.toast.showError(err);
46
+ }
47
+ }, [session.id, shareSession, shareUrl]);
48
+ const truncatedName = truncateText(session.title, 50);
49
+ const descriptionTemplate = trans('chatbot:share_session_description');
50
+ const parts = descriptionTemplate.split('{sessionName}');
51
+ return (
52
+ /*#__PURE__*/
53
+ // @ts-ignore
54
+ _jsxs(KContainer.View, {
55
+ style: styles.container,
56
+ children: [/*#__PURE__*/_jsxs(KLabel.Text, {
57
+ typo: "TextMdNormal",
58
+ color: KColors.gray.dark,
59
+ style: styles.description,
60
+ children: [parts[0], /*#__PURE__*/_jsx(KLabel.Text, {
61
+ typo: "TextMdBold",
62
+ color: KColors.gray.dark,
63
+ children: truncatedName
64
+ }), parts[1]]
65
+ }), /*#__PURE__*/_jsx(KContainer.View, {
66
+ style: [styles.inputWrapper],
67
+ children: /*#__PURE__*/_jsx(KInput.TextBox, {
68
+ value: shareUrl,
69
+ label: trans('chatbot:share_session_link_label'),
70
+ labelTypo: "TextMdBold",
71
+ disabled: true,
72
+ withBorder: true,
73
+ height: 40,
74
+ border: "entire",
75
+ radius: "borderless"
76
+ })
77
+ })]
78
+ })
79
+ );
80
+ };
81
+ export const openShareSessionPopup = session => {
82
+ const onConfirmRef = {
83
+ current: null
84
+ };
85
+ UIUtils.popup.open({
86
+ header: {
87
+ title: {
88
+ text: trans('chatbot:share_session_title')
89
+ },
90
+ showCloseButton: true,
91
+ alignment: 'left'
92
+ },
93
+ body: {
94
+ scrollable: false,
95
+ renderContent: () => /*#__PURE__*/_jsx(ShareContent, {
96
+ session: session,
97
+ onConfirmRef: onConfirmRef
98
+ })
99
+ },
100
+ actions: {
101
+ type: 'horizontal-button',
102
+ buttons: [{
103
+ kind: 'light',
104
+ label: trans('chatbot:share_session_cancel'),
105
+ weight: 'medium',
106
+ onPress: () => UIUtils.popup.dismiss()
107
+ }, {
108
+ kind: 'primary',
109
+ label: trans('chatbot:share_session_confirm'),
110
+ weight: 'medium',
111
+ onPress: () => onConfirmRef.current?.()
112
+ }]
113
+ }
114
+ });
115
+ };
116
+ const styles = StyleSheet.create({
117
+ container: {
118
+ paddingVertical: KSpacingValue['1rem'],
119
+ paddingHorizontal: KSpacingValue['1rem']
120
+ },
121
+ description: {
122
+ marginBottom: KSpacingValue['1rem']
123
+ },
124
+ inputWrapper: {
125
+ paddingBottom: KSpacingValue['0.5rem']
126
+ }
127
+ });
128
+ //# 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","jsx","_jsx","jsxs","_jsxs","truncateText","text","maxLength","length","substring","ShareContent","session","onConfirmRef","mutateAsync","shareSession","chatbotUrl","shareUrl","setShareUrl","id","current","response","console","log","setString","toast","showSuccess","popup","dismiss","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":[]}