react-native-chatbot-ai 0.0.4 → 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/bg_header.png +0 -0
- package/lib/module/assets/images/index.js +6 -0
- 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 +70 -0
- package/lib/module/components/chat/ChatHeader.js.map +1 -0
- 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 +17 -5
- 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 +19 -10
- 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 -1
- 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 +5 -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 +3 -0
- package/lib/typescript/src/components/chat/ChatHeader.d.ts.map +1 -0
- 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 +2 -1
- 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 -1
- 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 +8 -5
- package/src/assets/images/bg_header.png +0 -0
- package/src/assets/images/index.ts +3 -0
- 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 +57 -0
- package/src/components/chat/ChatMessageList.tsx +33 -0
- package/src/components/chat/SuggestionItem.tsx +64 -0
- package/src/components/chat/index.tsx +20 -5
- 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 +11 -6
- 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/ignore.d.ts +2 -1
- package/src/index.ts +4 -0
- 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/utils/index.js +0 -2
- package/lib/module/utils/index.js.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/index.tsx +0 -2
- package/src/utils/index.ts +0 -0
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["bg_header","require"],"sourceRoot":"../../../../src","sources":["assets/images/index.ts"],"mappings":";;AAAA,eAAe;EACbA,SAAS,EAAEC,OAAO,CAAC,iBAAiB;AACtC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Svg, { Path } from 'react-native-svg';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
export const IconChatArrow = props => {
|
|
6
|
+
const {
|
|
7
|
+
width = 6,
|
|
8
|
+
height = 18,
|
|
9
|
+
fill = '#07F',
|
|
10
|
+
opacity = 0.1
|
|
11
|
+
} = props || {};
|
|
12
|
+
return /*#__PURE__*/_jsx(Svg, {
|
|
13
|
+
width: width,
|
|
14
|
+
height: height,
|
|
15
|
+
viewBox: "0 0 6 18",
|
|
16
|
+
fill: "none",
|
|
17
|
+
...props,
|
|
18
|
+
children: /*#__PURE__*/_jsx(Path, {
|
|
19
|
+
d: "M4.024 0H0v18c.545-4.5 2.546-9.873 4.956-12.5C6.332 4 6.65 0 4.024 0z",
|
|
20
|
+
fill: fill,
|
|
21
|
+
fillOpacity: opacity
|
|
22
|
+
})
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=IconChatArrow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Svg","Path","jsx","_jsx","IconChatArrow","props","width","height","fill","opacity","viewBox","children","d","fillOpacity"],"sourceRoot":"../../../../src","sources":["assets/svgIcon/IconChatArrow.tsx"],"mappings":";;AAAA,OAAOA,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAS7C,OAAO,MAAMC,aAAa,GAAIC,KAAY,IAAK;EAC7C,MAAM;IAAEC,KAAK,GAAG,CAAC;IAAEC,MAAM,GAAG,EAAE;IAAEC,IAAI,GAAG,MAAM;IAAEC,OAAO,GAAG;EAAI,CAAC,GAAGJ,KAAK,IAAI,CAAC,CAAC;EAC5E,oBACEF,IAAA,CAACH,GAAG;IAACM,KAAK,EAAEA,KAAM;IAACC,MAAM,EAAEA,MAAO;IAACG,OAAO,EAAC,UAAU;IAACF,IAAI,EAAC,MAAM;IAAA,GAAKH,KAAK;IAAAM,QAAA,eACzER,IAAA,CAACF,IAAI;MACHW,CAAC,EAAC,uEAAuE;MACzEJ,IAAI,EAAEA,IAAK;MACXK,WAAW,EAAEJ;IAAQ,CACtB;EAAC,CACC,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import Svg, { G, Mask, Path } from 'react-native-svg';
|
|
4
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
|
+
export const IconThinkingStep = props => {
|
|
6
|
+
const {
|
|
7
|
+
width = 24,
|
|
8
|
+
height = 24
|
|
9
|
+
} = props || {};
|
|
10
|
+
return /*#__PURE__*/_jsxs(Svg, {
|
|
11
|
+
width: width,
|
|
12
|
+
height: height,
|
|
13
|
+
viewBox: "0 0 24 24",
|
|
14
|
+
fill: "none",
|
|
15
|
+
...props,
|
|
16
|
+
children: [/*#__PURE__*/_jsx(Mask, {
|
|
17
|
+
id: "a",
|
|
18
|
+
maskUnits: "userSpaceOnUse",
|
|
19
|
+
x: -8,
|
|
20
|
+
y: -8,
|
|
21
|
+
width: 40,
|
|
22
|
+
height: 40,
|
|
23
|
+
children: /*#__PURE__*/_jsx(Path, {
|
|
24
|
+
d: "M32-8H-8v40h40V-8z",
|
|
25
|
+
fill: "#fff"
|
|
26
|
+
})
|
|
27
|
+
}), /*#__PURE__*/_jsxs(G, {
|
|
28
|
+
mask: "url(#a)",
|
|
29
|
+
children: [/*#__PURE__*/_jsx(Path, {
|
|
30
|
+
d: "M5.093 16.972a.976.976 0 01.815.064 8.75 8.75 0 004.37 1.151c4.74 0 8.583-3.692 8.583-8.25s-3.844-8.25-8.583-8.25c-4.739 0-8.583 3.692-8.583 8.25a7.96 7.96 0 001.003 3.877c.139.242.173.53.094.798l-.896 2.92a.344.344 0 00.445.424l2.752-.984z",
|
|
31
|
+
fill: "#D5DBDF"
|
|
32
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
33
|
+
d: "M6.164 8.563a1.376 1.376 0 11-.001 2.75 1.376 1.376 0 01.001-2.75zM10.289 8.563a1.376 1.376 0 11-.001 2.75 1.376 1.376 0 01.001-2.75zM14.414 8.563a1.376 1.376 0 11-.001 2.75 1.376 1.376 0 01.001-2.75z",
|
|
34
|
+
fill: "#fff"
|
|
35
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
36
|
+
d: "M18.9 21.099a.977.977 0 00-.813.064 8.76 8.76 0 01-4.371 1.15c-4.74 0-8.583-3.686-8.583-8.236 0-4.55 3.844-8.236 8.583-8.236 4.739 0 8.583 3.684 8.583 8.236a7.94 7.94 0 01-1.003 3.87c-.139.242-.173.53-.094.799l.894 2.912a.344.344 0 01-.445.424L18.9 21.1z",
|
|
37
|
+
fill: "#002BEB"
|
|
38
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
39
|
+
d: "M9.848 12.704a1.376 1.376 0 11-.281 2.737 1.376 1.376 0 01.281-2.737zM13.989 12.73a1.376 1.376 0 11-.281 2.737 1.376 1.376 0 01.28-2.736zM18.141 12.679a1.376 1.376 0 11-.281 2.737 1.376 1.376 0 01.281-2.737z",
|
|
40
|
+
fill: "#fff"
|
|
41
|
+
})]
|
|
42
|
+
})]
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=IconThinkingStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Svg","G","Mask","Path","jsx","_jsx","jsxs","_jsxs","IconThinkingStep","props","width","height","viewBox","fill","children","id","maskUnits","x","y","d","mask"],"sourceRoot":"../../../../src","sources":["assets/svgIcon/IconThinkingStep.tsx"],"mappings":";;AAAA,OAAOA,GAAG,IAAIC,CAAC,EAAEC,IAAI,EAAEC,IAAI,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOtD,OAAO,MAAMC,gBAAgB,GAAIC,KAAY,IAAK;EAChD,MAAM;IAAEC,KAAK,GAAG,EAAE;IAAEC,MAAM,GAAG;EAAG,CAAC,GAAGF,KAAK,IAAI,CAAC,CAAC;EAC/C,oBACEF,KAAA,CAACP,GAAG;IAACU,KAAK,EAAEA,KAAM;IAACC,MAAM,EAAEA,MAAO;IAACC,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,MAAM;IAAA,GAAKJ,KAAK;IAAAK,QAAA,gBAC1ET,IAAA,CAACH,IAAI;MAACa,EAAE,EAAC,GAAG;MAACC,SAAS,EAAC,gBAAgB;MAACC,CAAC,EAAE,CAAC,CAAE;MAACC,CAAC,EAAE,CAAC,CAAE;MAACR,KAAK,EAAE,EAAG;MAACC,MAAM,EAAE,EAAG;MAAAG,QAAA,eAC1ET,IAAA,CAACF,IAAI;QAACgB,CAAC,EAAC,oBAAoB;QAACN,IAAI,EAAC;MAAM,CAAE;IAAC,CACvC,CAAC,eACPN,KAAA,CAACN,CAAC;MAACmB,IAAI,EAAC,SAAS;MAAAN,QAAA,gBACfT,IAAA,CAACF,IAAI;QACHgB,CAAC,EAAC,kPAAkP;QACpPN,IAAI,EAAC;MAAS,CACf,CAAC,eACFR,IAAA,CAACF,IAAI;QACHgB,CAAC,EAAC,0MAA0M;QAC5MN,IAAI,EAAC;MAAM,CACZ,CAAC,eACFR,IAAA,CAACF,IAAI;QACHgB,CAAC,EAAC,gQAAgQ;QAClQN,IAAI,EAAC;MAAS,CACf,CAAC,eACFR,IAAA,CAACF,IAAI;QACHgB,CAAC,EAAC,iNAAiN;QACnNN,IAAI,EAAC;MAAM,CACZ,CAAC;IAAA,CACD,CAAC;EAAA,CACD,CAAC;AAEV,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { KColors, KContainer, KLabel, KSpacingValue } from '@droppii/libs';
|
|
4
|
+
import { StyleSheet } from 'react-native';
|
|
5
|
+
import { useFetchSuggestions } from "../../hooks/suggestions/useFetchSuggestions.js";
|
|
6
|
+
import SuggestionItem from "./SuggestionItem.js";
|
|
7
|
+
import { useSendMessage } from "../../hooks/message/useSendMessage.js";
|
|
8
|
+
import debounce from 'lodash/debounce';
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
+
const ChatEmpty = () => {
|
|
11
|
+
const {
|
|
12
|
+
data
|
|
13
|
+
} = useFetchSuggestions();
|
|
14
|
+
const {
|
|
15
|
+
onSendMessage
|
|
16
|
+
} = useSendMessage();
|
|
17
|
+
const onPress = debounce(item => {
|
|
18
|
+
onSendMessage(item.content);
|
|
19
|
+
}, 200);
|
|
20
|
+
return /*#__PURE__*/_jsxs(KContainer.ScrollView, {
|
|
21
|
+
contentContainerStyle: styles.container,
|
|
22
|
+
children: [/*#__PURE__*/_jsx(KLabel.Text, {
|
|
23
|
+
typo: "TextXLgMedium",
|
|
24
|
+
center: true,
|
|
25
|
+
children: 'Bạn cần hỗ trợ gì hôm nay?'
|
|
26
|
+
}), /*#__PURE__*/_jsxs(KContainer.View, {
|
|
27
|
+
center: true,
|
|
28
|
+
children: [/*#__PURE__*/_jsx(KLabel.Text, {
|
|
29
|
+
typo: "TextMdNormal",
|
|
30
|
+
center: true,
|
|
31
|
+
color: KColors.gray.normal,
|
|
32
|
+
children: 'Hãy đặt câu hỏi hoặc chia sẻ vấn đề của bạn.'
|
|
33
|
+
}), /*#__PURE__*/_jsx(KLabel.Text, {
|
|
34
|
+
typo: "TextMdNormal",
|
|
35
|
+
center: true,
|
|
36
|
+
color: KColors.gray.normal,
|
|
37
|
+
children: 'Xem qua những gợi ý dành cho bạn:'
|
|
38
|
+
})]
|
|
39
|
+
}), data?.suggestions?.map(item => /*#__PURE__*/_jsx(SuggestionItem, {
|
|
40
|
+
item: item,
|
|
41
|
+
onPressItem: onPress
|
|
42
|
+
}, item.suggestion_id)), /*#__PURE__*/_jsx(KLabel.Text, {
|
|
43
|
+
typo: "TextSmNormal",
|
|
44
|
+
color: KColors.gray.light,
|
|
45
|
+
textAlign: "center",
|
|
46
|
+
children: 'Lưu ý: Thông tin từ AI chỉ mang tính tham khảo, cần xác minh với chuyên gia hoặc nguồn uy tín.'
|
|
47
|
+
})]
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
export default ChatEmpty;
|
|
51
|
+
const styles = StyleSheet.create({
|
|
52
|
+
container: {
|
|
53
|
+
flexGrow: 1,
|
|
54
|
+
justifyContent: 'center',
|
|
55
|
+
alignItems: 'center',
|
|
56
|
+
padding: KSpacingValue['0.75rem'],
|
|
57
|
+
gap: KSpacingValue['0.5rem']
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=ChatEmpty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["KColors","KContainer","KLabel","KSpacingValue","StyleSheet","useFetchSuggestions","SuggestionItem","useSendMessage","debounce","jsx","_jsx","jsxs","_jsxs","ChatEmpty","data","onSendMessage","onPress","item","content","ScrollView","contentContainerStyle","styles","container","children","Text","typo","center","View","color","gray","normal","suggestions","map","onPressItem","suggestion_id","light","textAlign","create","flexGrow","justifyContent","alignItems","padding","gap"],"sourceRoot":"../../../../src","sources":["components/chat/ChatEmpty.tsx"],"mappings":";;AAAA,SAASA,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,aAAa,QAAQ,eAAe;AAC1E,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,mBAAmB,QAAQ,gDAA6C;AACjF,OAAOC,cAAc,MAAM,qBAAkB;AAC7C,SAASC,cAAc,QAAQ,uCAAoC;AACnE,OAAOC,QAAQ,MAAM,iBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGvC,MAAMC,SAAS,GAAGA,CAAA,KAAM;EACtB,MAAM;IAAEC;EAAK,CAAC,GAAGT,mBAAmB,CAAC,CAAC;EACtC,MAAM;IAAEU;EAAc,CAAC,GAAGR,cAAc,CAAC,CAAC;EAE1C,MAAMS,OAAO,GAAGR,QAAQ,CAAES,IAAqB,IAAK;IAClDF,aAAa,CAACE,IAAI,CAACC,OAAO,CAAC;EAC7B,CAAC,EAAE,GAAG,CAAC;EAEP,oBACEN,KAAA,CAACX,UAAU,CAACkB,UAAU;IAACC,qBAAqB,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,gBAC7Db,IAAA,CAACR,MAAM,CAACsB,IAAI;MAACC,IAAI,EAAC,eAAe;MAACC,MAAM;MAAAH,QAAA,EACrC;IAA4B,CAClB,CAAC,eACdX,KAAA,CAACX,UAAU,CAAC0B,IAAI;MAACD,MAAM;MAAAH,QAAA,gBACrBb,IAAA,CAACR,MAAM,CAACsB,IAAI;QAACC,IAAI,EAAC,cAAc;QAACC,MAAM;QAACE,KAAK,EAAE5B,OAAO,CAAC6B,IAAI,CAACC,MAAO;QAAAP,QAAA,EAChE;MAA8C,CACpC,CAAC,eACdb,IAAA,CAACR,MAAM,CAACsB,IAAI;QAACC,IAAI,EAAC,cAAc;QAACC,MAAM;QAACE,KAAK,EAAE5B,OAAO,CAAC6B,IAAI,CAACC,MAAO;QAAAP,QAAA,EAChE;MAAmC,CACzB,CAAC;IAAA,CACC,CAAC,EACjBT,IAAI,EAAEiB,WAAW,EAAEC,GAAG,CAAEf,IAAqB,iBAC5CP,IAAA,CAACJ,cAAc;MAA0BW,IAAI,EAAEA,IAAK;MAACgB,WAAW,EAAEjB;IAAQ,GAArDC,IAAI,CAACiB,aAAkD,CAC7E,CAAC,eACFxB,IAAA,CAACR,MAAM,CAACsB,IAAI;MAACC,IAAI,EAAC,cAAc;MAACG,KAAK,EAAE5B,OAAO,CAAC6B,IAAI,CAACM,KAAM;MAACC,SAAS,EAAC,QAAQ;MAAAb,QAAA,EAE1E;IAAgG,CAEvF,CAAC;EAAA,CACO,CAAC;AAE5B,CAAC;AAED,eAAeV,SAAS;AAExB,MAAMQ,MAAM,GAAGjB,UAAU,CAACiC,MAAM,CAAC;EAC/Bf,SAAS,EAAE;IACTgB,QAAQ,EAAE,CAAC;IACXC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,OAAO,EAAEtC,aAAa,CAAC,SAAS,CAAC;IACjCuC,GAAG,EAAEvC,aAAa,CAAC,QAAQ;EAC7B;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { KButton, KColors, KContainer, KImage, KInput, KSpacingValue } from '@droppii/libs';
|
|
4
|
+
import { useCallback, useState } from 'react';
|
|
5
|
+
import { StyleSheet } from 'react-native';
|
|
6
|
+
import debounce from 'lodash/debounce';
|
|
7
|
+
import { useSendMessage } from "../../hooks/message/useSendMessage.js";
|
|
8
|
+
import useStreamMessageStore from "../../store/streamMessage.js";
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
+
const ChatFooter = () => {
|
|
11
|
+
const {
|
|
12
|
+
onSendMessage,
|
|
13
|
+
stopStream
|
|
14
|
+
} = useSendMessage();
|
|
15
|
+
const [message, setMessage] = useState('');
|
|
16
|
+
const isStreaming = useStreamMessageStore(state => state.isStreaming);
|
|
17
|
+
const debouncedMessage = debounce(message => {
|
|
18
|
+
setMessage(message);
|
|
19
|
+
}, 200);
|
|
20
|
+
const onPressSend = useCallback(() => {
|
|
21
|
+
if (isStreaming) {
|
|
22
|
+
stopStream();
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
onSendMessage(message?.trim());
|
|
26
|
+
setMessage('');
|
|
27
|
+
}, [message, isStreaming]);
|
|
28
|
+
return /*#__PURE__*/_jsxs(KContainer.View, {
|
|
29
|
+
style: styles.container,
|
|
30
|
+
children: [/*#__PURE__*/_jsx(KInput.TextArea, {
|
|
31
|
+
paddingV: '0.25rem',
|
|
32
|
+
paddingH: '0.25rem',
|
|
33
|
+
placeholder: "B\u1EA1n mu\u1ED1n h\u1ECFi g\xEC h\xF4m nay?",
|
|
34
|
+
clearButtonMode: "hidden",
|
|
35
|
+
onChangeText: debouncedMessage,
|
|
36
|
+
value: message,
|
|
37
|
+
multiline: true,
|
|
38
|
+
style: styles.input
|
|
39
|
+
}), /*#__PURE__*/_jsxs(KContainer.View, {
|
|
40
|
+
style: styles.actions,
|
|
41
|
+
children: [/*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
42
|
+
name: "image-o",
|
|
43
|
+
size: 24,
|
|
44
|
+
color: KColors.gray.dark
|
|
45
|
+
}), /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
46
|
+
name: "paperclip-o",
|
|
47
|
+
size: 24,
|
|
48
|
+
color: KColors.gray.dark
|
|
49
|
+
}), /*#__PURE__*/_jsx(KContainer.View, {
|
|
50
|
+
flex: true
|
|
51
|
+
}), /*#__PURE__*/_jsx(KButton.Solid, {
|
|
52
|
+
kind: "primary",
|
|
53
|
+
icon: {
|
|
54
|
+
vectorName: isStreaming ? 'square-b' : 'send-b',
|
|
55
|
+
size: 20,
|
|
56
|
+
tintColor: KColors.white
|
|
57
|
+
},
|
|
58
|
+
onPress: onPressSend,
|
|
59
|
+
br: "round",
|
|
60
|
+
disabled: !isStreaming && message.trim() === ''
|
|
61
|
+
})]
|
|
62
|
+
})]
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
export default ChatFooter;
|
|
66
|
+
const styles = StyleSheet.create({
|
|
67
|
+
container: {
|
|
68
|
+
paddingHorizontal: KSpacingValue['0.75rem'],
|
|
69
|
+
paddingVertical: KSpacingValue['0.5rem'],
|
|
70
|
+
gap: KSpacingValue['0.5rem'],
|
|
71
|
+
borderWidth: 1,
|
|
72
|
+
borderColor: KColors.hexToRgba(KColors.black, 0.15),
|
|
73
|
+
borderBottomWidth: 0,
|
|
74
|
+
borderTopLeftRadius: KSpacingValue['1.25rem'],
|
|
75
|
+
borderTopRightRadius: KSpacingValue['1.25rem']
|
|
76
|
+
},
|
|
77
|
+
actions: {
|
|
78
|
+
flexDirection: 'row',
|
|
79
|
+
alignItems: 'center',
|
|
80
|
+
gap: KSpacingValue['1rem']
|
|
81
|
+
},
|
|
82
|
+
sendButton: {
|
|
83
|
+
alignSelf: 'flex-end'
|
|
84
|
+
},
|
|
85
|
+
input: {
|
|
86
|
+
maxHeight: 100
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=ChatFooter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["KButton","KColors","KContainer","KImage","KInput","KSpacingValue","useCallback","useState","StyleSheet","debounce","useSendMessage","useStreamMessageStore","jsx","_jsx","jsxs","_jsxs","ChatFooter","onSendMessage","stopStream","message","setMessage","isStreaming","state","debouncedMessage","onPressSend","trim","View","style","styles","container","children","TextArea","paddingV","paddingH","placeholder","clearButtonMode","onChangeText","value","multiline","input","actions","VectorIcons","name","size","color","gray","dark","flex","Solid","kind","icon","vectorName","tintColor","white","onPress","br","disabled","create","paddingHorizontal","paddingVertical","gap","borderWidth","borderColor","hexToRgba","black","borderBottomWidth","borderTopLeftRadius","borderTopRightRadius","flexDirection","alignItems","sendButton","alignSelf","maxHeight"],"sourceRoot":"../../../../src","sources":["components/chat/ChatFooter.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { KColors, KContainer, KImage, KLabel, KSpacingValue } from '@droppii/libs';
|
|
4
|
+
import images from "../../assets/images/index.js";
|
|
5
|
+
import { ImageBackground, StatusBar, StyleSheet } from 'react-native';
|
|
6
|
+
import { useCallback } from 'react';
|
|
7
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
8
|
+
import useSessionStore from "../../store/session.js";
|
|
9
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
10
|
+
export const ChatHeader = () => {
|
|
11
|
+
const insets = useSafeAreaInsets();
|
|
12
|
+
const setSessionId = useSessionStore(state => state.setSessionId);
|
|
13
|
+
const onPressNewSession = () => {
|
|
14
|
+
setSessionId(undefined);
|
|
15
|
+
};
|
|
16
|
+
const renderStatusBar = useCallback(() => {
|
|
17
|
+
return /*#__PURE__*/_jsx(KContainer.View, {
|
|
18
|
+
height: insets.top,
|
|
19
|
+
background: "transparent",
|
|
20
|
+
children: /*#__PURE__*/_jsx(StatusBar, {
|
|
21
|
+
translucent: true
|
|
22
|
+
})
|
|
23
|
+
});
|
|
24
|
+
}, [insets.top]);
|
|
25
|
+
return /*#__PURE__*/_jsxs(ImageBackground, {
|
|
26
|
+
source: images.bg_header,
|
|
27
|
+
resizeMode: "cover",
|
|
28
|
+
children: [renderStatusBar(), /*#__PURE__*/_jsxs(KContainer.View, {
|
|
29
|
+
style: styles.header,
|
|
30
|
+
children: [/*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
31
|
+
style: styles.button,
|
|
32
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
33
|
+
name: "menu-ai-o",
|
|
34
|
+
size: 24,
|
|
35
|
+
color: KColors.white
|
|
36
|
+
})
|
|
37
|
+
}), /*#__PURE__*/_jsx(KLabel.Text, {
|
|
38
|
+
flex: true,
|
|
39
|
+
typo: "TitleBlockMedium",
|
|
40
|
+
color: KColors.white,
|
|
41
|
+
children: 'Chatbot AI'
|
|
42
|
+
}), /*#__PURE__*/_jsx(KContainer.Touchable, {
|
|
43
|
+
style: styles.button,
|
|
44
|
+
onPress: onPressNewSession,
|
|
45
|
+
children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
46
|
+
name: "chat-dot-plus-o",
|
|
47
|
+
size: 24,
|
|
48
|
+
color: KColors.white
|
|
49
|
+
})
|
|
50
|
+
})]
|
|
51
|
+
})]
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
export default ChatHeader;
|
|
55
|
+
const styles = StyleSheet.create({
|
|
56
|
+
header: {
|
|
57
|
+
paddingHorizontal: KSpacingValue['0.75rem'],
|
|
58
|
+
paddingVertical: KSpacingValue['0.5rem'],
|
|
59
|
+
flexDirection: 'row',
|
|
60
|
+
gap: KSpacingValue['0.5rem'],
|
|
61
|
+
alignItems: 'center'
|
|
62
|
+
},
|
|
63
|
+
button: {
|
|
64
|
+
width: 32,
|
|
65
|
+
height: 32,
|
|
66
|
+
justifyContent: 'center',
|
|
67
|
+
alignItems: 'center'
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=ChatHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["KColors","KContainer","KImage","KLabel","KSpacingValue","images","ImageBackground","StatusBar","StyleSheet","useCallback","useSafeAreaInsets","useSessionStore","jsx","_jsx","jsxs","_jsxs","ChatHeader","insets","setSessionId","state","onPressNewSession","undefined","renderStatusBar","View","height","top","background","children","translucent","source","bg_header","resizeMode","style","styles","header","Touchable","button","VectorIcons","name","size","color","white","Text","flex","typo","onPress","create","paddingHorizontal","paddingVertical","flexDirection","gap","alignItems","width","justifyContent"],"sourceRoot":"../../../../src","sources":["components/chat/ChatHeader.tsx"],"mappings":";;AAAA,SAASA,OAAO,EAAEC,UAAU,EAAEC,MAAM,EAAEC,MAAM,EAAEC,aAAa,QAAQ,eAAe;AAClF,OAAOC,MAAM,MAAM,8BAAqB;AACxC,SAASC,eAAe,EAAEC,SAAS,EAAEC,UAAU,QAAQ,cAAc;AACrE,SAASC,WAAW,QAAQ,OAAO;AACnC,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,OAAOC,eAAe,MAAM,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAElD,OAAO,MAAMC,UAAU,GAAGA,CAAA,KAAM;EAC9B,MAAMC,MAAM,GAAGP,iBAAiB,CAAC,CAAC;EAClC,MAAMQ,YAAY,GAAGP,eAAe,CAACQ,KAAK,IAAIA,KAAK,CAACD,YAAY,CAAC;EAEjE,MAAME,iBAAiB,GAAGA,CAAA,KAAM;IAC9BF,YAAY,CAACG,SAAS,CAAC;EACzB,CAAC;EAED,MAAMC,eAAe,GAAGb,WAAW,CAAC,MAAM;IACxC,oBACEI,IAAA,CAACZ,UAAU,CAACsB,IAAI;MAACC,MAAM,EAAEP,MAAM,CAACQ,GAAI;MAACC,UAAU,EAAC,aAAa;MAAAC,QAAA,eAC3Dd,IAAA,CAACN,SAAS;QAACqB,WAAW;MAAA,CAAE;IAAC,CACV,CAAC;EAEtB,CAAC,EAAE,CAACX,MAAM,CAACQ,GAAG,CAAC,CAAC;EAChB,oBACEV,KAAA,CAACT,eAAe;IAACuB,MAAM,EAAExB,MAAM,CAACyB,SAAU;IAACC,UAAU,EAAC,OAAO;IAAAJ,QAAA,GAC1DL,eAAe,CAAC,CAAC,eAClBP,KAAA,CAACd,UAAU,CAACsB,IAAI;MAACS,KAAK,EAAEC,MAAM,CAACC,MAAO;MAAAP,QAAA,gBACpCd,IAAA,CAACZ,UAAU,CAACkC,SAAS;QAACH,KAAK,EAAEC,MAAM,CAACG,MAAO;QAAAT,QAAA,eACzCd,IAAA,CAACX,MAAM,CAACmC,WAAW;UAACC,IAAI,EAAC,WAAW;UAACC,IAAI,EAAE,EAAG;UAACC,KAAK,EAAExC,OAAO,CAACyC;QAAM,CAAE;MAAC,CACnD,CAAC,eACvB5B,IAAA,CAACV,MAAM,CAACuC,IAAI;QAACC,IAAI;QAACC,IAAI,EAAC,kBAAkB;QAACJ,KAAK,EAAExC,OAAO,CAACyC,KAAM;QAAAd,QAAA,EAC5D;MAAY,CACF,CAAC,eACdd,IAAA,CAACZ,UAAU,CAACkC,SAAS;QAACH,KAAK,EAAEC,MAAM,CAACG,MAAO;QAACS,OAAO,EAAEzB,iBAAkB;QAAAO,QAAA,eACrEd,IAAA,CAACX,MAAM,CAACmC,WAAW;UAACC,IAAI,EAAC,iBAAiB;UAACC,IAAI,EAAE,EAAG;UAACC,KAAK,EAAExC,OAAO,CAACyC;QAAM,CAAE;MAAC,CACzD,CAAC;IAAA,CACR,CAAC;EAAA,CACH,CAAC;AAEtB,CAAC;AAED,eAAezB,UAAU;AAEzB,MAAMiB,MAAM,GAAGzB,UAAU,CAACsC,MAAM,CAAC;EAC/BZ,MAAM,EAAE;IACNa,iBAAiB,EAAE3C,aAAa,CAAC,SAAS,CAAC;IAC3C4C,eAAe,EAAE5C,aAAa,CAAC,QAAQ,CAAC;IACxC6C,aAAa,EAAE,KAAK;IACpBC,GAAG,EAAE9C,aAAa,CAAC,QAAQ,CAAC;IAC5B+C,UAAU,EAAE;EACd,CAAC;EACDf,MAAM,EAAE;IACNgB,KAAK,EAAE,EAAE;IACT5B,MAAM,EAAE,EAAE;IACV6B,cAAc,EAAE,QAAQ;IACxBF,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { FlatList, StyleSheet } from 'react-native';
|
|
4
|
+
import ChatEmpty from "./ChatEmpty.js";
|
|
5
|
+
import { useMessage } from "../../hooks/message/useMessage.js";
|
|
6
|
+
import ChatItem from "./item/index.js";
|
|
7
|
+
import { KSpacingValue } from '@droppii/libs';
|
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
const ChatMessageList = () => {
|
|
10
|
+
const {
|
|
11
|
+
messageState
|
|
12
|
+
} = useMessage();
|
|
13
|
+
if (!messageState?.messages?.length) {
|
|
14
|
+
return /*#__PURE__*/_jsx(ChatEmpty, {});
|
|
15
|
+
}
|
|
16
|
+
return /*#__PURE__*/_jsx(FlatList, {
|
|
17
|
+
data: messageState?.messages || [],
|
|
18
|
+
renderItem: ({
|
|
19
|
+
item,
|
|
20
|
+
index
|
|
21
|
+
}) => /*#__PURE__*/_jsx(ChatItem, {
|
|
22
|
+
item: item,
|
|
23
|
+
index: index
|
|
24
|
+
}),
|
|
25
|
+
keyExtractor: item => item.id,
|
|
26
|
+
contentContainerStyle: styles.container,
|
|
27
|
+
inverted: true
|
|
28
|
+
});
|
|
29
|
+
};
|
|
30
|
+
export default ChatMessageList;
|
|
31
|
+
const styles = StyleSheet.create({
|
|
32
|
+
container: {
|
|
33
|
+
flexGrow: 1,
|
|
34
|
+
gap: KSpacingValue['0.5rem'],
|
|
35
|
+
paddingVertical: KSpacingValue['1rem']
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=ChatMessageList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FlatList","StyleSheet","ChatEmpty","useMessage","ChatItem","KSpacingValue","jsx","_jsx","ChatMessageList","messageState","messages","length","data","renderItem","item","index","keyExtractor","id","contentContainerStyle","styles","container","inverted","create","flexGrow","gap","paddingVertical"],"sourceRoot":"../../../../src","sources":["components/chat/ChatMessageList.tsx"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,UAAU,QAAQ,cAAc;AACnD,OAAOC,SAAS,MAAM,gBAAa;AACnC,SAASC,UAAU,QAAQ,mCAAgC;AAC3D,OAAOC,QAAQ,MAAM,iBAAQ;AAC7B,SAASC,aAAa,QAAQ,eAAe;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAG9C,MAAMC,eAAe,GAAGA,CAAA,KAAM;EAC5B,MAAM;IAAEC;EAAa,CAAC,GAAGN,UAAU,CAAC,CAAC;EAErC,IAAI,CAACM,YAAY,EAAEC,QAAQ,EAAEC,MAAM,EAAE;IACnC,oBAAOJ,IAAA,CAACL,SAAS,IAAE,CAAC;EACtB;EACA,oBACEK,IAAA,CAACP,QAAQ;IACPY,IAAI,EAAEH,YAAY,EAAEC,QAAQ,IAAI,EAAG;IACnCG,UAAU,EAAEA,CAAC;MAAEC,IAAI;MAAEC;IAA6C,CAAC,kBAAKR,IAAA,CAACH,QAAQ;MAACU,IAAI,EAAEA,IAAK;MAACC,KAAK,EAAEA;IAAM,CAAE,CAAE;IAC/GC,YAAY,EAAGF,IAAkB,IAAKA,IAAI,CAACG,EAAG;IAC9CC,qBAAqB,EAAEC,MAAM,CAACC,SAAU;IACxCC,QAAQ;EAAA,CACT,CAAC;AAEN,CAAC;AAED,eAAeb,eAAe;AAE9B,MAAMW,MAAM,GAAGlB,UAAU,CAACqB,MAAM,CAAC;EAC/BF,SAAS,EAAE;IACTG,QAAQ,EAAE,CAAC;IACXC,GAAG,EAAEnB,aAAa,CAAC,QAAQ,CAAC;IAC5BoB,eAAe,EAAEpB,aAAa,CAAC,MAAM;EACvC;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
import { KColors, KContainer, KImage, KLabel, KRadiusValue, KSpacingValue } from '@droppii/libs';
|
|
5
|
+
import { SuggestionCategory } from "../../types/common.js";
|
|
6
|
+
import { StyleSheet } from 'react-native';
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
const SuggestionItem = ({
|
|
9
|
+
item,
|
|
10
|
+
onPressItem
|
|
11
|
+
}) => {
|
|
12
|
+
const icon = useMemo(() => {
|
|
13
|
+
switch (item.category) {
|
|
14
|
+
case SuggestionCategory.product:
|
|
15
|
+
return /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
16
|
+
name: "shopping-basket-o",
|
|
17
|
+
size: 16,
|
|
18
|
+
color: KColors.palette.primary.w400
|
|
19
|
+
});
|
|
20
|
+
case SuggestionCategory.discount:
|
|
21
|
+
return /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
22
|
+
name: "ticket-percent-o",
|
|
23
|
+
size: 16,
|
|
24
|
+
color: KColors.danger.normal
|
|
25
|
+
});
|
|
26
|
+
case SuggestionCategory.gift:
|
|
27
|
+
return /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
28
|
+
name: "gift-o",
|
|
29
|
+
size: 16,
|
|
30
|
+
color: KColors.success.normal
|
|
31
|
+
});
|
|
32
|
+
case SuggestionCategory.health_advice:
|
|
33
|
+
return /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
34
|
+
name: "heart-rate-o",
|
|
35
|
+
size: 16,
|
|
36
|
+
color: KColors.secondary.normal
|
|
37
|
+
});
|
|
38
|
+
case SuggestionCategory.content:
|
|
39
|
+
return /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
40
|
+
name: "edit-o",
|
|
41
|
+
size: 16,
|
|
42
|
+
color: KColors.warning.normal
|
|
43
|
+
});
|
|
44
|
+
case SuggestionCategory.guide:
|
|
45
|
+
return /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
46
|
+
name: "book",
|
|
47
|
+
size: 16,
|
|
48
|
+
color: KColors.palette.blue.w400
|
|
49
|
+
});
|
|
50
|
+
default:
|
|
51
|
+
return /*#__PURE__*/_jsx(KImage.VectorIcons, {
|
|
52
|
+
name: "edit-o",
|
|
53
|
+
size: 16,
|
|
54
|
+
color: KColors.warning.normal
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}, [item.category]);
|
|
58
|
+
return /*#__PURE__*/_jsxs(KContainer.Touchable, {
|
|
59
|
+
style: styles.container,
|
|
60
|
+
onPress: () => onPressItem(item),
|
|
61
|
+
children: [icon, /*#__PURE__*/_jsx(KLabel.Text, {
|
|
62
|
+
flex: true,
|
|
63
|
+
typo: "TextNmNormal",
|
|
64
|
+
children: item?.content || ''
|
|
65
|
+
})]
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
export default SuggestionItem;
|
|
69
|
+
const styles = StyleSheet.create({
|
|
70
|
+
container: {
|
|
71
|
+
flexDirection: 'row',
|
|
72
|
+
alignItems: 'center',
|
|
73
|
+
gap: KSpacingValue['0.75rem'],
|
|
74
|
+
paddingHorizontal: KSpacingValue['0.75rem'],
|
|
75
|
+
paddingVertical: 6,
|
|
76
|
+
borderRadius: KRadiusValue['4x'],
|
|
77
|
+
backgroundColor: KColors.hexToRgba(KColors.gray.dark, 0.05)
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
//# sourceMappingURL=SuggestionItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMemo","KColors","KContainer","KImage","KLabel","KRadiusValue","KSpacingValue","SuggestionCategory","StyleSheet","jsx","_jsx","jsxs","_jsxs","SuggestionItem","item","onPressItem","icon","category","product","VectorIcons","name","size","color","palette","primary","w400","discount","danger","normal","gift","success","health_advice","secondary","content","warning","guide","blue","Touchable","style","styles","container","onPress","children","Text","flex","typo","create","flexDirection","alignItems","gap","paddingHorizontal","paddingVertical","borderRadius","backgroundColor","hexToRgba","gray","dark"],"sourceRoot":"../../../../src","sources":["components/chat/SuggestionItem.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import { KContainer
|
|
4
|
-
import
|
|
5
|
-
|
|
3
|
+
import { KContainer } from '@droppii/libs';
|
|
4
|
+
import ChatHeader from "./ChatHeader.js";
|
|
5
|
+
import ChatMessageList from "./ChatMessageList.js";
|
|
6
|
+
import ChatFooter from "./ChatFooter.js";
|
|
7
|
+
import { KeyboardAvoidingView, Platform, StyleSheet } from 'react-native';
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
const ChatBotAI = () => {
|
|
6
10
|
return /*#__PURE__*/_jsx(KContainer.Page, {
|
|
7
|
-
children: /*#__PURE__*/
|
|
8
|
-
|
|
11
|
+
children: /*#__PURE__*/_jsxs(KeyboardAvoidingView, {
|
|
12
|
+
style: styles.container,
|
|
13
|
+
behavior: Platform.OS === 'ios' ? 'padding' : undefined,
|
|
14
|
+
children: [/*#__PURE__*/_jsx(ChatHeader, {}), /*#__PURE__*/_jsx(ChatMessageList, {}), /*#__PURE__*/_jsx(ChatFooter, {})]
|
|
9
15
|
})
|
|
10
16
|
});
|
|
11
17
|
};
|
|
18
|
+
export default ChatBotAI;
|
|
19
|
+
const styles = StyleSheet.create({
|
|
20
|
+
container: {
|
|
21
|
+
flex: 1
|
|
22
|
+
}
|
|
23
|
+
});
|
|
12
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["KContainer","
|
|
1
|
+
{"version":3,"names":["KContainer","ChatHeader","ChatMessageList","ChatFooter","KeyboardAvoidingView","Platform","StyleSheet","jsx","_jsx","jsxs","_jsxs","ChatBotAI","Page","children","style","styles","container","behavior","OS","undefined","create","flex"],"sourceRoot":"../../../../src","sources":["components/chat/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,eAAe;AAC1C,OAAOC,UAAU,MAAM,iBAAc;AACrC,OAAOC,eAAe,MAAM,sBAAmB;AAC/C,OAAOC,UAAU,MAAM,iBAAc;AACrC,SAASC,oBAAoB,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAE1E,MAAMC,SAAS,GAAGA,CAAA,KAAM;EACtB,oBACEH,IAAA,CAACR,UAAU,CAACY,IAAI;IAAAC,QAAA,eACdH,KAAA,CAACN,oBAAoB;MACnBU,KAAK,EAAEC,MAAM,CAACC,SAAU;MACxBC,QAAQ,EAAEZ,QAAQ,CAACa,EAAE,KAAK,KAAK,GAAG,SAAS,GAAGC,SAAU;MAAAN,QAAA,gBAExDL,IAAA,CAACP,UAAU,IAAE,CAAC,eACdO,IAAA,CAACN,eAAe,IAAE,CAAC,eACnBM,IAAA,CAACL,UAAU,IAAE,CAAC;IAAA,CACM;EAAC,CACR,CAAC;AAEtB,CAAC;AAED,eAAeQ,SAAS;AAExB,MAAMI,MAAM,GAAGT,UAAU,CAACc,MAAM,CAAC;EAC/BJ,SAAS,EAAE;IAAEK,IAAI,EAAE;EAAE;AACvB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { KColors, KContainer, KLabel, KSpacingValue } from '@droppii/libs';
|
|
4
|
+
import Markdown from 'react-native-markdown-display';
|
|
5
|
+
import { StyleSheet } from 'react-native';
|
|
6
|
+
import useStreamMessageStore from "../../../store/streamMessage.js";
|
|
7
|
+
import { useEffect, useRef, useState } from 'react';
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
const markDownRules = {
|
|
10
|
+
body: (node, children, _, styles) => /*#__PURE__*/_jsx(KContainer.View, {
|
|
11
|
+
style: styles,
|
|
12
|
+
children: children
|
|
13
|
+
}, node.key),
|
|
14
|
+
paragraph: (node, children, _, styles) => /*#__PURE__*/_jsx(KLabel.Text, {
|
|
15
|
+
typo: "TextMdNormal",
|
|
16
|
+
style: styles,
|
|
17
|
+
color: KColors.black,
|
|
18
|
+
children: children
|
|
19
|
+
}, node.key),
|
|
20
|
+
span: (node, children, _, styles) => /*#__PURE__*/_jsx(KLabel.Text, {
|
|
21
|
+
typo: "TextMdNormal",
|
|
22
|
+
style: styles,
|
|
23
|
+
color: KColors.black,
|
|
24
|
+
children: children
|
|
25
|
+
}, node.key),
|
|
26
|
+
strong: (node, children, _, styles) => /*#__PURE__*/_jsx(KLabel.Text, {
|
|
27
|
+
typo: "TextMdBold",
|
|
28
|
+
style: styles,
|
|
29
|
+
color: KColors.black,
|
|
30
|
+
children: children
|
|
31
|
+
}, node.key)
|
|
32
|
+
};
|
|
33
|
+
const ChatAIAnswerMessageItem = ({
|
|
34
|
+
item,
|
|
35
|
+
isLast = false
|
|
36
|
+
}) => {
|
|
37
|
+
const streamMessage = useStreamMessageStore(state => state.streamMessage?.[item.id]);
|
|
38
|
+
const [display, setDisplay] = useState('');
|
|
39
|
+
const indexRef = useRef(0);
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (!streamMessage) {
|
|
42
|
+
indexRef.current = 0;
|
|
43
|
+
setDisplay(item.content);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const interval = setInterval(() => {
|
|
47
|
+
const remaining = streamMessage.content.slice(indexRef.current);
|
|
48
|
+
if (remaining.length === 0) {
|
|
49
|
+
clearInterval(interval);
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const chunkSize = 10;
|
|
53
|
+
const chunk = remaining.slice(0, chunkSize);
|
|
54
|
+
setDisplay(prev => prev + chunk);
|
|
55
|
+
indexRef.current += chunk.length;
|
|
56
|
+
}, 20);
|
|
57
|
+
return () => clearInterval(interval);
|
|
58
|
+
}, [streamMessage, item]);
|
|
59
|
+
return /*#__PURE__*/_jsxs(KContainer.View, {
|
|
60
|
+
style: styles.container,
|
|
61
|
+
children: [/*#__PURE__*/_jsx(Markdown, {
|
|
62
|
+
rules: markDownRules,
|
|
63
|
+
children: display
|
|
64
|
+
}), /*#__PURE__*/_jsx(KContainer.VisibleView, {
|
|
65
|
+
visible: isLast && !streamMessage,
|
|
66
|
+
children: /*#__PURE__*/_jsx(KLabel.Text, {
|
|
67
|
+
typo: "TextSmNormal",
|
|
68
|
+
color: KColors.gray.light,
|
|
69
|
+
textAlign: "center",
|
|
70
|
+
children: 'Lưu ý: Thông tin từ AI chỉ mang tính tham khảo, cần xác minh với chuyên gia hoặc nguồn uy tín.'
|
|
71
|
+
})
|
|
72
|
+
})]
|
|
73
|
+
});
|
|
74
|
+
};
|
|
75
|
+
export default ChatAIAnswerMessageItem;
|
|
76
|
+
const styles = StyleSheet.create({
|
|
77
|
+
container: {
|
|
78
|
+
paddingHorizontal: KSpacingValue['1rem'],
|
|
79
|
+
gap: KSpacingValue['0.5rem']
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
//# sourceMappingURL=ChatAIAnswerMessageItem.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["KColors","KContainer","KLabel","KSpacingValue","Markdown","StyleSheet","useStreamMessageStore","useEffect","useRef","useState","jsx","_jsx","jsxs","_jsxs","markDownRules","body","node","children","_","styles","View","style","key","paragraph","Text","typo","color","black","span","strong","ChatAIAnswerMessageItem","item","isLast","streamMessage","state","id","display","setDisplay","indexRef","current","content","interval","setInterval","remaining","slice","length","clearInterval","chunkSize","chunk","prev","container","rules","VisibleView","visible","gray","light","textAlign","create","paddingHorizontal","gap"],"sourceRoot":"../../../../../src","sources":["components/chat/item/ChatAIAnswerMessageItem.tsx"],"mappings":"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","ignoreList":[]}
|