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.
- package/lib/module/components/Drawer/DeleteSessionPopup.js +99 -0
- package/lib/module/components/Drawer/DeleteSessionPopup.js.map +1 -0
- package/lib/module/components/Drawer/DrawerContent.js +4 -3
- 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/SessionItem.js +35 -20
- package/lib/module/components/Drawer/SessionItem.js.map +1 -1
- package/lib/module/components/Drawer/SessionOptionsBottomSheet.js +122 -0
- package/lib/module/components/Drawer/SessionOptionsBottomSheet.js.map +1 -0
- package/lib/module/components/Drawer/ShareSessionPopup.js +128 -0
- package/lib/module/components/Drawer/ShareSessionPopup.js.map +1 -0
- package/lib/module/components/chat/ChatMessageList.js +61 -23
- package/lib/module/components/chat/ChatMessageList.js.map +1 -1
- package/lib/module/components/chat/item/ChatAIAnswerMessageItem.js +29 -1
- package/lib/module/components/chat/item/ChatAIAnswerMessageItem.js.map +1 -1
- package/lib/module/components/chat/item/MessageActionsBar.js +237 -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/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 +6 -3
- package/lib/module/context/ChatContext.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 +243 -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 +85 -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 +120 -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 +29 -2
- 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/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/translation/index.js +17 -17
- package/lib/module/translation/index.js.map +1 -1
- package/lib/module/translation/resources/vi.js +25 -1
- package/lib/module/translation/resources/vi.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/SessionItem.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/ChatMessageList.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/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/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/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.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/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/translation/index.d.ts +0 -1
- package/lib/typescript/src/translation/index.d.ts.map +1 -1
- package/lib/typescript/src/translation/resources/vi.d.ts +20 -0
- package/lib/typescript/src/translation/resources/vi.d.ts.map +1 -1
- package/lib/typescript/src/types/chat.d.ts +2 -0
- 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 -0
- 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 -0
- package/lib/typescript/src/utils/ui.d.ts.map +1 -1
- package/package.json +7 -4
- package/src/components/Drawer/DeleteSessionPopup.tsx +104 -0
- package/src/components/Drawer/DrawerContent.tsx +3 -2
- package/src/components/Drawer/RenameSessionPopup.tsx +145 -0
- package/src/components/Drawer/SessionItem.tsx +22 -8
- package/src/components/Drawer/SessionOptionsBottomSheet.tsx +130 -0
- package/src/components/Drawer/ShareSessionPopup.tsx +142 -0
- package/src/components/chat/ChatMessageList.tsx +62 -17
- package/src/components/chat/item/ChatAIAnswerMessageItem.tsx +38 -0
- package/src/components/chat/item/MessageActionsBar.tsx +320 -0
- package/src/components/chat/item/actions/ActionButton.tsx +66 -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/constants/index.ts +6 -1
- package/src/constants/query.ts +4 -0
- package/src/context/ChatContext.tsx +3 -0
- package/src/hooks/messageActions/index.ts +10 -0
- package/src/hooks/messageActions/useAudioPlayer.ts +317 -0
- package/src/hooks/messageActions/useCopyToClipboard.ts +39 -0
- package/src/hooks/messageActions/useFeedback.ts +105 -0
- package/src/hooks/messageActions/useSendFeedback.ts +31 -0
- package/src/hooks/messageActions/useShareMessage.ts +138 -0
- package/src/hooks/session/useDeleteSession.ts +25 -0
- package/src/hooks/session/useRenameSession.ts +37 -0
- package/src/hooks/session/useSearchSessions.ts +32 -2
- package/src/hooks/session/useShareSession.ts +22 -0
- 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/translation/index.ts +12 -12
- package/src/translation/resources/vi.ts +31 -0
- package/src/types/chat.ts +2 -0
- 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 +66 -0
- 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":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,UAAU,EAAEC,MAAM,EAAEC,OAAO,EAAEC,aAAa,QAAQ,eAAe;AAC1E,SAASC,gBAAgB,QAAQ,yCAAsC;AACvE,OAAOC,OAAO,MAAM,mBAAgB;AACpC,OAAOC,KAAK,MAAM,4BAAmB;AAErC,OAAOC,eAAe,MAAM,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAElD,MAAMC,YAAY,GAAGA,CAACC,IAAY,EAAEC,SAAiB,KAAK;EACxD,IAAID,IAAI,CAACE,MAAM,IAAID,SAAS,EAAE,OAAOD,IAAI;EACzC,OAAOA,IAAI,CAACG,SAAS,CAAC,CAAC,EAAEF,SAAS,CAAC,GAAG,GAAG;AAC3C,CAAC;AAOD,MAAMG,aAAa,GAAGA,CAAC;EAAEC,OAAO;EAAEC;AAAiC,CAAC,KAAK;EACvE,MAAM;IAAEC,WAAW,EAAEC;EAAc,CAAC,GAAGjB,gBAAgB,CAAC,CAAC;EACzD,MAAMkB,gBAAgB,GAAGf,eAAe,CAAEgB,KAAK,IAAKA,KAAK,CAACC,SAAS,CAAC;EACpE,MAAMC,YAAY,GAAGlB,eAAe,CAAEgB,KAAK,IAAKA,KAAK,CAACE,YAAY,CAAC;;EAEnE;EACAN,YAAY,CAACO,OAAO,GAAG5B,WAAW,CAAC,YAAY;IAC7C,IAAI;MACF,MAAMuB,aAAa,CAACH,OAAO,CAACS,EAAE,CAAC;;MAE/B;MACA,IAAIL,gBAAgB,KAAKJ,OAAO,CAACS,EAAE,EAAE;QACnCF,YAAY,CAACG,SAAS,CAAC;MACzB;MAEAvB,OAAO,CAACwB,KAAK,CAACC,WAAW,CAACxB,KAAK,CAAC,gCAAgC,CAAC,CAAC;MAClED,OAAO,CAAC0B,KAAK,CAACC,OAAO,CAAC,CAAC;IACzB,CAAC,CAAC,OAAOC,GAAG,EAAE;MACZ5B,OAAO,CAACwB,KAAK,CAACK,SAAS,CAACD,GAAG,CAAC;IAC9B;EACF,CAAC,EAAE,CAACf,OAAO,CAACS,EAAE,EAAEL,gBAAgB,EAAED,aAAa,EAAEI,YAAY,CAAC,CAAC;EAE/D,MAAMU,aAAa,GAAGvB,YAAY,CAACM,OAAO,CAACkB,KAAK,EAAE,EAAE,CAAC;EACrD,MAAMC,mBAAmB,GAAG/B,KAAK,CAAC,oCAAoC,CAAC;EACvE,MAAMgC,KAAK,GAAGD,mBAAmB,CAACE,KAAK,CAAC,eAAe,CAAC;EAExD;IAAA;IACE;IACA9B,IAAA,CAACT,UAAU,CAACwC,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;MAAAC,QAAA,eAEvCjC,KAAA,CAACV,MAAM,CAAC4C,IAAI;QAACC,IAAI,EAAC,cAAc;QAACC,KAAK,EAAE7C,OAAO,CAAC8C,IAAI,CAACC,IAAK;QAAAL,QAAA,GACvDN,KAAK,CAAC,CAAC,CAAC,eAET7B,IAAA,CAACR,MAAM,CAAC4C,IAAI;UAACC,IAAI,EAAC,YAAY;UAACC,KAAK,EAAE7C,OAAO,CAAC8C,IAAI,CAACC,IAAK;UAAAL,QAAA,EACrDT;QAAa,CACH,CAAC,EACbG,KAAK,CAAC,CAAC,CAAC;MAAA,CACE;IAAC,CACC;EAAC;AAEtB,CAAC;AAED,OAAO,MAAMY,sBAAsB,GAAIhC,OAA0B,IAAK;EACpE,MAAMC,YAAY,GAAG;IAAEO,OAAO,EAAE;EAAK,CAEpC;EAEDrB,OAAO,CAAC0B,KAAK,CAACoB,IAAI,CAAC;IACjBC,MAAM,EAAE;MACNhB,KAAK,EAAE;QACLvB,IAAI,EAAEP,KAAK,CAAC,8BAA8B;MAC5C,CAAC;MACD+C,eAAe,EAAE;IACnB,CAAC;IACDC,IAAI,EAAE;MACJC,UAAU,EAAE,KAAK;MACjBC,aAAa,EAAEA,CAAA,kBACb/C,IAAA,CAACQ,aAAa;QAACC,OAAO,EAAEA,OAAQ;QAACC,YAAY,EAAEA;MAAa,CAAE;IAElE,CAAC;IACDsC,OAAO,EAAE;MACPC,IAAI,EAAE,mBAAmB;MACzBC,OAAO,EAAE,CACP;QACEC,IAAI,EAAE,OAAO;QACbC,KAAK,EAAEvD,KAAK,CAAC,+BAA+B,CAAC;QAC7CwD,MAAM,EAAE,QAAQ;QAChBC,OAAO,EAAEA,CAAA,KAAM1D,OAAO,CAAC0B,KAAK,CAACC,OAAO,CAAC;MACvC,CAAC,EACD;QACE4B,IAAI,EAAE,QAAQ;QACdC,KAAK,EAAEvD,KAAK,CAAC,gCAAgC,CAAC;QAC9CwD,MAAM,EAAE,QAAQ;QAChBC,OAAO,EAAEA,CAAA,KAAM5C,YAAY,CAACO,OAAO,GAAG;MACxC,CAAC;IAEL;EACF,CAAC,CAAC;AACJ,CAAC;AAED,MAAMgB,MAAM,GAAG3C,UAAU,CAACiE,MAAM,CAAC;EAC/BrB,SAAS,EAAE;IACTsB,OAAO,EAAE9D,aAAa,CAAC,MAAM;EAC/B;AACF,CAAC,CAAC","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":";;AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzE,SAASC,UAAU,QAAQ,cAAc;
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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.
|
|
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","
|
|
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":[]}
|