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.
Files changed (155) hide show
  1. package/lib/module/assets/images/index.js.map +1 -0
  2. package/lib/module/assets/svgIcon/IconChatArrow.js +25 -0
  3. package/lib/module/assets/svgIcon/IconChatArrow.js.map +1 -0
  4. package/lib/module/assets/svgIcon/IconThinkingStep.js +45 -0
  5. package/lib/module/assets/svgIcon/IconThinkingStep.js.map +1 -0
  6. package/lib/module/components/chat/ChatEmpty.js +60 -0
  7. package/lib/module/components/chat/ChatEmpty.js.map +1 -0
  8. package/lib/module/components/chat/ChatFooter.js +89 -0
  9. package/lib/module/components/chat/ChatFooter.js.map +1 -0
  10. package/lib/module/components/chat/ChatHeader.js +27 -9
  11. package/lib/module/components/chat/ChatHeader.js.map +1 -1
  12. package/lib/module/components/chat/ChatMessageList.js +38 -0
  13. package/lib/module/components/chat/ChatMessageList.js.map +1 -0
  14. package/lib/module/components/chat/SuggestionItem.js +80 -0
  15. package/lib/module/components/chat/SuggestionItem.js.map +1 -0
  16. package/lib/module/components/chat/index.js +14 -2
  17. package/lib/module/components/chat/index.js.map +1 -1
  18. package/lib/module/components/chat/item/ChatAIAnswerMessageItem.js +82 -0
  19. package/lib/module/components/chat/item/ChatAIAnswerMessageItem.js.map +1 -0
  20. package/lib/module/components/chat/item/ChatAIThinkingMessageItem.js +126 -0
  21. package/lib/module/components/chat/item/ChatAIThinkingMessageItem.js.map +1 -0
  22. package/lib/module/components/chat/item/ChatUserMessageItem.js +41 -0
  23. package/lib/module/components/chat/item/ChatUserMessageItem.js.map +1 -0
  24. package/lib/module/components/chat/item/index.js +33 -0
  25. package/lib/module/components/chat/item/index.js.map +1 -0
  26. package/lib/module/constants/events.js +8 -0
  27. package/lib/module/constants/events.js.map +1 -0
  28. package/lib/module/constants/query.js +8 -0
  29. package/lib/module/constants/query.js.map +1 -0
  30. package/lib/module/context/ChatContext.js +17 -7
  31. package/lib/module/context/ChatContext.js.map +1 -1
  32. package/lib/module/hooks/message/useMessage.js +86 -0
  33. package/lib/module/hooks/message/useMessage.js.map +1 -0
  34. package/lib/module/hooks/message/useSendMessage.js +58 -0
  35. package/lib/module/hooks/message/useSendMessage.js.map +1 -0
  36. package/lib/module/hooks/message/useStreamMessage.js +113 -0
  37. package/lib/module/hooks/message/useStreamMessage.js.map +1 -0
  38. package/lib/module/hooks/session/useCreateSession.js +18 -0
  39. package/lib/module/hooks/session/useCreateSession.js.map +1 -0
  40. package/lib/module/hooks/session/useFetchSessionById.js +14 -0
  41. package/lib/module/hooks/session/useFetchSessionById.js.map +1 -0
  42. package/lib/module/hooks/suggestions/useFetchSuggestions.js +15 -0
  43. package/lib/module/hooks/suggestions/useFetchSuggestions.js.map +1 -0
  44. package/lib/module/index.js +2 -2
  45. package/lib/module/index.js.map +1 -1
  46. package/lib/module/services/endpoints.js +11 -0
  47. package/lib/module/services/endpoints.js.map +1 -0
  48. package/lib/module/store/session.js +11 -0
  49. package/lib/module/store/session.js.map +1 -0
  50. package/lib/module/store/streamMessage.js +26 -0
  51. package/lib/module/store/streamMessage.js.map +1 -0
  52. package/lib/module/types/common.js +23 -0
  53. package/lib/module/types/common.js.map +1 -0
  54. package/lib/module/types/dto.js +2 -0
  55. package/lib/module/types/index.js +6 -0
  56. package/lib/module/types/index.js.map +1 -0
  57. package/lib/typescript/src/assets/images/index.d.ts.map +1 -0
  58. package/lib/typescript/src/assets/svgIcon/IconChatArrow.d.ts +9 -0
  59. package/lib/typescript/src/assets/svgIcon/IconChatArrow.d.ts.map +1 -0
  60. package/lib/typescript/src/assets/svgIcon/IconThinkingStep.d.ts +7 -0
  61. package/lib/typescript/src/assets/svgIcon/IconThinkingStep.d.ts.map +1 -0
  62. package/lib/typescript/src/components/chat/ChatEmpty.d.ts +3 -0
  63. package/lib/typescript/src/components/chat/ChatEmpty.d.ts.map +1 -0
  64. package/lib/typescript/src/components/chat/ChatFooter.d.ts +3 -0
  65. package/lib/typescript/src/components/chat/ChatFooter.d.ts.map +1 -0
  66. package/lib/typescript/src/components/chat/ChatHeader.d.ts.map +1 -1
  67. package/lib/typescript/src/components/chat/ChatMessageList.d.ts +3 -0
  68. package/lib/typescript/src/components/chat/ChatMessageList.d.ts.map +1 -0
  69. package/lib/typescript/src/components/chat/SuggestionItem.d.ts +8 -0
  70. package/lib/typescript/src/components/chat/SuggestionItem.d.ts.map +1 -0
  71. package/lib/typescript/src/components/chat/index.d.ts.map +1 -1
  72. package/lib/typescript/src/components/chat/item/ChatAIAnswerMessageItem.d.ts +8 -0
  73. package/lib/typescript/src/components/chat/item/ChatAIAnswerMessageItem.d.ts.map +1 -0
  74. package/lib/typescript/src/components/chat/item/ChatAIThinkingMessageItem.d.ts +7 -0
  75. package/lib/typescript/src/components/chat/item/ChatAIThinkingMessageItem.d.ts.map +1 -0
  76. package/lib/typescript/src/components/chat/item/ChatUserMessageItem.d.ts +7 -0
  77. package/lib/typescript/src/components/chat/item/ChatUserMessageItem.d.ts.map +1 -0
  78. package/lib/typescript/src/components/chat/item/index.d.ts +8 -0
  79. package/lib/typescript/src/components/chat/item/index.d.ts.map +1 -0
  80. package/lib/typescript/src/constants/events.d.ts +6 -0
  81. package/lib/typescript/src/constants/events.d.ts.map +1 -0
  82. package/lib/typescript/src/constants/query.d.ts +6 -0
  83. package/lib/typescript/src/constants/query.d.ts.map +1 -0
  84. package/lib/typescript/src/context/ChatContext.d.ts +2 -1
  85. package/lib/typescript/src/context/ChatContext.d.ts.map +1 -1
  86. package/lib/typescript/src/hooks/message/useMessage.d.ts +5 -0
  87. package/lib/typescript/src/hooks/message/useMessage.d.ts.map +1 -0
  88. package/lib/typescript/src/hooks/message/useSendMessage.d.ts +5 -0
  89. package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -0
  90. package/lib/typescript/src/hooks/message/useStreamMessage.d.ts +6 -0
  91. package/lib/typescript/src/hooks/message/useStreamMessage.d.ts.map +1 -0
  92. package/lib/typescript/src/hooks/session/useCreateSession.d.ts +2 -0
  93. package/lib/typescript/src/hooks/session/useCreateSession.d.ts.map +1 -0
  94. package/lib/typescript/src/hooks/session/useFetchSessionById.d.ts +2 -0
  95. package/lib/typescript/src/hooks/session/useFetchSessionById.d.ts.map +1 -0
  96. package/lib/typescript/src/hooks/suggestions/useFetchSuggestions.d.ts +2 -0
  97. package/lib/typescript/src/hooks/suggestions/useFetchSuggestions.d.ts.map +1 -0
  98. package/lib/typescript/src/index.d.ts +2 -2
  99. package/lib/typescript/src/index.d.ts.map +1 -1
  100. package/lib/typescript/src/services/endpoints.d.ts +9 -0
  101. package/lib/typescript/src/services/endpoints.d.ts.map +1 -0
  102. package/lib/typescript/src/store/session.d.ts +4 -0
  103. package/lib/typescript/src/store/session.d.ts.map +1 -0
  104. package/lib/typescript/src/store/streamMessage.d.ts +4 -0
  105. package/lib/typescript/src/store/streamMessage.d.ts.map +1 -0
  106. package/lib/typescript/src/types/chat.d.ts +16 -2
  107. package/lib/typescript/src/types/chat.d.ts.map +1 -1
  108. package/lib/typescript/src/types/common.d.ts +29 -0
  109. package/lib/typescript/src/types/common.d.ts.map +1 -0
  110. package/lib/typescript/src/types/dto.d.ts +66 -0
  111. package/lib/typescript/src/types/dto.d.ts.map +1 -1
  112. package/lib/typescript/src/types/index.d.ts +4 -0
  113. package/lib/typescript/src/types/index.d.ts.map +1 -0
  114. package/package.json +5 -2
  115. package/src/assets/svgIcon/IconChatArrow.tsx +21 -0
  116. package/src/assets/svgIcon/IconThinkingStep.tsx +35 -0
  117. package/src/components/chat/ChatEmpty.tsx +52 -0
  118. package/src/components/chat/ChatFooter.tsx +82 -0
  119. package/src/components/chat/ChatHeader.tsx +18 -2
  120. package/src/components/chat/ChatMessageList.tsx +33 -0
  121. package/src/components/chat/SuggestionItem.tsx +64 -0
  122. package/src/components/chat/index.tsx +15 -1
  123. package/src/components/chat/item/ChatAIAnswerMessageItem.tsx +84 -0
  124. package/src/components/chat/item/ChatAIThinkingMessageItem.tsx +130 -0
  125. package/src/components/chat/item/ChatUserMessageItem.tsx +39 -0
  126. package/src/components/chat/item/index.tsx +23 -0
  127. package/src/constants/events.ts +5 -0
  128. package/src/constants/query.ts +5 -0
  129. package/src/context/ChatContext.tsx +12 -5
  130. package/src/hooks/message/useMessage.ts +94 -0
  131. package/src/hooks/message/useSendMessage.ts +58 -0
  132. package/src/hooks/message/useStreamMessage.ts +130 -0
  133. package/src/hooks/session/useCreateSession.ts +23 -0
  134. package/src/hooks/session/useFetchSessionById.ts +17 -0
  135. package/src/hooks/suggestions/useFetchSuggestions.ts +18 -0
  136. package/src/index.ts +3 -2
  137. package/src/services/endpoints.ts +9 -0
  138. package/src/store/session.ts +9 -0
  139. package/src/store/streamMessage.ts +24 -0
  140. package/src/types/chat.ts +21 -3
  141. package/src/types/common.ts +32 -0
  142. package/src/types/dto.ts +74 -0
  143. package/src/types/index.ts +3 -0
  144. package/lib/module/images/index.js.map +0 -1
  145. package/lib/module/utils/index.js +0 -2
  146. package/lib/module/utils/index.js.map +0 -1
  147. package/lib/typescript/src/images/index.d.ts.map +0 -1
  148. package/lib/typescript/src/utils/index.d.ts +0 -1
  149. package/lib/typescript/src/utils/index.d.ts.map +0 -1
  150. package/src/utils/index.ts +0 -0
  151. /package/lib/module/{images → assets/images}/bg_header.png +0 -0
  152. /package/lib/module/{images → assets/images}/index.js +0 -0
  153. /package/lib/typescript/src/{images → assets/images}/index.d.ts +0 -0
  154. /package/src/{images → assets/images}/bg_header.png +0 -0
  155. /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,8 @@
