react-native-chatbot-ai 0.0.5 → 0.0.6
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/assets/images/index.js.map +1 -0
- package/lib/module/assets/svgIcon/IconChatArrow.js +25 -0
- package/lib/module/assets/svgIcon/IconChatArrow.js.map +1 -0
- package/lib/module/assets/svgIcon/IconThinkingStep.js +45 -0
- package/lib/module/assets/svgIcon/IconThinkingStep.js.map +1 -0
- package/lib/module/components/chat/ChatEmpty.js +60 -0
- package/lib/module/components/chat/ChatEmpty.js.map +1 -0
- package/lib/module/components/chat/ChatFooter.js +89 -0
- package/lib/module/components/chat/ChatFooter.js.map +1 -0
- package/lib/module/components/chat/ChatHeader.js +27 -9
- package/lib/module/components/chat/ChatHeader.js.map +1 -1
- package/lib/module/components/chat/ChatMessageList.js +38 -0
- package/lib/module/components/chat/ChatMessageList.js.map +1 -0
- package/lib/module/components/chat/SuggestionItem.js +80 -0
- package/lib/module/components/chat/SuggestionItem.js.map +1 -0
- package/lib/module/components/chat/index.js +14 -2
- package/lib/module/components/chat/index.js.map +1 -1
- package/lib/module/components/chat/item/ChatAIAnswerMessageItem.js +82 -0
- package/lib/module/components/chat/item/ChatAIAnswerMessageItem.js.map +1 -0
- package/lib/module/components/chat/item/ChatAIThinkingMessageItem.js +126 -0
- package/lib/module/components/chat/item/ChatAIThinkingMessageItem.js.map +1 -0
- package/lib/module/components/chat/item/ChatUserMessageItem.js +41 -0
- package/lib/module/components/chat/item/ChatUserMessageItem.js.map +1 -0
- package/lib/module/components/chat/item/index.js +33 -0
- package/lib/module/components/chat/item/index.js.map +1 -0
- package/lib/module/constants/events.js +8 -0
- package/lib/module/constants/events.js.map +1 -0
- package/lib/module/constants/query.js +8 -0
- package/lib/module/constants/query.js.map +1 -0
- package/lib/module/context/ChatContext.js +17 -7
- package/lib/module/context/ChatContext.js.map +1 -1
- package/lib/module/hooks/message/useMessage.js +86 -0
- package/lib/module/hooks/message/useMessage.js.map +1 -0
- package/lib/module/hooks/message/useSendMessage.js +58 -0
- package/lib/module/hooks/message/useSendMessage.js.map +1 -0
- package/lib/module/hooks/message/useStreamMessage.js +113 -0
- package/lib/module/hooks/message/useStreamMessage.js.map +1 -0
- package/lib/module/hooks/session/useCreateSession.js +18 -0
- package/lib/module/hooks/session/useCreateSession.js.map +1 -0
- package/lib/module/hooks/session/useFetchSessionById.js +14 -0
- package/lib/module/hooks/session/useFetchSessionById.js.map +1 -0
- package/lib/module/hooks/suggestions/useFetchSuggestions.js +15 -0
- package/lib/module/hooks/suggestions/useFetchSuggestions.js.map +1 -0
- package/lib/module/index.js +2 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/services/endpoints.js +11 -0
- package/lib/module/services/endpoints.js.map +1 -0
- package/lib/module/store/session.js +11 -0
- package/lib/module/store/session.js.map +1 -0
- package/lib/module/store/streamMessage.js +26 -0
- package/lib/module/store/streamMessage.js.map +1 -0
- package/lib/module/types/common.js +23 -0
- package/lib/module/types/common.js.map +1 -0
- package/lib/module/types/dto.js +2 -0
- package/lib/module/types/index.js +6 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/typescript/src/assets/images/index.d.ts.map +1 -0
- package/lib/typescript/src/assets/svgIcon/IconChatArrow.d.ts +9 -0
- package/lib/typescript/src/assets/svgIcon/IconChatArrow.d.ts.map +1 -0
- package/lib/typescript/src/assets/svgIcon/IconThinkingStep.d.ts +7 -0
- package/lib/typescript/src/assets/svgIcon/IconThinkingStep.d.ts.map +1 -0
- package/lib/typescript/src/components/chat/ChatEmpty.d.ts +3 -0
- package/lib/typescript/src/components/chat/ChatEmpty.d.ts.map +1 -0
- package/lib/typescript/src/components/chat/ChatFooter.d.ts +3 -0
- package/lib/typescript/src/components/chat/ChatFooter.d.ts.map +1 -0
- package/lib/typescript/src/components/chat/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/ChatMessageList.d.ts +3 -0
- package/lib/typescript/src/components/chat/ChatMessageList.d.ts.map +1 -0
- package/lib/typescript/src/components/chat/SuggestionItem.d.ts +8 -0
- package/lib/typescript/src/components/chat/SuggestionItem.d.ts.map +1 -0
- package/lib/typescript/src/components/chat/index.d.ts.map +1 -1
- package/lib/typescript/src/components/chat/item/ChatAIAnswerMessageItem.d.ts +8 -0
- package/lib/typescript/src/components/chat/item/ChatAIAnswerMessageItem.d.ts.map +1 -0
- package/lib/typescript/src/components/chat/item/ChatAIThinkingMessageItem.d.ts +7 -0
- package/lib/typescript/src/components/chat/item/ChatAIThinkingMessageItem.d.ts.map +1 -0
- package/lib/typescript/src/components/chat/item/ChatUserMessageItem.d.ts +7 -0
- package/lib/typescript/src/components/chat/item/ChatUserMessageItem.d.ts.map +1 -0
- package/lib/typescript/src/components/chat/item/index.d.ts +8 -0
- package/lib/typescript/src/components/chat/item/index.d.ts.map +1 -0
- package/lib/typescript/src/constants/events.d.ts +6 -0
- package/lib/typescript/src/constants/events.d.ts.map +1 -0
- package/lib/typescript/src/constants/query.d.ts +6 -0
- package/lib/typescript/src/constants/query.d.ts.map +1 -0
- package/lib/typescript/src/context/ChatContext.d.ts +2 -1
- package/lib/typescript/src/context/ChatContext.d.ts.map +1 -1
- package/lib/typescript/src/hooks/message/useMessage.d.ts +5 -0
- package/lib/typescript/src/hooks/message/useMessage.d.ts.map +1 -0
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts +5 -0
- package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -0
- package/lib/typescript/src/hooks/message/useStreamMessage.d.ts +6 -0
- package/lib/typescript/src/hooks/message/useStreamMessage.d.ts.map +1 -0
- package/lib/typescript/src/hooks/session/useCreateSession.d.ts +2 -0
- package/lib/typescript/src/hooks/session/useCreateSession.d.ts.map +1 -0
- package/lib/typescript/src/hooks/session/useFetchSessionById.d.ts +2 -0
- package/lib/typescript/src/hooks/session/useFetchSessionById.d.ts.map +1 -0
- package/lib/typescript/src/hooks/suggestions/useFetchSuggestions.d.ts +2 -0
- package/lib/typescript/src/hooks/suggestions/useFetchSuggestions.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/services/endpoints.d.ts +9 -0
- package/lib/typescript/src/services/endpoints.d.ts.map +1 -0
- package/lib/typescript/src/store/session.d.ts +4 -0
- package/lib/typescript/src/store/session.d.ts.map +1 -0
- package/lib/typescript/src/store/streamMessage.d.ts +4 -0
- package/lib/typescript/src/store/streamMessage.d.ts.map +1 -0
- package/lib/typescript/src/types/chat.d.ts +16 -2
- package/lib/typescript/src/types/chat.d.ts.map +1 -1
- package/lib/typescript/src/types/common.d.ts +29 -0
- package/lib/typescript/src/types/common.d.ts.map +1 -0
- package/lib/typescript/src/types/dto.d.ts +66 -0
- package/lib/typescript/src/types/dto.d.ts.map +1 -1
- package/lib/typescript/src/types/index.d.ts +4 -0
- package/lib/typescript/src/types/index.d.ts.map +1 -0
- package/package.json +5 -2
- package/src/assets/svgIcon/IconChatArrow.tsx +21 -0
- package/src/assets/svgIcon/IconThinkingStep.tsx +35 -0
- package/src/components/chat/ChatEmpty.tsx +52 -0
- package/src/components/chat/ChatFooter.tsx +82 -0
- package/src/components/chat/ChatHeader.tsx +18 -2
- package/src/components/chat/ChatMessageList.tsx +33 -0
- package/src/components/chat/SuggestionItem.tsx +64 -0
- package/src/components/chat/index.tsx +15 -1
- package/src/components/chat/item/ChatAIAnswerMessageItem.tsx +84 -0
- package/src/components/chat/item/ChatAIThinkingMessageItem.tsx +130 -0
- package/src/components/chat/item/ChatUserMessageItem.tsx +39 -0
- package/src/components/chat/item/index.tsx +23 -0
- package/src/constants/events.ts +5 -0
- package/src/constants/query.ts +5 -0
- package/src/context/ChatContext.tsx +12 -5
- package/src/hooks/message/useMessage.ts +94 -0
- package/src/hooks/message/useSendMessage.ts +58 -0
- package/src/hooks/message/useStreamMessage.ts +130 -0
- package/src/hooks/session/useCreateSession.ts +23 -0
- package/src/hooks/session/useFetchSessionById.ts +17 -0
- package/src/hooks/suggestions/useFetchSuggestions.ts +18 -0
- package/src/index.ts +3 -2
- package/src/services/endpoints.ts +9 -0
- package/src/store/session.ts +9 -0
- package/src/store/streamMessage.ts +24 -0
- package/src/types/chat.ts +21 -3
- package/src/types/common.ts +32 -0
- package/src/types/dto.ts +74 -0
- package/src/types/index.ts +3 -0
- package/lib/module/images/index.js.map +0 -1
- package/lib/module/utils/index.js +0 -2
- package/lib/module/utils/index.js.map +0 -1
- package/lib/typescript/src/images/index.d.ts.map +0 -1
- package/lib/typescript/src/utils/index.d.ts +0 -1
- package/lib/typescript/src/utils/index.d.ts.map +0 -1
- package/src/utils/index.ts +0 -0
- /package/lib/module/{images → assets/images}/bg_header.png +0 -0
- /package/lib/module/{images → assets/images}/index.js +0 -0
- /package/lib/typescript/src/{images → assets/images}/index.d.ts +0 -0
- /package/src/{images → assets/images}/bg_header.png +0 -0
- /package/src/{images → assets/images}/index.ts +0 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { KContainer, KLabel, KColors, KSpacingValue, KListItem } from '@droppii/libs';
|
|
4
|
+
import { StyleSheet } from 'react-native';
|
|
5
|
+
import Markdown from 'react-native-markdown-display';
|
|
6
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
7
|
+
import { IconThinkingStep } from "../../../assets/svgIcon/IconThinkingStep.js";
|
|
8
|
+
import { IconChatArrow } from "../../../assets/svgIcon/IconChatArrow.js";
|
|
9
|
+
import useStreamMessageStore from "../../../store/streamMessage.js";
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
const markDownRules = {
|
|
12
|
+
body: (node, children, _, styles) => /*#__PURE__*/_jsx(KContainer.View, {
|
|
13
|
+
style: styles,
|
|
14
|
+
children: children
|
|
15
|
+
}, node.key),
|
|
16
|
+
paragraph: (node, children, _, styles) => /*#__PURE__*/_jsx(KLabel.Text, {
|
|
17
|
+
typo: "TextSmNormal",
|
|
18
|
+
style: styles,
|
|
19
|
+
color: KColors.black,
|
|
20
|
+
children: children
|
|
21
|
+
}, node.key),
|
|
22
|
+
span: (node, children, _, styles) => /*#__PURE__*/_jsx(KLabel.Text, {
|
|
23
|
+
typo: "TextSmNormal",
|
|
24
|
+
style: styles,
|
|
25
|
+
color: KColors.black,
|
|
26
|
+
children: children
|
|
27
|
+
}, node.key),
|
|
28
|
+
strong: (node, children, _, styles) => /*#__PURE__*/_jsx(KLabel.Text, {
|
|
29
|
+
typo: "TextSmBold",
|
|
30
|
+
style: styles,
|
|
31
|
+
color: KColors.black,
|
|
32
|
+
children: children
|
|
33
|
+
}, node.key)
|
|
34
|
+
};
|
|
35
|
+
const ChatAIThinkingMessageItem = ({
|
|
36
|
+
item
|
|
37
|
+
}) => {
|
|
38
|
+
const streamMessage = useStreamMessageStore(state => state.streamMessage?.[item.id]);
|
|
39
|
+
const [display, setDisplay] = useState('');
|
|
40
|
+
const indexRef = useRef(0);
|
|
41
|
+
const renderHeader = useCallback(() => {
|
|
42
|
+
return /*#__PURE__*/_jsxs(KContainer.View, {
|
|
43
|
+
style: styles.header,
|
|
44
|
+
children: [/*#__PURE__*/_jsx(IconThinkingStep, {}), /*#__PURE__*/_jsx(KLabel.Text, {
|
|
45
|
+
typo: "TextSmBold",
|
|
46
|
+
color: KColors.gray.normal,
|
|
47
|
+
children: 'Phân tích'
|
|
48
|
+
})]
|
|
49
|
+
});
|
|
50
|
+
}, []);
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
if (!streamMessage) {
|
|
53
|
+
indexRef.current = 0;
|
|
54
|
+
setDisplay(item.content);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const interval = setInterval(() => {
|
|
58
|
+
const remaining = streamMessage.content.slice(indexRef.current);
|
|
59
|
+
if (remaining.length === 0) {
|
|
60
|
+
clearInterval(interval);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const chunkSize = 2;
|
|
64
|
+
const chunk = remaining.slice(0, chunkSize);
|
|
65
|
+
setDisplay(prev => prev + chunk);
|
|
66
|
+
indexRef.current += chunk.length;
|
|
67
|
+
}, 20);
|
|
68
|
+
return () => clearInterval(interval);
|
|
69
|
+
}, [streamMessage, item]);
|
|
70
|
+
return /*#__PURE__*/_jsx(KListItem.Accordion, {
|
|
71
|
+
header: renderHeader,
|
|
72
|
+
containerStyle: styles.container,
|
|
73
|
+
headerStyle: styles.mHeader,
|
|
74
|
+
value: !!streamMessage,
|
|
75
|
+
children: /*#__PURE__*/_jsxs(KContainer.View, {
|
|
76
|
+
style: styles.contentContainer,
|
|
77
|
+
children: [/*#__PURE__*/_jsx(KContainer.View, {
|
|
78
|
+
style: styles.arrow,
|
|
79
|
+
children: /*#__PURE__*/_jsx(IconChatArrow, {
|
|
80
|
+
fill: '#0077FF'
|
|
81
|
+
})
|
|
82
|
+
}), /*#__PURE__*/_jsx(KContainer.View, {
|
|
83
|
+
style: styles.content,
|
|
84
|
+
children: /*#__PURE__*/_jsx(Markdown, {
|
|
85
|
+
rules: markDownRules,
|
|
86
|
+
children: display
|
|
87
|
+
})
|
|
88
|
+
})]
|
|
89
|
+
})
|
|
90
|
+
}, item.id.toString());
|
|
91
|
+
};
|
|
92
|
+
export default ChatAIThinkingMessageItem;
|
|
93
|
+
const styles = StyleSheet.create({
|
|
94
|
+
container: {
|
|
95
|
+
paddingHorizontal: KSpacingValue['1rem'],
|
|
96
|
+
borderBottomWidth: 0,
|
|
97
|
+
paddingVertical: 0
|
|
98
|
+
},
|
|
99
|
+
header: {
|
|
100
|
+
flexDirection: 'row',
|
|
101
|
+
alignItems: 'center',
|
|
102
|
+
paddingVertical: KSpacingValue['0.25rem'],
|
|
103
|
+
gap: KSpacingValue['0.5rem']
|
|
104
|
+
},
|
|
105
|
+
mHeader: {
|
|
106
|
+
paddingVertical: 0,
|
|
107
|
+
marginBottom: KSpacingValue['0.25rem']
|
|
108
|
+
},
|
|
109
|
+
contentContainer: {
|
|
110
|
+
flexDirection: 'row'
|
|
111
|
+
},
|
|
112
|
+
content: {
|
|
113
|
+
maxWidth: '90%',
|
|
114
|
+
paddingHorizontal: KSpacingValue['1rem'],
|
|
115
|
+
paddingVertical: KSpacingValue['0.5rem'],
|
|
116
|
+
backgroundColor: KColors.hexToRgba('#0077FF', 0.1),
|
|
117
|
+
borderRadius: KSpacingValue['1rem'],
|
|
118
|
+
borderTopLeftRadius: 0
|
|
119
|
+
},
|
|
120
|
+
arrow: {
|
|
121
|
+
transform: [{
|
|
122
|
+
rotateY: '180deg'
|
|
123
|
+
}]
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
//# sourceMappingURL=ChatAIThinkingMessageItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["KContainer","KLabel","KColors","KSpacingValue","KListItem","StyleSheet","Markdown","useCallback","useEffect","useRef","useState","IconThinkingStep","IconChatArrow","useStreamMessageStore","jsx","_jsx","jsxs","_jsxs","markDownRules","body","node","children","_","styles","View","style","key","paragraph","Text","typo","color","black","span","strong","ChatAIThinkingMessageItem","item","streamMessage","state","id","display","setDisplay","indexRef","renderHeader","header","gray","normal","current","content","interval","setInterval","remaining","slice","length","clearInterval","chunkSize","chunk","prev","Accordion","containerStyle","container","headerStyle","mHeader","value","contentContainer","arrow","fill","rules","toString","create","paddingHorizontal","borderBottomWidth","paddingVertical","flexDirection","alignItems","gap","marginBottom","maxWidth","backgroundColor","hexToRgba","borderRadius","borderTopLeftRadius","transform","rotateY"],"sourceRoot":"../../../../../src","sources":["components/chat/item/ChatAIThinkingMessageItem.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StyleSheet } from 'react-native';
|
|
4
|
+
import { KColors, KContainer, KLabel, KSpacingValue } from '@droppii/libs';
|
|
5
|
+
import { IconChatArrow } from "../../../assets/svgIcon/IconChatArrow.js";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
const ChatUserMessageItem = ({
|
|
8
|
+
item
|
|
9
|
+
}) => {
|
|
10
|
+
return /*#__PURE__*/_jsxs(KContainer.View, {
|
|
11
|
+
style: styles.container,
|
|
12
|
+
children: [/*#__PURE__*/_jsx(KContainer.View, {
|
|
13
|
+
style: styles.content,
|
|
14
|
+
children: /*#__PURE__*/_jsx(KLabel.Text, {
|
|
15
|
+
typo: "TextMdNormal",
|
|
16
|
+
color: KColors.black,
|
|
17
|
+
children: item.content
|
|
18
|
+
})
|
|
19
|
+
}), /*#__PURE__*/_jsx(IconChatArrow, {
|
|
20
|
+
fill: '#0077FF'
|
|
21
|
+
})]
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
export default ChatUserMessageItem;
|
|
25
|
+
const styles = StyleSheet.create({
|
|
26
|
+
container: {
|
|
27
|
+
flexDirection: 'row',
|
|
28
|
+
justifyContent: 'flex-end',
|
|
29
|
+
paddingHorizontal: KSpacingValue['1rem'],
|
|
30
|
+
marginVertical: KSpacingValue['0.5rem']
|
|
31
|
+
},
|
|
32
|
+
content: {
|
|
33
|
+
maxWidth: '70%',
|
|
34
|
+
paddingHorizontal: KSpacingValue['1rem'],
|
|
35
|
+
paddingVertical: KSpacingValue['0.5rem'],
|
|
36
|
+
backgroundColor: KColors.hexToRgba('#0077FF', 0.1),
|
|
37
|
+
borderRadius: KSpacingValue['1rem'],
|
|
38
|
+
borderTopRightRadius: 0
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=ChatUserMessageItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSheet","KColors","KContainer","KLabel","KSpacingValue","IconChatArrow","jsx","_jsx","jsxs","_jsxs","ChatUserMessageItem","item","View","style","styles","container","children","content","Text","typo","color","black","fill","create","flexDirection","justifyContent","paddingHorizontal","marginVertical","maxWidth","paddingVertical","backgroundColor","hexToRgba","borderRadius","borderTopRightRadius"],"sourceRoot":"../../../../../src","sources":["components/chat/item/ChatUserMessageItem.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,aAAa,QAAQ,eAAe;AAE1E,SAASC,aAAa,QAAQ,0CAAuC;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAKtE,MAAMC,mBAAmB,GAAGA,CAAC;EAAEC;AAA+B,CAAC,KAAK;EAClE,oBACEF,KAAA,CAACP,UAAU,CAACU,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBACvCT,IAAA,CAACL,UAAU,CAACU,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACG,OAAQ;MAAAD,QAAA,eACrCT,IAAA,CAACJ,MAAM,CAACe,IAAI;QAACC,IAAI,EAAC,cAAc;QAACC,KAAK,EAAEnB,OAAO,CAACoB,KAAM;QAAAL,QAAA,EACnDL,IAAI,CAACM;MAAO,CACF;IAAC,CACC,CAAC,eAClBV,IAAA,CAACF,aAAa;MAACiB,IAAI,EAAE;IAAU,CAAE,CAAC;EAAA,CACnB,CAAC;AAEtB,CAAC;AAED,eAAeZ,mBAAmB;AAElC,MAAMI,MAAM,GAAGd,UAAU,CAACuB,MAAM,CAAC;EAC/BR,SAAS,EAAE;IACTS,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,UAAU;IAC1BC,iBAAiB,EAAEtB,aAAa,CAAC,MAAM,CAAC;IACxCuB,cAAc,EAAEvB,aAAa,CAAC,QAAQ;EACxC,CAAC;EACDa,OAAO,EAAE;IACPW,QAAQ,EAAE,KAAK;IACfF,iBAAiB,EAAEtB,aAAa,CAAC,MAAM,CAAC;IACxCyB,eAAe,EAAEzB,aAAa,CAAC,QAAQ,CAAC;IACxC0B,eAAe,EAAE7B,OAAO,CAAC8B,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC;IAClDC,YAAY,EAAE5B,aAAa,CAAC,MAAM,CAAC;IACnC6B,oBAAoB,EAAE;EACxB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { MessageType } from "../../../types/index.js";
|
|
4
|
+
import ChatAIAnswerMessageItem from "./ChatAIAnswerMessageItem.js";
|
|
5
|
+
import ChatAIThinkingMessageItem from "./ChatAIThinkingMessageItem.js";
|
|
6
|
+
import ChatUserMessageItem from "./ChatUserMessageItem.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
const ChatItem = ({
|
|
9
|
+
item,
|
|
10
|
+
index
|
|
11
|
+
}) => {
|
|
12
|
+
switch (item.type) {
|
|
13
|
+
case MessageType.user_message:
|
|
14
|
+
return /*#__PURE__*/_jsx(ChatUserMessageItem, {
|
|
15
|
+
item: item
|
|
16
|
+
});
|
|
17
|
+
case MessageType.ai_answer:
|
|
18
|
+
return /*#__PURE__*/_jsx(ChatAIAnswerMessageItem, {
|
|
19
|
+
item: item,
|
|
20
|
+
isLast: index === 0
|
|
21
|
+
});
|
|
22
|
+
case MessageType.ai_thinking:
|
|
23
|
+
return /*#__PURE__*/_jsx(ChatAIThinkingMessageItem, {
|
|
24
|
+
item: item
|
|
25
|
+
});
|
|
26
|
+
default:
|
|
27
|
+
return /*#__PURE__*/_jsx(ChatUserMessageItem, {
|
|
28
|
+
item: item
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
export default ChatItem;
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MessageType","ChatAIAnswerMessageItem","ChatAIThinkingMessageItem","ChatUserMessageItem","jsx","_jsx","ChatItem","item","index","type","user_message","ai_answer","isLast","ai_thinking"],"sourceRoot":"../../../../../src","sources":["components/chat/item/index.tsx"],"mappings":";;AAAA,SAAuBA,WAAW,QAAQ,yBAAgB;AAC1D,OAAOC,uBAAuB,MAAM,8BAA2B;AAC/D,OAAOC,yBAAyB,MAAM,gCAA6B;AACnE,OAAOC,mBAAmB,MAAM,0BAAuB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAMxD,MAAMC,QAAQ,GAAGA,CAAC;EAAEC,IAAI;EAAEC;AAAqB,CAAC,KAAK;EACnD,QAAQD,IAAI,CAACE,IAAI;IACf,KAAKT,WAAW,CAACU,YAAY;MAC3B,oBAAOL,IAAA,CAACF,mBAAmB;QAACI,IAAI,EAAEA;MAAK,CAAE,CAAC;IAC5C,KAAKP,WAAW,CAACW,SAAS;MACxB,oBAAON,IAAA,CAACJ,uBAAuB;QAACM,IAAI,EAAEA,IAAK;QAACK,MAAM,EAAEJ,KAAK,KAAK;MAAE,CAAE,CAAC;IACrE,KAAKR,WAAW,CAACa,WAAW;MAC1B,oBAAOR,IAAA,CAACH,yBAAyB;QAACK,IAAI,EAAEA;MAAK,CAAE,CAAC;IAClD;MACE,oBAAOF,IAAA,CAACF,mBAAmB;QAACI,IAAI,EAAEA;MAAK,CAAE,CAAC;EAC9C;AACF,CAAC;AAED,eAAeD,QAAQ","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["events","updateOneMessage","updateMultipleMessage","forceUpdateMessages"],"sourceRoot":"../../../src","sources":["constants/events.ts"],"mappings":";;AAAA,OAAO,MAAMA,MAAM,GAAG;EACpBC,gBAAgB,EAAE,oBAAoB;EACtCC,qBAAqB,EAAE,yBAAyB;EAChDC,mBAAmB,EAAE;AACvB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["QUERY_KEYS","GET_SUGGESTIONS","GET_SESSION_BY_ID","CREATE_SESSION"],"sourceRoot":"../../../src","sources":["constants/query.ts"],"mappings":";;AAAA,OAAO,MAAMA,UAAU,GAAG;EACxBC,eAAe,EAAE,iBAAiB;EAClCC,iBAAiB,EAAE,mBAAmB;EACtCC,cAAc,EAAE;AAClB,CAAC","ignoreList":[]}
|
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { createContext } from 'react';
|
|
3
|
+
import { createContext, useContext } from 'react';
|
|
4
|
+
import ChatBotAI from "../components/chat/index.js";
|
|
4
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
-
export const ChatContext = /*#__PURE__*/createContext({
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
})
|
|
6
|
+
export const ChatContext = /*#__PURE__*/createContext({
|
|
7
|
+
apiAddress: '',
|
|
8
|
+
userId: ''
|
|
9
|
+
});
|
|
10
|
+
export const useChatContext = () => useContext(ChatContext);
|
|
11
|
+
export const ChatProvider = props => {
|
|
12
|
+
const {
|
|
13
|
+
apiAddress,
|
|
14
|
+
userId
|
|
15
|
+
} = props;
|
|
9
16
|
return /*#__PURE__*/_jsx(ChatContext.Provider, {
|
|
10
|
-
value: {
|
|
11
|
-
|
|
17
|
+
value: {
|
|
18
|
+
apiAddress,
|
|
19
|
+
userId
|
|
20
|
+
},
|
|
21
|
+
children: /*#__PURE__*/_jsx(ChatBotAI, {})
|
|
12
22
|
});
|
|
13
23
|
};
|
|
14
24
|
//# sourceMappingURL=ChatContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createContext","jsx","_jsx","ChatContext","ChatProvider","
|
|
1
|
+
{"version":3,"names":["createContext","useContext","ChatBotAI","jsx","_jsx","ChatContext","apiAddress","userId","useChatContext","ChatProvider","props","Provider","value","children"],"sourceRoot":"../../../src","sources":["context/ChatContext.tsx"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ,OAAO;AAEjD,OAAOC,SAAS,MAAM,6BAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE3C,OAAO,MAAMC,WAAW,gBAAGL,aAAa,CAAkB;EACxDM,UAAU,EAAE,EAAE;EACdC,MAAM,EAAE;AACV,CAAC,CAAC;AAEF,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAMP,UAAU,CAACI,WAAW,CAAC;AAE3D,OAAO,MAAMI,YAAY,GAAIC,KAAwB,IAAK;EACxD,MAAM;IAAEJ,UAAU;IAAEC;EAAO,CAAC,GAAGG,KAAK;EACpC,oBACEN,IAAA,CAACC,WAAW,CAACM,QAAQ;IAACC,KAAK,EAAE;MAAEN,UAAU;MAAEC;IAAO,CAAE;IAAAM,QAAA,eAClDT,IAAA,CAACF,SAAS,IAAE;EAAC,CACO,CAAC;AAE3B,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
4
|
+
import useSessionStore from "../../store/session.js";
|
|
5
|
+
import { useFetchSessionById } from "../session/useFetchSessionById.js";
|
|
6
|
+
import { DeviceEventEmitter } from 'react-native';
|
|
7
|
+
import { events } from "../../constants/events.js";
|
|
8
|
+
const initialState = {
|
|
9
|
+
id: '',
|
|
10
|
+
title: '',
|
|
11
|
+
created_at: '',
|
|
12
|
+
updated_at: '',
|
|
13
|
+
metadata: {
|
|
14
|
+
source: ''
|
|
15
|
+
},
|
|
16
|
+
shared: false,
|
|
17
|
+
messages: []
|
|
18
|
+
};
|
|
19
|
+
export const useMessage = () => {
|
|
20
|
+
const sessionId = useSessionStore(state => state.sessionId);
|
|
21
|
+
const {
|
|
22
|
+
mutateAsync: getSessionById
|
|
23
|
+
} = useFetchSessionById();
|
|
24
|
+
const [loadState, setLoadState] = useState(initialState);
|
|
25
|
+
const onGetSessionById = useCallback(async () => {
|
|
26
|
+
if (!sessionId) return;
|
|
27
|
+
const res = await getSessionById(sessionId);
|
|
28
|
+
if (!res) return;
|
|
29
|
+
setLoadState(prev => ({
|
|
30
|
+
...res,
|
|
31
|
+
messages: res?.messages?.length > 0 ? res.messages.reverse() : prev.messages
|
|
32
|
+
}));
|
|
33
|
+
}, [sessionId]);
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
if (!sessionId) {
|
|
36
|
+
setLoadState(initialState);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
onGetSessionById();
|
|
40
|
+
}, [sessionId]);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
const subOneMessage = DeviceEventEmitter.addListener(events.updateOneMessage, messageItem => {
|
|
43
|
+
setLoadState(prev => ({
|
|
44
|
+
...prev,
|
|
45
|
+
messages: [messageItem, ...prev.messages]
|
|
46
|
+
}));
|
|
47
|
+
});
|
|
48
|
+
const subMultipleMessage = DeviceEventEmitter.addListener(events.updateMultipleMessage, messageItems => {
|
|
49
|
+
setLoadState(prev => {
|
|
50
|
+
const existingIds = new Set(prev.messages.map(m => m?.id));
|
|
51
|
+
const filtered = messageItems.filter(m => !existingIds.has(m?.id)).reverse();
|
|
52
|
+
console.log('🚀 ~ useEffect ~ filtered:', prev.messages);
|
|
53
|
+
return {
|
|
54
|
+
...prev,
|
|
55
|
+
messages: [...filtered, ...prev.messages]
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
const subForceUpdateMessages = DeviceEventEmitter.addListener(events.forceUpdateMessages, messages => {
|
|
60
|
+
setLoadState(prev => {
|
|
61
|
+
const merged = prev.messages.map(msg => {
|
|
62
|
+
const update = messages.find(u => u.id === msg.id);
|
|
63
|
+
return update ? {
|
|
64
|
+
...msg,
|
|
65
|
+
...update
|
|
66
|
+
} : msg;
|
|
67
|
+
});
|
|
68
|
+
const existingIds = new Set(prev.messages.map(m => m.id));
|
|
69
|
+
const newItems = messages.filter(u => !existingIds.has(u.id));
|
|
70
|
+
return {
|
|
71
|
+
...prev,
|
|
72
|
+
messages: [...newItems, ...merged]
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
return () => {
|
|
77
|
+
subOneMessage.remove();
|
|
78
|
+
subMultipleMessage.remove();
|
|
79
|
+
subForceUpdateMessages.remove();
|
|
80
|
+
};
|
|
81
|
+
}, []);
|
|
82
|
+
return {
|
|
83
|
+
messageState: loadState
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=useMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useState","useSessionStore","useFetchSessionById","DeviceEventEmitter","events","initialState","id","title","created_at","updated_at","metadata","source","shared","messages","useMessage","sessionId","state","mutateAsync","getSessionById","loadState","setLoadState","onGetSessionById","res","prev","length","reverse","subOneMessage","addListener","updateOneMessage","messageItem","subMultipleMessage","updateMultipleMessage","messageItems","existingIds","Set","map","m","filtered","filter","has","console","log","subForceUpdateMessages","forceUpdateMessages","merged","msg","update","find","u","newItems","remove","messageState"],"sourceRoot":"../../../../src","sources":["hooks/message/useMessage.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback } from 'react';
|
|
4
|
+
import useSessionStore from "../../store/session.js";
|
|
5
|
+
import { useStreamMessage } from "./useStreamMessage.js";
|
|
6
|
+
import { events } from "../../constants/events.js";
|
|
7
|
+
import { DeviceEventEmitter } from 'react-native';
|
|
8
|
+
import { MessageType, RoleType } from "../../types/index.js";
|
|
9
|
+
import dayjs from 'dayjs';
|
|
10
|
+
import { useCreateSession } from "../session/useCreateSession.js";
|
|
11
|
+
export const useSendMessage = () => {
|
|
12
|
+
const {
|
|
13
|
+
startStream,
|
|
14
|
+
stopStream
|
|
15
|
+
} = useStreamMessage();
|
|
16
|
+
const {
|
|
17
|
+
mutateAsync: createSession
|
|
18
|
+
} = useCreateSession();
|
|
19
|
+
const onSendMessage = useCallback(async message => {
|
|
20
|
+
const messageItem = {
|
|
21
|
+
id: dayjs().valueOf().toString(),
|
|
22
|
+
attachments: [],
|
|
23
|
+
type: MessageType.user_message,
|
|
24
|
+
created_at: dayjs().toISOString(),
|
|
25
|
+
modified_at: dayjs().toISOString(),
|
|
26
|
+
content: message,
|
|
27
|
+
additional_kwargs: {},
|
|
28
|
+
response_metadata: {},
|
|
29
|
+
name: null,
|
|
30
|
+
role: RoleType.user,
|
|
31
|
+
metadata: {}
|
|
32
|
+
};
|
|
33
|
+
DeviceEventEmitter.emit(events.updateOneMessage, messageItem);
|
|
34
|
+
let latestSessionId;
|
|
35
|
+
if (!useSessionStore.getState().sessionId) {
|
|
36
|
+
const resSession = await createSession({
|
|
37
|
+
title: message
|
|
38
|
+
});
|
|
39
|
+
if (!resSession) return;
|
|
40
|
+
useSessionStore.getState().setSessionId(resSession.id);
|
|
41
|
+
latestSessionId = resSession.id;
|
|
42
|
+
}
|
|
43
|
+
startStream({
|
|
44
|
+
content: message,
|
|
45
|
+
stream: true,
|
|
46
|
+
attachments: [],
|
|
47
|
+
metadata: {
|
|
48
|
+
source: 'user'
|
|
49
|
+
},
|
|
50
|
+
manual_retry_attempts: 0
|
|
51
|
+
}, latestSessionId);
|
|
52
|
+
}, [startStream]);
|
|
53
|
+
return {
|
|
54
|
+
onSendMessage,
|
|
55
|
+
stopStream
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=useSendMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useSessionStore","useStreamMessage","events","DeviceEventEmitter","MessageType","RoleType","dayjs","useCreateSession","useSendMessage","startStream","stopStream","mutateAsync","createSession","onSendMessage","message","messageItem","id","valueOf","toString","attachments","type","user_message","created_at","toISOString","modified_at","content","additional_kwargs","response_metadata","name","role","user","metadata","emit","updateOneMessage","latestSessionId","getState","sessionId","resSession","title","setSessionId","stream","source","manual_retry_attempts"],"sourceRoot":"../../../../src","sources":["hooks/message/useSendMessage.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,OAAOC,eAAe,MAAM,wBAAqB;AACjD,SAASC,gBAAgB,QAAQ,uBAAoB;AACrD,SAASC,MAAM,QAAQ,2BAAwB;AAC/C,SAASC,kBAAkB,QAAQ,cAAc;AACjD,SAAuBC,WAAW,EAAEC,QAAQ,QAAQ,sBAAa;AACjE,OAAOC,KAAK,MAAM,OAAO;AACzB,SAASC,gBAAgB,QAAQ,gCAA6B;AAE9D,OAAO,MAAMC,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAM;IAAEC,WAAW;IAAEC;EAAW,CAAC,GAAGT,gBAAgB,CAAC,CAAC;EACtD,MAAM;IAAEU,WAAW,EAAEC;EAAc,CAAC,GAAGL,gBAAgB,CAAC,CAAC;EAEzD,MAAMM,aAAa,GAAGd,WAAW,CAC/B,MAAOe,OAAe,IAAK;IACzB,MAAMC,WAAyB,GAAG;MAChCC,EAAE,EAAEV,KAAK,CAAC,CAAC,CAACW,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC;MAChCC,WAAW,EAAE,EAAE;MACfC,IAAI,EAAEhB,WAAW,CAACiB,YAAY;MAC9BC,UAAU,EAAEhB,KAAK,CAAC,CAAC,CAACiB,WAAW,CAAC,CAAC;MACjCC,WAAW,EAAElB,KAAK,CAAC,CAAC,CAACiB,WAAW,CAAC,CAAC;MAClCE,OAAO,EAAEX,OAAO;MAChBY,iBAAiB,EAAE,CAAC,CAAC;MACrBC,iBAAiB,EAAE,CAAC,CAAC;MACrBC,IAAI,EAAE,IAAI;MACVC,IAAI,EAAExB,QAAQ,CAACyB,IAAI;MACnBC,QAAQ,EAAE,CAAC;IACb,CAAC;IACD5B,kBAAkB,CAAC6B,IAAI,CAAC9B,MAAM,CAAC+B,gBAAgB,EAAElB,WAAW,CAAC;IAE7D,IAAImB,eAAe;IACnB,IAAI,CAAClC,eAAe,CAACmC,QAAQ,CAAC,CAAC,CAACC,SAAS,EAAE;MACzC,MAAMC,UAAU,GAAG,MAAMzB,aAAa,CAAC;QAAE0B,KAAK,EAAExB;MAAQ,CAAC,CAAC;MAC1D,IAAI,CAACuB,UAAU,EAAE;MACjBrC,eAAe,CAACmC,QAAQ,CAAC,CAAC,CAACI,YAAY,CAACF,UAAU,CAACrB,EAAE,CAAC;MACtDkB,eAAe,GAAGG,UAAU,CAACrB,EAAE;IACjC;IACAP,WAAW,CACT;MACEgB,OAAO,EAAEX,OAAO;MAChB0B,MAAM,EAAE,IAAI;MACZrB,WAAW,EAAE,EAAE;MACfY,QAAQ,EAAE;QACRU,MAAM,EAAE;MACV,CAAC;MACDC,qBAAqB,EAAE;IACzB,CAAC,EACDR,eACF,CAAC;EACH,CAAC,EACD,CAACzB,WAAW,CACd,CAAC;EAED,OAAO;IACLI,aAAa;IACbH;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useRef, useCallback } from 'react';
|
|
4
|
+
import { useChatContext } from "../../context/ChatContext.js";
|
|
5
|
+
import { ENDPOINTS } from "../../services/endpoints.js";
|
|
6
|
+
import EventSource from 'react-native-sse';
|
|
7
|
+
import useStreamMessageStore from "../../store/streamMessage.js";
|
|
8
|
+
import throttle from 'lodash/throttle';
|
|
9
|
+
import { DeviceEventEmitter } from 'react-native';
|
|
10
|
+
import { events } from "../../constants/events.js";
|
|
11
|
+
import useSessionStore from "../../store/session.js";
|
|
12
|
+
export const useStreamMessage = () => {
|
|
13
|
+
const sessionId = useSessionStore(state => state.sessionId);
|
|
14
|
+
const esRef = useRef(null);
|
|
15
|
+
const sessionIdRef = useRef(sessionId);
|
|
16
|
+
const {
|
|
17
|
+
apiAddress
|
|
18
|
+
} = useChatContext();
|
|
19
|
+
const setStreamMessage = useStreamMessageStore(state => state.setStreamMessage);
|
|
20
|
+
const setIsStreaming = useStreamMessageStore(state => state.setIsStreaming);
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
sessionIdRef.current = sessionId;
|
|
23
|
+
}, [sessionId]);
|
|
24
|
+
const startStream = useCallback((payload, latestSessionId) => {
|
|
25
|
+
const token = global?.accessToken;
|
|
26
|
+
const currentSessionId = latestSessionId || sessionIdRef.current;
|
|
27
|
+
if (!currentSessionId || !token) return;
|
|
28
|
+
if (esRef.current) {
|
|
29
|
+
esRef.current.close();
|
|
30
|
+
esRef.current = null;
|
|
31
|
+
}
|
|
32
|
+
const url = `${apiAddress}${ENDPOINTS.assistantService.getStreamMessage(currentSessionId)}`;
|
|
33
|
+
const es = new EventSource(url, {
|
|
34
|
+
method: 'POST',
|
|
35
|
+
headers: {
|
|
36
|
+
'Content-Type': 'application/json',
|
|
37
|
+
Authorization: `Bearer ${token}`
|
|
38
|
+
},
|
|
39
|
+
body: JSON.stringify(payload)
|
|
40
|
+
});
|
|
41
|
+
es.addEventListener('open', () => {
|
|
42
|
+
console.log('🔵 Stream opened');
|
|
43
|
+
setIsStreaming(true);
|
|
44
|
+
setStreamMessage({});
|
|
45
|
+
});
|
|
46
|
+
let buffers = {};
|
|
47
|
+
const throttledFlush = throttle(() => {
|
|
48
|
+
DeviceEventEmitter.emit(events.updateMultipleMessage, Object.values(buffers).map(m => ({
|
|
49
|
+
...m,
|
|
50
|
+
content: ''
|
|
51
|
+
})));
|
|
52
|
+
setStreamMessage(buffers);
|
|
53
|
+
}, 300, {
|
|
54
|
+
leading: true,
|
|
55
|
+
trailing: true
|
|
56
|
+
});
|
|
57
|
+
es.addEventListener('message', event => {
|
|
58
|
+
console.log('📩 Stream message:', typeof event.data, JSON?.parse?.(event?.data || '{}'));
|
|
59
|
+
try {
|
|
60
|
+
const data = JSON?.parse?.(event?.data || '{}');
|
|
61
|
+
if (!!data?.is_done) {
|
|
62
|
+
console.log('✅ Stream done');
|
|
63
|
+
es.close();
|
|
64
|
+
setIsStreaming(false);
|
|
65
|
+
} else {
|
|
66
|
+
const message = data?.messages;
|
|
67
|
+
if (!message?.id) return;
|
|
68
|
+
if (buffers?.[message?.id]) {
|
|
69
|
+
buffers[message?.id] = {
|
|
70
|
+
...message,
|
|
71
|
+
content: [buffers?.[message?.id]?.content || '', message?.content || ''].join('')
|
|
72
|
+
};
|
|
73
|
+
} else {
|
|
74
|
+
buffers[message?.id] = message;
|
|
75
|
+
}
|
|
76
|
+
throttledFlush();
|
|
77
|
+
}
|
|
78
|
+
} catch (error) {
|
|
79
|
+
es.close();
|
|
80
|
+
setIsStreaming(false);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
es.addEventListener('error', err => {
|
|
84
|
+
console.log('❌ Stream error:', err);
|
|
85
|
+
setIsStreaming(false);
|
|
86
|
+
});
|
|
87
|
+
es.addEventListener('close', () => {
|
|
88
|
+
console.log('🔴 Stream closed');
|
|
89
|
+
DeviceEventEmitter.emit(events.forceUpdateMessages, Object.values(buffers));
|
|
90
|
+
buffers = {};
|
|
91
|
+
setIsStreaming(false);
|
|
92
|
+
});
|
|
93
|
+
esRef.current = es;
|
|
94
|
+
}, [apiAddress]);
|
|
95
|
+
const stopStream = useCallback(() => {
|
|
96
|
+
if (esRef.current) {
|
|
97
|
+
console.log('🛑 Closing stream');
|
|
98
|
+
esRef.current.close();
|
|
99
|
+
esRef.current = null;
|
|
100
|
+
setIsStreaming(false);
|
|
101
|
+
}
|
|
102
|
+
}, []);
|
|
103
|
+
useEffect(() => {
|
|
104
|
+
return () => {
|
|
105
|
+
stopStream();
|
|
106
|
+
};
|
|
107
|
+
}, [stopStream]);
|
|
108
|
+
return {
|
|
109
|
+
startStream,
|
|
110
|
+
stopStream
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=useStreamMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useCallback","useChatContext","ENDPOINTS","EventSource","useStreamMessageStore","throttle","DeviceEventEmitter","events","useSessionStore","useStreamMessage","sessionId","state","esRef","sessionIdRef","apiAddress","setStreamMessage","setIsStreaming","current","startStream","payload","latestSessionId","token","global","accessToken","currentSessionId","close","url","assistantService","getStreamMessage","es","method","headers","Authorization","body","JSON","stringify","addEventListener","console","log","buffers","throttledFlush","emit","updateMultipleMessage","Object","values","map","m","content","leading","trailing","event","data","parse","is_done","message","messages","id","join","error","err","forceUpdateMessages","stopStream"],"sourceRoot":"../../../../src","sources":["hooks/message/useStreamMessage.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useMutation } from '@tanstack/react-query';
|
|
4
|
+
import { QUERY_KEYS } from "../../constants/query.js";
|
|
5
|
+
import { apiInstance } from "../../services/apis.js";
|
|
6
|
+
import { ENDPOINTS } from "../../services/endpoints.js";
|
|
7
|
+
const MAX_TITLE_LENGTH = 300;
|
|
8
|
+
export const useCreateSession = () => useMutation({
|
|
9
|
+
mutationKey: [QUERY_KEYS.CREATE_SESSION],
|
|
10
|
+
mutationFn: async payload => {
|
|
11
|
+
const res = await apiInstance?.post(ENDPOINTS.assistantService.createSession, {
|
|
12
|
+
...payload,
|
|
13
|
+
title: payload.title.slice(0, MAX_TITLE_LENGTH)
|
|
14
|
+
});
|
|
15
|
+
return res?.data?.data;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=useCreateSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMutation","QUERY_KEYS","apiInstance","ENDPOINTS","MAX_TITLE_LENGTH","useCreateSession","mutationKey","CREATE_SESSION","mutationFn","payload","res","post","assistantService","createSession","title","slice","data"],"sourceRoot":"../../../../src","sources":["hooks/session/useCreateSession.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,uBAAuB;AACnD,SAASC,UAAU,QAAQ,0BAAuB;AAClD,SAASC,WAAW,QAAQ,wBAAqB;AACjD,SAASC,SAAS,QAAQ,6BAA0B;AAIpD,MAAMC,gBAAgB,GAAG,GAAG;AAE5B,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAC9BL,WAAW,CAAC;EACVM,WAAW,EAAE,CAACL,UAAU,CAACM,cAAc,CAAC;EACxCC,UAAU,EAAE,MAAOC,OAA6B,IAAK;IACnD,MAAMC,GAAG,GAAG,MAAMR,WAAW,EAAES,IAAI,CACjCR,SAAS,CAACS,gBAAgB,CAACC,aAAa,EACxC;MACE,GAAGJ,OAAO;MACVK,KAAK,EAAEL,OAAO,CAACK,KAAK,CAACC,KAAK,CAAC,CAAC,EAAEX,gBAAgB;IAChD,CACF,CAAC;IACD,OAAOM,GAAG,EAAEM,IAAI,EAAEA,IAAI;EACxB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useMutation } from '@tanstack/react-query';
|
|
4
|
+
import { QUERY_KEYS } from "../../constants/query.js";
|
|
5
|
+
import { apiInstance } from "../../services/index.js";
|
|
6
|
+
import { ENDPOINTS } from "../../services/endpoints.js";
|
|
7
|
+
export const useFetchSessionById = () => useMutation({
|
|
8
|
+
mutationKey: [QUERY_KEYS.GET_SESSION_BY_ID],
|
|
9
|
+
mutationFn: async sessionId => {
|
|
10
|
+
const res = await apiInstance?.get(ENDPOINTS.assistantService.getSessionById(sessionId));
|
|
11
|
+
return res?.data?.data;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=useFetchSessionById.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMutation","QUERY_KEYS","apiInstance","ENDPOINTS","useFetchSessionById","mutationKey","GET_SESSION_BY_ID","mutationFn","sessionId","res","get","assistantService","getSessionById","data"],"sourceRoot":"../../../../src","sources":["hooks/session/useFetchSessionById.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,uBAAuB;AACnD,SAASC,UAAU,QAAQ,0BAAuB;AAClD,SAASC,WAAW,QAAQ,yBAAgB;AAG5C,SAASC,SAAS,QAAQ,6BAA0B;AAEpD,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KACjCJ,WAAW,CAAC;EACVK,WAAW,EAAE,CAACJ,UAAU,CAACK,iBAAiB,CAAC;EAC3CC,UAAU,EAAE,MAAOC,SAAiB,IAAK;IACvC,MAAMC,GAAG,GAAG,MAAMP,WAAW,EAAEQ,GAAG,CAChCP,SAAS,CAACQ,gBAAgB,CAACC,cAAc,CAACJ,SAAS,CACrD,CAAC;IACD,OAAOC,GAAG,EAAEI,IAAI,EAAEA,IAAI;EACxB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useQuery } from '@tanstack/react-query';
|
|
4
|
+
import { QUERY_KEYS } from "../../constants/query.js";
|
|
5
|
+
import { apiInstance } from "../../services/apis.js";
|
|
6
|
+
import { ENDPOINTS } from "../../services/endpoints.js";
|
|
7
|
+
export const useFetchSuggestions = () => useQuery({
|
|
8
|
+
queryKey: [QUERY_KEYS.GET_SUGGESTIONS],
|
|
9
|
+
queryFn: async () => {
|
|
10
|
+
const res = await apiInstance?.get(ENDPOINTS.assistantService.getSuggestions);
|
|
11
|
+
return res?.data?.data;
|
|
12
|
+
},
|
|
13
|
+
enabled: !!apiInstance
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=useFetchSuggestions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useQuery","QUERY_KEYS","apiInstance","ENDPOINTS","useFetchSuggestions","queryKey","GET_SUGGESTIONS","queryFn","res","get","assistantService","getSuggestions","data","enabled"],"sourceRoot":"../../../../src","sources":["hooks/suggestions/useFetchSuggestions.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,uBAAuB;AAChD,SAASC,UAAU,QAAQ,0BAAuB;AAClD,SAASC,WAAW,QAAQ,wBAAqB;AACjD,SAASC,SAAS,QAAQ,6BAA0B;AAIpD,OAAO,MAAMC,mBAAmB,GAAGA,CAAA,KACjCJ,QAAQ,CAAC;EACPK,QAAQ,EAAE,CAACJ,UAAU,CAACK,eAAe,CAAC;EACtCC,OAAO,EAAE,MAAAA,CAAA,KAAY;IACnB,MAAMC,GAAG,GAAG,MAAMN,WAAW,EAAEO,GAAG,CAChCN,SAAS,CAACO,gBAAgB,CAACC,cAC7B,CAAC;IACD,OAAOH,GAAG,EAAEI,IAAI,EAAEA,IAAI;EACxB,CAAC;EACDC,OAAO,EAAE,CAAC,CAACX;AACb,CAAC,CAAC","ignoreList":[]}
|