react-native-chatbot-ai 0.0.6 → 0.1.1

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 (81) hide show
  1. package/lib/module/assets/icons/icon_thinking_step.gif +0 -0
  2. package/lib/module/assets/icons/index.js +6 -0
  3. package/lib/module/assets/icons/index.js.map +1 -0
  4. package/lib/module/assets/svgIcon/IconChatArrow.js.map +1 -1
  5. package/lib/module/assets/svgIcon/IconThinkingStep.js.map +1 -1
  6. package/lib/module/components/chat/ChatEmpty.js +7 -2
  7. package/lib/module/components/chat/ChatEmpty.js.map +1 -1
  8. package/lib/module/components/chat/ChatFooter.js +4 -2
  9. package/lib/module/components/chat/ChatFooter.js.map +1 -1
  10. package/lib/module/components/chat/ChatHeader.js +5 -1
  11. package/lib/module/components/chat/ChatHeader.js.map +1 -1
  12. package/lib/module/components/chat/ChatMessageList.js +33 -6
  13. package/lib/module/components/chat/ChatMessageList.js.map +1 -1
  14. package/lib/module/components/chat/SuggestionItem.js.map +1 -1
  15. package/lib/module/components/chat/item/ChatAIAnswerMessageItem.js +67 -29
  16. package/lib/module/components/chat/item/ChatAIAnswerMessageItem.js.map +1 -1
  17. package/lib/module/components/chat/item/ChatAIThinkingMessageItem.js +84 -41
  18. package/lib/module/components/chat/item/ChatAIThinkingMessageItem.js.map +1 -1
  19. package/lib/module/components/chat/item/ChatUserMessageItem.js +1 -1
  20. package/lib/module/components/chat/item/ChatUserMessageItem.js.map +1 -1
  21. package/lib/module/components/chat/item/index.js +2 -1
  22. package/lib/module/components/chat/item/index.js.map +1 -1
  23. package/lib/module/constants/events.js +2 -1
  24. package/lib/module/constants/events.js.map +1 -1
  25. package/lib/module/context/ChatContext.js +6 -3
  26. package/lib/module/context/ChatContext.js.map +1 -1
  27. package/lib/module/hooks/message/useMessage.js +2 -2
  28. package/lib/module/hooks/message/useMessage.js.map +1 -1
  29. package/lib/module/hooks/message/useSendMessage.js +1 -1
  30. package/lib/module/hooks/message/useSendMessage.js.map +1 -1
  31. package/lib/module/hooks/message/useStreamMessage.js +4 -4
  32. package/lib/module/hooks/message/useStreamMessage.js.map +1 -1
  33. package/lib/module/services/endpoints.js.map +1 -1
  34. package/lib/module/store/session.js.map +1 -1
  35. package/lib/module/store/streamMessage.js.map +1 -1
  36. package/lib/typescript/src/assets/icons/index.d.ts +5 -0
  37. package/lib/typescript/src/assets/icons/index.d.ts.map +1 -0
  38. package/lib/typescript/src/assets/svgIcon/IconChatArrow.d.ts.map +1 -1
  39. package/lib/typescript/src/assets/svgIcon/IconThinkingStep.d.ts.map +1 -1
  40. package/lib/typescript/src/components/chat/ChatEmpty.d.ts.map +1 -1
  41. package/lib/typescript/src/components/chat/ChatFooter.d.ts.map +1 -1
  42. package/lib/typescript/src/components/chat/ChatHeader.d.ts.map +1 -1
  43. package/lib/typescript/src/components/chat/ChatMessageList.d.ts.map +1 -1
  44. package/lib/typescript/src/components/chat/SuggestionItem.d.ts.map +1 -1
  45. package/lib/typescript/src/components/chat/item/ChatAIAnswerMessageItem.d.ts +1 -1
  46. package/lib/typescript/src/components/chat/item/ChatAIAnswerMessageItem.d.ts.map +1 -1
  47. package/lib/typescript/src/components/chat/item/ChatAIThinkingMessageItem.d.ts +2 -1
  48. package/lib/typescript/src/components/chat/item/ChatAIThinkingMessageItem.d.ts.map +1 -1
  49. package/lib/typescript/src/constants/events.d.ts +1 -0
  50. package/lib/typescript/src/constants/events.d.ts.map +1 -1
  51. package/lib/typescript/src/context/ChatContext.d.ts.map +1 -1
  52. package/lib/typescript/src/hooks/message/useMessage.d.ts.map +1 -1
  53. package/lib/typescript/src/hooks/message/useStreamMessage.d.ts.map +1 -1
  54. package/lib/typescript/src/services/endpoints.d.ts.map +1 -1
  55. package/lib/typescript/src/types/chat.d.ts +3 -0
  56. package/lib/typescript/src/types/chat.d.ts.map +1 -1
  57. package/lib/typescript/src/types/dto.d.ts.map +1 -1
  58. package/package.json +11 -4
  59. package/src/assets/icons/icon_thinking_step.gif +0 -0
  60. package/src/assets/icons/index.ts +3 -0
  61. package/src/assets/svgIcon/IconChatArrow.tsx +7 -1
  62. package/src/assets/svgIcon/IconThinkingStep.tsx +15 -2
  63. package/src/components/chat/ChatEmpty.tsx +16 -5
  64. package/src/components/chat/ChatFooter.tsx +22 -5
  65. package/src/components/chat/ChatHeader.tsx +21 -4
  66. package/src/components/chat/ChatMessageList.tsx +45 -6
  67. package/src/components/chat/SuggestionItem.tsx +50 -8
  68. package/src/components/chat/item/ChatAIAnswerMessageItem.tsx +106 -31
  69. package/src/components/chat/item/ChatAIThinkingMessageItem.tsx +124 -43
  70. package/src/components/chat/item/ChatUserMessageItem.tsx +1 -1
  71. package/src/components/chat/item/index.tsx +1 -1
  72. package/src/constants/events.ts +1 -0
  73. package/src/context/ChatContext.tsx +3 -2
  74. package/src/hooks/message/useMessage.ts +19 -15
  75. package/src/hooks/message/useSendMessage.ts +1 -1
  76. package/src/hooks/message/useStreamMessage.ts +25 -13
  77. package/src/services/endpoints.ts +2 -1
  78. package/src/store/session.ts +2 -2
  79. package/src/store/streamMessage.ts +3 -3
  80. package/src/types/chat.ts +3 -0
  81. package/src/types/dto.ts +6 -1
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ export default {
4
+ icon_thinking_step: require('./icon_thinking_step.gif')
5
+ };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["icon_thinking_step","require"],"sourceRoot":"../../../../src","sources":["assets/icons/index.ts"],"mappings":";;AAAA,eAAe;EACbA,kBAAkB,EAAEC,OAAO,CAAC,0BAA0B;AACxD,CAAC","ignoreList":[]}
@@ -1 +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":[]}
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;IACFM,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA,MAAO;IACfG,OAAO,EAAC,UAAU;IAClBF,IAAI,EAAC,MAAM;IAAA,GACPH,KAAK;IAAAM,QAAA,eAETR,IAAA,CAACF,IAAI;MACHW,CAAC,EAAC,uEAAuE;MACzEJ,IAAI,EAAEA,IAAK;MACXK,WAAW,EAAEJ;IAAQ,CACtB;EAAC,CACC,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -1 +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":[]}
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;IACFU,KAAK,EAAEA,KAAM;IACbC,MAAM,EAAEA,MAAO;IACfC,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAC,MAAM;IAAA,GACPJ,KAAK;IAAAK,QAAA,gBAETT,IAAA,CAACH,IAAI;MACHa,EAAE,EAAC,GAAG;MACNC,SAAS,EAAC,gBAAgB;MAC1BC,CAAC,EAAE,CAAC,CAAE;MACNC,CAAC,EAAE,CAAC,CAAE;MACNR,KAAK,EAAE,EAAG;MACVC,MAAM,EAAE,EAAG;MAAAG,QAAA,eAEXT,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":[]}
@@ -19,6 +19,11 @@ const ChatEmpty = () => {
19
19
  }, 200);