1
+ "use strict";
2
+
3
+ export const events = {
4
+ updateOneMessage: 'update_one_message',
5
+ updateMultipleMessage: 'update_multiple_message',
6
+ forceUpdateMessages: 'force_update_messages'
7
+ };
8
+ //# sourceMappingURL=events.js.map
@@ -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,8 @@
1
+ "use strict";
2
+
3
+ export const QUERY_KEYS = {
4
+ GET_SUGGESTIONS: 'GET_SUGGESTIONS',
5
+ GET_SESSION_BY_ID: 'GET_SESSION_BY_ID',
6
+ CREATE_SESSION: 'CREATE_SESSION'
7
+ };
8
+ //# sourceMappingURL=query.js.map
@@ -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
- export const ChatProvider = ({
7
- children
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
- children: children
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","children","Provider","value"],"sourceRoot":"../../../src","sources":["context/ChatContext.tsx"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGtC,OAAO,MAAMC,WAAW,gBAAGH,aAAa,CAAkB,CAAC,CAAC,CAAC;AAE7D,OAAO,MAAMI,YAAY,GAAGA,CAAC;EAAEC;AAA4B,CAAC,KAAK;EAC/D,oBACEH,IAAA,CAACC,WAAW,CAACG,QAAQ;IAACC,KAAK,EAAE,CAAC,CAAE;IAAAF,QAAA,EAC7BA;EAAQ,CACW,CAAC;AAE3B,CAAC","ignoreList":[]}
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":[]}