20
20
  return /*#__PURE__*/_jsxs(KContainer.ScrollView, {
21
21
  contentContainerStyle: styles.container,
22
+ style: {
23
+ transform: [{
24
+ scaleY: -1
25
+ }]
26
+ },
22
27
  children: [/*#__PURE__*/_jsx(KLabel.Text, {
23
28
  typo: "TextXLgMedium",
24
29
  center: true,
@@ -29,12 +34,12 @@ const ChatEmpty = () => {
29
34
  typo: "TextMdNormal",
30
35
  center: true,
31
36
  color: KColors.gray.normal,
32
- children: 'Hãy đặt câu hỏi hoặc chia sẻ vấn đề của bạn.'
37
+ children: 'Hãy đặt câu hỏi hoặc chia sẻ vấn đề của bạn!'
33
38
  }), /*#__PURE__*/_jsx(KLabel.Text, {
34
39
  typo: "TextMdNormal",
35
40
  center: true,
36
41
  color: KColors.gray.normal,
37
- children: 'Xem qua những gợi ý dành cho bạn:'
42
+ children: 'Những gợi ý dành cho bạn:'
38
43
  })]
39
44
  }), data?.suggestions?.map(item => /*#__PURE__*/_jsx(SuggestionItem, {
40
45
  item: item,
@@ -1 +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":[]}
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","style","transform","scaleY","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;IACpBC,qBAAqB,EAAEC,MAAM,CAACC,SAAU;IACxCC,KAAK,EAAE;MAAEC,SAAS,EAAE,CAAC;QAAEC,MAAM,EAAE,CAAC;MAAE,CAAC;IAAE,CAAE;IAAAC,QAAA,gBAEvChB,IAAA,CAACR,MAAM,CAACyB,IAAI;MAACC,IAAI,EAAC,eAAe;MAACC,MAAM;MAAAH,QAAA,EACrC;IAA4B,CAClB,CAAC,eACdd,KAAA,CAACX,UAAU,CAAC6B,IAAI;MAACD,MAAM;MAAAH,QAAA,gBACrBhB,IAAA,CAACR,MAAM,CAACyB,IAAI;QAACC,IAAI,EAAC,cAAc;QAACC,MAAM;QAACE,KAAK,EAAE/B,OAAO,CAACgC,IAAI,CAACC,MAAO;QAAAP,QAAA,EAChE;MAA8C,CACpC,CAAC,eACdhB,IAAA,CAACR,MAAM,CAACyB,IAAI;QAACC,IAAI,EAAC,cAAc;QAACC,MAAM;QAACE,KAAK,EAAE/B,OAAO,CAACgC,IAAI,CAACC,MAAO;QAAAP,QAAA,EAChE;MAA2B,CACjB,CAAC;IAAA,CACC,CAAC,EACjBZ,IAAI,EAAEoB,WAAW,EAAEC,GAAG,CAAElB,IAAqB,iBAC5CP,IAAA,CAACJ,cAAc;MAEbW,IAAI,EAAEA,IAAK;MACXmB,WAAW,EAAEpB;IAAQ,GAFhBC,IAAI,CAACoB,aAGX,CACF,CAAC,eACF3B,IAAA,CAACR,MAAM,CAACyB,IAAI;MACVC,IAAI,EAAC,cAAc;MACnBG,KAAK,EAAE/B,OAAO,CAACgC,IAAI,CAACM,KAAM;MAC1BC,SAAS,EAAC,QAAQ;MAAAb,QAAA,EAGhB;IAAgG,CAEvF,CAAC;EAAA,CACO,CAAC;AAE5B,CAAC;AAED,eAAeb,SAAS;AAExB,MAAMQ,MAAM,GAAGjB,UAAU,CAACoC,MAAM,CAAC;EAC/BlB,SAAS,EAAE;IACTmB,QAAQ,EAAE,CAAC;IACXC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,OAAO,EAAEzC,aAAa,CAAC,SAAS,CAAC;IACjC0C,GAAG,EAAE1C,aAAa,CAAC,QAAQ;EAC7B;AACF,CAAC,CAAC","ignoreList":[]}
@@ -24,7 +24,7 @@ const ChatFooter = () => {
24
24
  }
25
25
  onSendMessage(message?.trim());
26
26
  setMessage('');
27
- }, [message, isStreaming]);
27
+ }, [message, isStreaming, onSendMessage, stopStream]);
28
28
  return /*#__PURE__*/_jsxs(KContainer.View, {
29
29
  style: styles.container,
30
30
  children: [/*#__PURE__*/_jsx(KInput.TextArea, {
@@ -35,7 +35,9 @@ const ChatFooter = () => {
35
35
  onChangeText: debouncedMessage,
36
36
  value: message,
37
37
  multiline: true,
38
- style: styles.input
38
+ style: styles.input,
39
+ blurOnSubmit: false,
40
+ textAlignVertical: "top"
39
41
  }), /*#__PURE__*/_jsxs(KContainer.View, {
40
42
  style: styles.actions,
41
43
  children: [/*#__PURE__*/_jsx(KImage.VectorIcons, {
@@ -1 +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":[]}
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","blurOnSubmit","textAlignVertical","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":[]}
@@ -6,10 +6,14 @@ import { ImageBackground, StatusBar, StyleSheet } from 'react-native';
6
6
  import { useCallback } from 'react';
7
7
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
8
8
  import useSessionStore from "../../store/session.js";
9
+ import { useChatContext } from "../../context/ChatContext.js";
9
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
11
  export const ChatHeader = () => {
11
12
  const insets = useSafeAreaInsets();
12
13
  const setSessionId = useSessionStore(state => state.setSessionId);
14
+ const {
15
+ cartButton
16
+ } = useChatContext();
13
17
  const onPressNewSession = () => {
14
18
  setSessionId(undefined);
15
19
  };
@@ -47,7 +51,7 @@ export const ChatHeader = () => {
47
51
  size: 24,
48
52
  color: KColors.white
49
53
  })
50
- })]
54
+ }), cartButton]
51
55
  })]
52
56
  });
53
57
  };
@@ -1 +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":[]}
1
+ {"version":3,"names":["KColors","KContainer","KImage","KLabel","KSpacingValue","images","ImageBackground","StatusBar","StyleSheet","useCallback","useSafeAreaInsets","useSessionStore","useChatContext","jsx","_jsx","jsxs","_jsxs","ChatHeader","insets","setSessionId","state","cartButton","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":"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","ignoreList":[]}
@@ -1,19 +1,43 @@
1
1
  "use strict";
2
2
 
3
- import { FlatList, StyleSheet } from 'react-native';
3
+ import { FlatList, StyleSheet, DeviceEventEmitter } from 'react-native';
4
4
  import ChatEmpty from "./ChatEmpty.js";
5
5
  import { useMessage } from "../../hooks/message/useMessage.js";
6
6
  import ChatItem from "./item/index.js";
7
7
  import { KSpacingValue } from '@droppii/libs';
8
+ import { useCallback, useRef } from 'react';
9
+ import { useEffect } from 'react';
10
+ import { events } from "../../constants/events.js";
8
11
  import { jsx as _jsx } from "react/jsx-runtime";
9
12
  const ChatMessageList = () => {
10
13
  const {
11
14
  messageState
12
15
  } = useMessage();
13
- if (!messageState?.messages?.length) {
14
- return /*#__PURE__*/_jsx(ChatEmpty, {});
15
- }
16
+ const flatListRef = useRef(null);
17
+ const scrollOffsetRef = useRef(0);
18
+ const onScroll = useCallback(event => {
19
+ scrollOffsetRef.current = event?.nativeEvent?.contentOffset?.y;
20
+ }, []);
21
+ useEffect(() => {
22
+ const subExpandThinkingStep = DeviceEventEmitter.addListener(events.expandThinkingStep, isExpand => {
23
+ try {
24
+ const scrollToOffset = flatListRef.current?.scrollToOffset({
25
+ offset: scrollOffsetRef.current + (isExpand ? 60 : -60),
26
+ animated: true
27
+ });
28
+ setTimeout(() => {
29
+ scrollToOffset?.();
30
+ }, 100);
31
+ } catch (error) {
32
+ console.error(error);
33
+ }
34
+ });
35
+ return () => {
36
+ subExpandThinkingStep.remove();
37
+ };
38
+ }, []);
16
39
  return /*#__PURE__*/_jsx(FlatList, {
40
+ ref: flatListRef,
17
41
  data: messageState?.messages || [],
18
42
  renderItem: ({
19
43
  item,
@@ -24,7 +48,9 @@ const ChatMessageList = () => {
24
48
  }),
25
49
  keyExtractor: item => item.id,
26
50
  contentContainerStyle: styles.container,
27
- inverted: true
51
+ inverted: true,
52
+ ListEmptyComponent: /*#__PURE__*/_jsx(ChatEmpty, {}),
53
+ onScroll: onScroll
28
54
  });
29
55
  };
30
56
  export default ChatMessageList;
@@ -32,7 +58,8 @@ const styles = StyleSheet.create({
32
58
  container: {
33
59
  flexGrow: 1,
34
60
  gap: KSpacingValue['0.5rem'],
35
- paddingVertical: KSpacingValue['1rem']
61
+ paddingVertical: KSpacingValue['1rem'],
62
+ justifyContent: 'flex-end'
36
63
  }
37
64
  });
38
65
  //# sourceMappingURL=ChatMessageList.js.map
@@ -1 +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":[]}
1
+ {"version":3,"names":["FlatList","StyleSheet","DeviceEventEmitter","ChatEmpty","useMessage","ChatItem","KSpacingValue","useCallback","useRef","useEffect","events","jsx","_jsx","ChatMessageList","messageState","flatListRef","scrollOffsetRef","onScroll","event","current","nativeEvent","contentOffset","y","subExpandThinkingStep","addListener","expandThinkingStep","isExpand","scrollToOffset","offset","animated","setTimeout","error","console","remove","ref","data","messages","renderItem","item","index","keyExtractor","id","contentContainerStyle","styles","container","inverted","ListEmptyComponent","create","flexGrow","gap","paddingVertical","justifyContent"],"sourceRoot":"../../../../src","sources":["components/chat/ChatMessageList.tsx"],"mappings":";;AAAA,SAASA,QAAQ,EAAEC,UAAU,EAAEC,kBAAkB,QAAQ,cAAc;AACvE,OAAOC,SAAS,MAAM,gBAAa;AACnC,SAASC,UAAU,QAAQ,mCAAgC;AAC3D,OAAOC,QAAQ,MAAM,iBAAQ;AAC7B,SAASC,aAAa,QAAQ,eAAe;AAE7C,SAASC,WAAW,EAAEC,MAAM,QAAQ,OAAO;AAC3C,SAASC,SAAS,QAAQ,OAAO;AACjC,SAASC,MAAM,QAAQ,2BAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEhD,MAAMC,eAAe,GAAGA,CAAA,KAAM;EAC5B,MAAM;IAAEC;EAAa,CAAC,GAAGV,UAAU,CAAC,CAAC;EAErC,MAAMW,WAAW,GAAGP,MAAM,CAAM,IAAI,CAAC;EACrC,MAAMQ,eAAe,GAAGR,MAAM,CAAC,CAAC,CAAC;EAEjC,MAAMS,QAAQ,GAAGV,WAAW,CACzBW,KAAU,IAAK;IACdF,eAAe,CAACG,OAAO,GAAGD,KAAK,EAAEE,WAAW,EAAEC,aAAa,EAAEC,CAAC;EAChE,CAAC,EACD,EACF,CAAC;EAEDb,SAAS,CAAC,MAAM;IACd,MAAMc,qBAAqB,GAAGrB,kBAAkB,CAACsB,WAAW,CAC1Dd,MAAM,CAACe,kBAAkB,EACxBC,QAAiB,IAAK;MACrB,IAAI;QACF,MAAMC,cAAc,GAAGZ,WAAW,CAACI,OAAO,EAAEQ,cAAc,CAAC;UACzDC,MAAM,EAAEZ,eAAe,CAACG,OAAO,IAAIO,QAAQ,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;UACvDG,QAAQ,EAAE;QACZ,CAAC,CAAC;QACFC,UAAU,CAAC,MAAM;UACfH,cAAc,GAAG,CAAC;QACpB,CAAC,EAAE,GAAG,CAAC;MACT,CAAC,CAAC,OAAOI,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;MACtB;IACF,CACF,CAAC;IAED,OAAO,MAAM;MACXR,qBAAqB,CAACU,MAAM,CAAC,CAAC;IAChC,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,oBACErB,IAAA,CAACZ,QAAQ;IACPkC,GAAG,EAAEnB,WAAY;IACjBoB,IAAI,EAAErB,YAAY,EAAEsB,QAAQ,IAAI,EAAG;IACnCC,UAAU,EAAEA,CAAC;MAAEC,IAAI;MAAEC;IAA6C,CAAC,kBACjE3B,IAAA,CAACP,QAAQ;MAACiC,IAAI,EAAEA,IAAK;MAACC,KAAK,EAAEA;IAAM,CAAE,CACrC;IACFC,YAAY,EAAGF,IAAkB,IAAKA,IAAI,CAACG,EAAG;IAC9CC,qBAAqB,EAAEC,MAAM,CAACC,SAAU;IACxCC,QAAQ;IACRC,kBAAkB,eAAElC,IAAA,CAACT,SAAS,IAAE,CAAE;IAClCc,QAAQ,EAAEA;EAAS,CACpB,CAAC;AAEN,CAAC;AAED,eAAeJ,eAAe;AAE9B,MAAM8B,MAAM,GAAG1C,UAAU,CAAC8C,MAAM,CAAC;EAC/BH,SAAS,EAAE;IACTI,QAAQ,EAAE,CAAC;IACXC,GAAG,EAAE3C,aAAa,CAAC,QAAQ,CAAC;IAC5B4C,eAAe,EAAE5C,aAAa,CAAC,MAAM,CAAC;IACtC6C,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -1 +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
+ {"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,40 +1,70 @@
1
1
  "use strict";
2
2
 
3
3
  import { KColors, KContainer, KLabel, KSpacingValue } from '@droppii/libs';
4
- import Markdown from 'react-native-markdown-display';
5
4
  import { StyleSheet } from 'react-native';
6
5
  import useStreamMessageStore from "../../../store/streamMessage.js";
7
6
  import { useEffect, useRef, useState } from 'react';
7
+ import Markdown, { Renderer, MarkedTokenizer } from 'react-native-marked';
8
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)
9
+ class CustomTokenizer extends MarkedTokenizer {}
10
+ class CustomRenderer extends Renderer {
11
+ constructor() {
12
+ super();
13
+ }
14
+ html(text) {
15
+ const match = /^<!--\s*@component:product\(id:([\w-]+)\)\s*-->/.exec(text);
16
+ return /*#__PURE__*/_jsx(KLabel.Text, {
17
+ typo: "TextMdNormal",
18
+ children: match?.[1] || ''
19
+ }, this.getKey());
20
+ }
21
+ paragraph(children, style) {
22
+ return /*#__PURE__*/_jsx(KContainer.View, {
23
+ background: KColors.white,
24
+ paddingV: 0,
25
+ style: style,
26
+ children: children
27
+ }, this.getKey());
28
+ }
29
+ text(text) {
30
+ return /*#__PURE__*/_jsx(KLabel.Text, {
31
+ typo: "TextMdNormal",
32
+ children: text
33
+ }, this.getKey());
34
+ }
35
+ codespan(text) {
36
+ return /*#__PURE__*/_jsx(KLabel.Text, {
37
+ typo: "TextMdNormal",
38
+ children: text
39
+ }, this.getKey());
40
+ }
41
+ strong(children) {
42
+ return /*#__PURE__*/_jsx(KLabel.Text, {
43
+ typo: "TextMdBold",
44
+ children: children
45
+ }, this.getKey());
46
+ }
47
+ }
48
+ const tokenizer = new CustomTokenizer();
49
+ const renderer = new CustomRenderer();
50
+ const markedStyles = {
51
+ paragraph: {
52
+ marginVertical: 5
53
+ },
54
+ blockquote: {
55
+ marginVertical: 5
56
+ },
57
+ li: {
58
+ marginVertical: 5,
59
+ justifyContent: 'center'
60
+ }
32
61
  };
33
62
  const ChatAIAnswerMessageItem = ({
34
63
  item,
35
64
  isLast = false
36
65
  }) => {
37
66
  const streamMessage = useStreamMessageStore(state => state.streamMessage?.[item.id]);
67
+ const isStreaming = useStreamMessageStore(state => state.isStreaming);
38
68
  const [display, setDisplay] = useState('');
39
69
  const indexRef = useRef(0);
40
70
  useEffect(() => {
@@ -49,20 +79,25 @@ const ChatAIAnswerMessageItem = ({
49
79
  clearInterval(interval);
50
80
  return;
51
81
  }
52
- const chunkSize = 10;
82
+ const chunkSize = 50;
53
83
  const chunk = remaining.slice(0, chunkSize);
54
84
  setDisplay(prev => prev + chunk);
55
85
  indexRef.current += chunk.length;
56
- }, 20);
86
+ }, 50);
57
87
  return () => clearInterval(interval);
58
88
  }, [streamMessage, item]);
59
89
  return /*#__PURE__*/_jsxs(KContainer.View, {
60
90
  style: styles.container,
61
91
  children: [/*#__PURE__*/_jsx(Markdown, {
62
- rules: markDownRules,
63
- children: display
92
+ renderer: renderer,
93
+ value: display,
94
+ tokenizer: tokenizer,
95
+ styles: markedStyles,
96
+ flatListProps: {
97
+ style: styles.flatList
98
+ }
64
99
  }), /*#__PURE__*/_jsx(KContainer.VisibleView, {
65
- visible: isLast && !streamMessage,
100
+ visible: isLast && !isStreaming,
66
101
  children: /*#__PURE__*/_jsx(KLabel.Text, {
67
102
  typo: "TextSmNormal",
68
103
  color: KColors.gray.light,
@@ -77,6 +112,9 @@ const styles = StyleSheet.create({
77
112
  container: {
78
113
  paddingHorizontal: KSpacingValue['1rem'],
79
114
  gap: KSpacingValue['0.5rem']
115
+ },
116
+ flatList: {
117
+ backgroundColor: KColors.transparent
80
118
  }
81
119
  });
82
120
  //# sourceMappingURL=ChatAIAnswerMessageItem.js.map
@@ -1 +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":[]}
1
+ {"version":3,"names":["KColors","KContainer","KLabel","KSpacingValue","StyleSheet","useStreamMessageStore","useEffect","useRef","useState","Markdown","Renderer","MarkedTokenizer","jsx","_jsx","jsxs","_jsxs","CustomTokenizer","CustomRenderer","constructor","html","text","match","exec","Text","typo","children","getKey","paragraph","style","View","background","white","paddingV","codespan","strong","tokenizer","renderer","markedStyles","marginVertical","blockquote","li","justifyContent","ChatAIAnswerMessageItem","item","isLast","streamMessage","state","id","isStreaming","display","setDisplay","indexRef","current","content","interval","setInterval","remaining","slice","length","clearInterval","chunkSize","chunk","prev","styles","container","value","flatListProps","flatList","VisibleView","visible","color","gray","light","textAlign","create","paddingHorizontal","gap","backgroundColor","transparent"],"sourceRoot":"../../../../../src","sources":["components/chat/item/ChatAIAnswerMessageItem.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,43 +1,64 @@
1
1
  "use strict";
2
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';
3
+ import { KContainer, KLabel, KColors, KSpacingValue, KListItem, KImage } from '@droppii/libs';
4
+ import { StyleSheet, DeviceEventEmitter } from 'react-native';
6
5
  import { useCallback, useEffect, useRef, useState } from 'react';
7
6
  import { IconThinkingStep } from "../../../assets/svgIcon/IconThinkingStep.js";
8
7
  import { IconChatArrow } from "../../../assets/svgIcon/IconChatArrow.js";
9
8
  import useStreamMessageStore from "../../../store/streamMessage.js";
9
+ import Markdown, { Renderer } from 'react-native-marked';
10
+ import icons from "../../../assets/icons/index.js";
11
+ import { events } from "../../../constants/events.js";
10
12
  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
- };
13
+ class CustomRenderer extends Renderer {
14
+ constructor() {
15
+ super();
16
+ }
17
+ paragraph(children, styles) {
18
+ return /*#__PURE__*/_jsx(KContainer.View, {
19
+ style: styles,
20
+ background: KColors.transparent,
21
+ paddingV: 0,
22
+ children: children
23
+ }, this.getKey());
24
+ }
25
+ text(text) {
26
+ return /*#__PURE__*/_jsx(KLabel.Text, {
27
+ typo: "TextSmNormal",
28
+ children: text
29
+ }, this.getKey());
30
+ }
31
+ codespan(text) {
32
+ return /*#__PURE__*/_jsx(KLabel.Text, {
33
+ typo: "TextSmNormal",
34
+ children: text
35
+ }, this.getKey());
36
+ }
37
+ strong(children) {
38
+ return /*#__PURE__*/_jsx(KLabel.Text, {
39
+ typo: "TextSmNormal",
40
+ children: children
41
+ }, this.getKey());
42
+ }
43
+ image(uri, _alt, _style) {
44
+ return /*#__PURE__*/_jsx(KImage.Thumbnail, {
45
+ uri: uri,
46
+ resizeMode: 'contain',
47
+ size: 'lg'
48
+ }, this.getKey());
49
+ }
50
+ }
51
+ const renderer = new CustomRenderer();
35
52
  const ChatAIThinkingMessageItem = ({
36
- item
53
+ item,
54
+ isLast = false
37
55
  }) => {
38
56
  const streamMessage = useStreamMessageStore(state => state.streamMessage?.[item.id]);
39
57
  const [display, setDisplay] = useState('');
40
58
  const indexRef = useRef(0);
59
+ const onPressExpandThinkingStep = useCallback(expand => {
60
+ DeviceEventEmitter.emit(events.expandThinkingStep, expand);
61
+ }, []);
41
62
  const renderHeader = useCallback(() => {
42
63
  return /*#__PURE__*/_jsxs(KContainer.View, {
43
64
  style: styles.header,
@@ -60,34 +81,49 @@ const ChatAIThinkingMessageItem = ({
60
81
  clearInterval(interval);
61
82
  return;
62
83
  }
63
- const chunkSize = 2;
84
+ const chunkSize = 5;
64
85
  const chunk = remaining.slice(0, chunkSize);
65
86
  setDisplay(prev => prev + chunk);
66
87
  indexRef.current += chunk.length;
67
88
  }, 20);
68
89
  return () => clearInterval(interval);
69
90
  }, [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, {
91
+ const renderThinkingContent = useCallback(() => {
92
+ return /*#__PURE__*/_jsxs(KContainer.View, {
76
93
  style: styles.contentContainer,
77
94
  children: [/*#__PURE__*/_jsx(KContainer.View, {
78
95
  style: styles.arrow,
79
96
  children: /*#__PURE__*/_jsx(IconChatArrow, {
80
- fill: '#0077FF'
97
+ fill: KColors.gray.light
81
98
  })
82
99
  }), /*#__PURE__*/_jsx(KContainer.View, {
83
100
  style: styles.content,
84
101
  children: /*#__PURE__*/_jsx(Markdown, {
85
- rules: markDownRules,
86
- children: display
102
+ renderer: renderer,
103
+ value: display,
104
+ flatListProps: {
105
+ style: styles.flatList
106
+ }
87
107
  })
88
108
  })]
109
+ });
110
+ }, [display]);
111
+ return /*#__PURE__*/_jsx(KContainer.View, {
112
+ children: !isLast || streamMessage?.metadata?.status === 'done' ? /*#__PURE__*/_jsx(KListItem.Accordion, {
113
+ header: renderHeader,
114
+ containerStyle: styles.container,
115
+ headerStyle: styles.mHeader,
116
+ defaultValue: true,
117
+ onChangeValue: onPressExpandThinkingStep,
118
+ children: renderThinkingContent()
119
+ }, item.id.toString()) : /*#__PURE__*/_jsxs(KContainer.View, {
120
+ style: styles.containerLoading,
121
+ children: [renderThinkingContent(), isLast && /*#__PURE__*/_jsx(KImage.Base, {
122
+ size: 42,
123
+ uri: icons.icon_thinking_step
124
+ })]
89
125
  })
90
- }, item.id.toString());
126
+ });
91
127
  };
92
128
  export default ChatAIThinkingMessageItem;
93
129
  const styles = StyleSheet.create({
@@ -96,6 +132,10 @@ const styles = StyleSheet.create({
96
132
  borderBottomWidth: 0,
97
133
  paddingVertical: 0
98
134
  },
135
+ containerLoading: {
136
+ paddingHorizontal: KSpacingValue['1rem'],
137
+ gap: KSpacingValue['0.5rem']
138
+ },
99
139
  header: {
100
140
  flexDirection: 'row',
101
141
  alignItems: 'center',
@@ -113,14 +153,17 @@ const styles = StyleSheet.create({
113
153
  maxWidth: '90%',
114
154
  paddingHorizontal: KSpacingValue['1rem'],
115
155
  paddingVertical: KSpacingValue['0.5rem'],
116
- backgroundColor: KColors.hexToRgba('#0077FF', 0.1),
117
- borderRadius: KSpacingValue['1rem'],
156
+ backgroundColor: KColors.hexToRgba(KColors.gray.light, 0.1),
157
+ borderRadius: KSpacingValue['1.5rem'],
118
158
  borderTopLeftRadius: 0
119
159
  },
120
160
  arrow: {
121
161
  transform: [{
122
162
  rotateY: '180deg'
123
163
  }]
164
+ },
165
+ flatList: {
166
+ backgroundColor: KColors.transparent
124
167
  }
125
168
  });
126
169
  //# sourceMappingURL=ChatAIThinkingMessageItem.js.map