react-native-chatbot-ai 0.1.1 → 0.1.2

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 (128) hide show
  1. package/lib/module/assets/svgIcon/IconChatArrow.js +0 -1
  2. package/lib/module/assets/svgIcon/IconChatArrow.js.map +1 -1
  3. package/lib/module/assets/svgIcon/IconPdf.js +27 -0
  4. package/lib/module/assets/svgIcon/IconPdf.js.map +1 -0
  5. package/lib/module/assets/svgIcon/IconThinkingStep.js +0 -1
  6. package/lib/module/assets/svgIcon/IconThinkingStep.js.map +1 -1
  7. package/lib/module/components/chat/ChatMessageList.js.map +1 -1
  8. package/lib/module/components/chat/footer/index.js +328 -0
  9. package/lib/module/components/chat/footer/index.js.map +1 -0
  10. package/lib/module/components/chat/footer/item/UploadFileItem.js +163 -0
  11. package/lib/module/components/chat/footer/item/UploadFileItem.js.map +1 -0
  12. package/lib/module/components/chat/footer/item/UploadImageItem.js +94 -0
  13. package/lib/module/components/chat/footer/item/UploadImageItem.js.map +1 -0
  14. package/lib/module/components/chat/index.js +1 -1
  15. package/lib/module/components/chat/index.js.map +1 -1
  16. package/lib/module/components/chat/item/ChatAIAnswerMessageItem.js +89 -28
  17. package/lib/module/components/chat/item/ChatAIAnswerMessageItem.js.map +1 -1
  18. package/lib/module/components/chat/item/ChatUserMessageItem.js +122 -15
  19. package/lib/module/components/chat/item/ChatUserMessageItem.js.map +1 -1
  20. package/lib/module/components/portal/Toast.js +193 -0
  21. package/lib/module/components/portal/Toast.js.map +1 -0
  22. package/lib/module/components/portal/index.js +15 -0
  23. package/lib/module/components/portal/index.js.map +1 -0
  24. package/lib/module/constants/index.js +9 -0
  25. package/lib/module/constants/index.js.map +1 -0
  26. package/lib/module/context/ChatContext.js +8 -5
  27. package/lib/module/context/ChatContext.js.map +1 -1
  28. package/lib/module/hooks/message/useMessage.js +0 -1
  29. package/lib/module/hooks/message/useMessage.js.map +1 -1
  30. package/lib/module/hooks/message/useSendMessage.js +3 -3
  31. package/lib/module/hooks/message/useSendMessage.js.map +1 -1
  32. package/lib/module/hooks/upload/useFileUpload.js +94 -0
  33. package/lib/module/hooks/upload/useFileUpload.js.map +1 -0
  34. package/lib/module/hooks/upload/useImageUpload.js +92 -0
  35. package/lib/module/hooks/upload/useImageUpload.js.map +1 -0
  36. package/lib/module/hooks/useAndroidBackHandler.js +20 -0
  37. package/lib/module/hooks/useAndroidBackHandler.js.map +1 -0
  38. package/lib/module/services/endpoints.js +3 -0
  39. package/lib/module/services/endpoints.js.map +1 -1
  40. package/lib/module/types/index.js +1 -0
  41. package/lib/module/types/index.js.map +1 -1
  42. package/lib/module/types/ui.js +4 -0
  43. package/lib/module/types/ui.js.map +1 -0
  44. package/lib/module/utils/common.js +31 -0
  45. package/lib/module/utils/common.js.map +1 -0
  46. package/lib/module/utils/device.js +137 -0
  47. package/lib/module/utils/device.js.map +1 -0
  48. package/lib/module/utils/ui.js +28 -0
  49. package/lib/module/utils/ui.js.map +1 -0
  50. package/lib/typescript/src/assets/svgIcon/IconChatArrow.d.ts.map +1 -1
  51. package/lib/typescript/src/assets/svgIcon/IconPdf.d.ts +7 -0
  52. package/lib/typescript/src/assets/svgIcon/IconPdf.d.ts.map +1 -0
  53. package/lib/typescript/src/assets/svgIcon/IconThinkingStep.d.ts.map +1 -1
  54. package/lib/typescript/src/components/chat/ChatMessageList.d.ts.map +1 -1
  55. package/lib/typescript/src/components/chat/footer/index.d.ts +16 -0
  56. package/lib/typescript/src/components/chat/footer/index.d.ts.map +1 -0
  57. package/lib/typescript/src/components/chat/footer/item/UploadFileItem.d.ts +9 -0
  58. package/lib/typescript/src/components/chat/footer/item/UploadFileItem.d.ts.map +1 -0
  59. package/lib/typescript/src/components/chat/footer/item/UploadImageItem.d.ts +9 -0
  60. package/lib/typescript/src/components/chat/footer/item/UploadImageItem.d.ts.map +1 -0
  61. package/lib/typescript/src/components/chat/item/ChatAIAnswerMessageItem.d.ts +9 -0
  62. package/lib/typescript/src/components/chat/item/ChatAIAnswerMessageItem.d.ts.map +1 -1
  63. package/lib/typescript/src/components/chat/item/ChatUserMessageItem.d.ts.map +1 -1
  64. package/lib/typescript/src/components/portal/Toast.d.ts +4 -0
  65. package/lib/typescript/src/components/portal/Toast.d.ts.map +1 -0
  66. package/lib/typescript/src/components/portal/index.d.ts +3 -0
  67. package/lib/typescript/src/components/portal/index.d.ts.map +1 -0
  68. package/lib/typescript/src/constants/index.d.ts +6 -0
  69. package/lib/typescript/src/constants/index.d.ts.map +1 -0
  70. package/lib/typescript/src/context/ChatContext.d.ts.map +1 -1
  71. package/lib/typescript/src/hooks/message/useMessage.d.ts.map +1 -1
  72. package/lib/typescript/src/hooks/message/useSendMessage.d.ts +2 -1
  73. package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -1
  74. package/lib/typescript/src/hooks/upload/useFileUpload.d.ts +15 -0
  75. package/lib/typescript/src/hooks/upload/useFileUpload.d.ts.map +1 -0
  76. package/lib/typescript/src/hooks/upload/useImageUpload.d.ts +15 -0
  77. package/lib/typescript/src/hooks/upload/useImageUpload.d.ts.map +1 -0
  78. package/lib/typescript/src/hooks/useAndroidBackHandler.d.ts +4 -0
  79. package/lib/typescript/src/hooks/useAndroidBackHandler.d.ts.map +1 -0
  80. package/lib/typescript/src/services/endpoints.d.ts +3 -0
  81. package/lib/typescript/src/services/endpoints.d.ts.map +1 -1
  82. package/lib/typescript/src/types/chat.d.ts +6 -0
  83. package/lib/typescript/src/types/chat.d.ts.map +1 -1
  84. package/lib/typescript/src/types/dto.d.ts +10 -1
  85. package/lib/typescript/src/types/dto.d.ts.map +1 -1
  86. package/lib/typescript/src/types/index.d.ts +1 -0
  87. package/lib/typescript/src/types/index.d.ts.map +1 -1
  88. package/lib/typescript/src/types/ui.d.ts +7 -0
  89. package/lib/typescript/src/types/ui.d.ts.map +1 -0
  90. package/lib/typescript/src/utils/common.d.ts +10 -0
  91. package/lib/typescript/src/utils/common.d.ts.map +1 -0
  92. package/lib/typescript/src/utils/device.d.ts +11 -0
  93. package/lib/typescript/src/utils/device.d.ts.map +1 -0
  94. package/lib/typescript/src/utils/ui.d.ts +12 -0
  95. package/lib/typescript/src/utils/ui.d.ts.map +1 -0
  96. package/package.json +8 -3
  97. package/src/assets/svgIcon/IconChatArrow.tsx +1 -7
  98. package/src/assets/svgIcon/IconPdf.tsx +26 -0
  99. package/src/assets/svgIcon/IconThinkingStep.tsx +1 -7
  100. package/src/components/chat/ChatMessageList.tsx +3 -6
  101. package/src/components/chat/footer/index.tsx +410 -0
  102. package/src/components/chat/footer/item/UploadFileItem.tsx +181 -0
  103. package/src/components/chat/footer/item/UploadImageItem.tsx +91 -0
  104. package/src/components/chat/index.tsx +1 -1
  105. package/src/components/chat/item/ChatAIAnswerMessageItem.tsx +118 -38
  106. package/src/components/chat/item/ChatUserMessageItem.tsx +145 -13
  107. package/src/components/portal/Toast.tsx +315 -0
  108. package/src/components/portal/index.tsx +13 -0
  109. package/src/constants/index.ts +9 -0
  110. package/src/context/ChatContext.tsx +6 -2
  111. package/src/hooks/message/useMessage.ts +0 -1
  112. package/src/hooks/message/useSendMessage.ts +4 -4
  113. package/src/hooks/upload/useFileUpload.ts +126 -0
  114. package/src/hooks/upload/useImageUpload.ts +123 -0
  115. package/src/hooks/useAndroidBackHandler.ts +29 -0
  116. package/src/services/endpoints.ts +3 -0
  117. package/src/types/chat.ts +2 -0
  118. package/src/types/dto.ts +16 -1
  119. package/src/types/index.ts +1 -0
  120. package/src/types/ui.ts +12 -0
  121. package/src/utils/common.ts +40 -0
  122. package/src/utils/device.ts +170 -0
  123. package/src/utils/ui.tsx +32 -0
  124. package/lib/module/components/chat/ChatFooter.js +0 -91
  125. package/lib/module/components/chat/ChatFooter.js.map +0 -1
  126. package/lib/typescript/src/components/chat/ChatFooter.d.ts +0 -3
  127. package/lib/typescript/src/components/chat/ChatFooter.d.ts.map +0 -1
  128. package/src/components/chat/ChatFooter.tsx +0 -99
@@ -14,7 +14,6 @@ export const IconChatArrow = props => {
14
14
  height: height,
15
15
  viewBox: "0 0 6 18",
16
16
  fill: "none",
17
- ...props,
18
17
  children: /*#__PURE__*/_jsx(Path, {
19
18
  d: "M4.024 0H0v18c.545-4.5 2.546-9.873 4.956-12.5C6.332 4 6.65 0 4.024 0z",
20
19
  fill: fill,
@@ -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;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
+ {"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;IAAAG,QAAA,eAC/DR,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,27 @@
1
+ "use strict";
2
+
3
+ import Svg, { Path } from 'react-native-svg';
4
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
+ export const IconPdf = props => {
6
+ const {
7
+ width = 20,
8
+ height = 20
9
+ } = props || {};
10
+ return /*#__PURE__*/_jsxs(Svg, {
11
+ width: width,
12
+ height: height,
13
+ viewBox: "0 0 20 20",
14
+ fill: "none",
15
+ children: [/*#__PURE__*/_jsx(Path, {
16
+ d: "M2.5 0h10.62l5.63 5.608V18.75c0 .69-.56 1.25-1.25 1.25h-15c-.69 0-1.25-.56-1.25-1.25V1.25C1.25.56 1.81 0 2.5 0z",
17
+ fill: "#E2574C"
18
+ }), /*#__PURE__*/_jsx(Path, {
19
+ d: "M18.732 5.625h-4.357c-.69 0-1.25-.56-1.25-1.25V.013l5.607 5.612z",
20
+ fill: "#B53629"
21
+ }), /*#__PURE__*/_jsx(Path, {
22
+ d: "M12.314 9.642c.012-.19.09-.392.234-.607.147-.218.336-.386.566-.505.23-.12.45-.181.664-.185h1.513c.296-.004.476.123.542.38v.168c-.066.257-.246.384-.542.38h-1.267a.498.498 0 00-.32.15.448.448 0 00-.148.327v.618h1.625c.295-.004.475.123.541.381v.179c-.066.258-.246.385-.541.38h-1.624v1.548a.468.468 0 01-.148.334.512.512 0 01-.32.142h-.314a.506.506 0 01-.314-.143.468.468 0 01-.147-.333V9.642zM10.516 9.75a.448.448 0 00-.148-.328.499.499 0 00-.32-.149h-.344c-.143-.004-.221.048-.234.155v2.821c.013.107.09.159.234.155h.345a.512.512 0 00.32-.143.468.468 0 00.147-.333V9.75zM8.24 9.047c.004-.21.107-.38.308-.512.2-.134.447-.198.738-.19h.941c.258.004.502.065.732.184.23.12.416.288.56.506.147.215.227.417.24.607v2.393c-.013.19-.093.395-.24.613-.144.214-.33.38-.56.5-.23.119-.474.18-.732.184h-.941c-.291.008-.538-.053-.738-.184-.201-.135-.304-.308-.308-.518V9.047zM4.627 13.332a.506.506 0 01-.313-.143.468.468 0 01-.148-.333V9.63c.012-.19.09-.392.234-.607.147-.218.336-.386.566-.505.23-.12.45-.181.664-.185h.523c.258.004.502.065.732.184.23.12.416.288.56.506.148.215.228.417.24.607v.381c-.012.19-.092.395-.24.613-.144.215-.33.381-.56.5-.23.12-.47.18-.72.185h-.769v1.547a.468.468 0 01-.147.333.512.512 0 01-.32.143h-.302zm1.815-3.594a.448.448 0 00-.147-.328.499.499 0 00-.32-.149h-.111a.499.499 0 00-.32.15.448.448 0 00-.148.327v.63h.579a.51.51 0 00.32-.142.468.468 0 00.147-.334v-.154z",
23
+ fill: "#fff"
24
+ })]
25
+ });
26
+ };
27
+ //# sourceMappingURL=IconPdf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Svg","Path","jsx","_jsx","jsxs","_jsxs","IconPdf","props","width","height","viewBox","fill","children","d"],"sourceRoot":"../../../../src","sources":["assets/svgIcon/IconPdf.tsx"],"mappings":";;AAAA,OAAOA,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAO7C,OAAO,MAAMC,OAAO,GAAIC,KAAY,IAAK;EACvC,MAAM;IAAEC,KAAK,GAAG,EAAE;IAAEC,MAAM,GAAG;EAAG,CAAC,GAAGF,KAAK,IAAI,CAAC,CAAC;EAC/C,oBACEF,KAAA,CAACL,GAAG;IAACQ,KAAK,EAAEA,KAAM;IAACC,MAAM,EAAEA,MAAO;IAACC,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,MAAM;IAAAC,QAAA,gBAChET,IAAA,CAACF,IAAI;MACHY,CAAC,EAAC,iHAAiH;MACnHF,IAAI,EAAC;IAAS,CACf,CAAC,eACFR,IAAA,CAACF,IAAI;MACHY,CAAC,EAAC,kEAAkE;MACpEF,IAAI,EAAC;IAAS,CACf,CAAC,eACFR,IAAA,CAACF,IAAI;MACHY,CAAC,EAAC,g2CAAg2C;MACl2CF,IAAI,EAAC;IAAM,CACZ,CAAC;EAAA,CACC,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -12,7 +12,6 @@ export const IconThinkingStep = props => {
12
12
  height: height,
13
13
  viewBox: "0 0 24 24",
14
14
  fill: "none",
15
- ...props,
16
15
  children: [/*#__PURE__*/_jsx(Mask, {
17
16
  id: "a",
18
17
  maskUnits: "userSpaceOnUse",
@@ -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;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":[]}
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;IAAAC,QAAA,gBAChET,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":[]}
@@ -1 +1 @@
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
+ {"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,CAAEW,KAAU,IAAK;IAC3CF,eAAe,CAACG,OAAO,GAAGD,KAAK,EAAEE,WAAW,EAAEC,aAAa,EAAEC,CAAC;EAChE,CAAC,EAAE,EAAE,CAAC;EAENb,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":[]}
@@ -0,0 +1,328 @@
1
+ "use strict";
2
+
3
+ import { KButton, KColors, KContainer, KImage, KInput, KLabel, KRadiusValue, KSpacingValue } from '@droppii/libs';
4
+ import { useCallback, useState, useRef, useMemo } from 'react';
5
+ import { FlatList, StyleSheet, TouchableWithoutFeedback } 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 { Menu, MenuTrigger, MenuOption, MenuOptions, renderers } from 'react-native-popup-menu';
10
+ import { openCameraPicker, openDocumentPicker, openImageMultiplePicker } from "../../../utils/device.js";
11
+ import UploadImageItem from "./item/UploadImageItem.js";
12
+ import { isSameFile, shortenFileName } from "../../../utils/common.js";
13
+ import { types } from '@react-native-documents/picker';
14
+ import UploadFileItem from "./item/UploadFileItem.js";
15
+ import UIUtils from "../../../utils/ui.js";
16
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
+ const {
18
+ Popover
19
+ } = renderers;
20
+ const MAX_FILE_UPLOAD = 3;
21
+ const MAX_FILE_SIZE = 30 * 1024 * 1024;
22
+ const MAX_IMAGE_SIZE = 7 * 1024 * 1024;
23
+ const ChatFooter = () => {
24
+ const menuRef = useRef(null);
25
+ const {
26
+ onSendMessage,
27
+ stopStream
28
+ } = useSendMessage();
29
+ const [message, setMessage] = useState('');
30
+ const isStreaming = useStreamMessageStore(state => state.isStreaming);
31
+ const [fileUpload, setFileUpload] = useState([]);
32
+ const debouncedMessage = debounce(message => {
33
+ setMessage(message);
34
+ }, 200);
35
+ const isDisabledSend = useMemo(() => {
36
+ return isStreaming || message.trim() === '' || fileUpload.length > 0 && fileUpload.some(i => !i.remoteUrl);
37
+ }, [isStreaming, message, fileUpload]);
38
+ const onPressImagePicker = useCallback(async () => {
39
+ if (fileUpload.filter(i => i.uploadType === 'image').length >= MAX_FILE_UPLOAD) {
40
+ UIUtils.toast.open({
41
+ title: `Chỉ được gửi tối đa ${MAX_FILE_UPLOAD} hình ảnh`
42
+ });
43
+ return;
44
+ }
45
+ const newImages = (await openImageMultiplePicker({
46
+ maxFiles: MAX_FILE_UPLOAD - fileUpload.length > 0 ? MAX_FILE_UPLOAD - fileUpload.length : 1
47
+ })) || [];
48
+ const uniqueImages = newImages.filter(img => !fileUpload.some(sel => isSameFile(sel, img))).map(i => ({
49
+ ...i,
50
+ uploadType: 'image'
51
+ })).slice(0, MAX_FILE_UPLOAD - fileUpload.length);
52
+ if (uniqueImages?.length > 0) {
53
+ setFileUpload(prev => {
54
+ const totalImages = prev.filter(i => i.uploadType === 'image');
55
+ const totalPrevSize = totalImages.reduce((acc, item) => acc + (item.size || 0), 0);
56
+ const totalNewSize = uniqueImages.reduce((acc, item) => acc + (item.size || 0), 0);
57
+ if (totalPrevSize + totalNewSize > MAX_IMAGE_SIZE) {
58
+ UIUtils.toast.open({
59
+ title: `Tổng dung lượng ảnh tải lên có kích thước quá lớn:\n ${uniqueImages.map(i => shortenFileName(i.filename || '')).join(',\n')}, \nVui lòng nén ảnh hoặc tải lên nhiều lần để tiếp tục.`,
60
+ theme: 'danger'
61
+ });
62
+ return prev;
63
+ }
64
+ return [...prev, ...uniqueImages];
65
+ });
66
+ }
67
+ }, [fileUpload]);
68
+ const onPressCameraPicker = useCallback(async () => {
69
+ if (fileUpload.filter(i => i.uploadType === 'image').length >= MAX_FILE_UPLOAD) {
70
+ UIUtils.toast.open({
71
+ title: `Chỉ được gửi tối đa ${MAX_FILE_UPLOAD} hình ảnh`
72
+ });
73
+ return;
74
+ }
75
+ const newImage = await openCameraPicker();
76
+ if (newImage) {
77
+ setFileUpload(prev => {
78
+ const totalImages = prev.filter(i => i.uploadType === 'image');
79
+ const totalPrevSize = totalImages.reduce((acc, item) => acc + (item.size || 0), 0);
80
+ const totalNewSize = newImage.size || 0;
81
+ if (totalPrevSize + totalNewSize > MAX_IMAGE_SIZE) {
82
+ UIUtils.toast.open({
83
+ title: `Tổng dung lượng ảnh tải lên có kích thước quá lớn:\n ${shortenFileName(newImage.filename || '')},\n Vui lòng nén ảnh hoặc tải lên nhiều lần để tiếp tục.`,
84
+ theme: 'danger'
85
+ });
86
+ return prev;
87
+ }
88
+ return [...prev, {
89
+ ...newImage,
90
+ uploadType: 'image'
91
+ }];
92
+ });
93
+ }
94
+ }, [fileUpload]);
95
+ const menuItems = useMemo(() => {
96
+ return [{
97
+ icon: 'image-o',
98
+ onPress: onPressImagePicker,
99
+ label: 'Thư viện ảnh'
100
+ }, {
101
+ icon: 'camera-o',
102
+ onPress: onPressCameraPicker,
103
+ label: 'Chụp ảnh'
104
+ }];
105
+ }, [onPressImagePicker, onPressCameraPicker]);
106
+ const onPressSend = useCallback(() => {
107
+ if (isStreaming) {
108
+ stopStream();
109
+ return;
110
+ }
111
+ const attachments = fileUpload.map(i => ({
112
+ type: i.uploadType,
113
+ source_type: 'url',
114
+ data: i.remoteUrl || '',
115
+ name: i.uploadType === 'image' ? i.filename : i.name,
116
+ size: i.size || null,
117
+ mime_type: i.uploadType === 'image' ? i.mime : i.type
118
+ }));
119
+ onSendMessage(message?.trim(), attachments);
120
+ setMessage('');
121
+ setFileUpload([]);
122
+ }, [message, isStreaming, onSendMessage, stopStream, fileUpload]);
123
+ const handleUploadSuccess = useCallback(item => {
124
+ if (item.uploadType === 'image') {
125
+ setFileUpload(prev => {
126
+ const next = [...prev];
127
+ const fileIndex = next.findIndex(i => i.uploadType === 'image' && i?.path === item?.path);
128
+ if (fileIndex > -1) {
129
+ next[fileIndex] = {
130
+ ...next[fileIndex],
131
+ ...item
132
+ };
133
+ }
134
+ return next;
135
+ });
136
+ } else {
137
+ setFileUpload(prev => {
138
+ const next = [...prev];
139
+ const fileIndex = next.findIndex(i => i.uploadType === 'file' && i?.uri === item?.uri);
140
+ if (fileIndex > -1) {
141
+ next[fileIndex] = {
142
+ ...next[fileIndex],
143
+ ...item
144
+ };
145
+ }
146
+ return next;
147
+ });
148
+ }
149
+ }, []);
150
+ const handleRemoveUploadItem = useCallback(item => {
151
+ if (item.uploadType === 'image') {
152
+ setFileUpload(prev => prev.filter(i => i.uploadType !== 'image' || i.path !== item.path));
153
+ } else {
154
+ setFileUpload(prev => prev.filter(i => i.uploadType !== 'file' || i.uri !== item.uri));
155
+ }
156
+ }, []);
157
+ const renderUploadItem = useCallback(item => {
158
+ switch (item.uploadType) {
159
+ case 'image':
160
+ return /*#__PURE__*/_jsx(UploadImageItem, {
161
+ item: item,
162
+ onRemove: handleRemoveUploadItem,
163
+ onSuccess: handleUploadSuccess
164
+ });
165
+ case 'file':
166
+ return /*#__PURE__*/_jsx(UploadFileItem, {
167
+ item: item,
168
+ onRemove: handleRemoveUploadItem,
169
+ onSuccess: handleUploadSuccess
170
+ });
171
+ default:
172
+ return null;
173
+ }
174
+ }, [handleRemoveUploadItem, handleUploadSuccess]);
175
+ const handlePressDocumentPicker = useCallback(async () => {
176
+ const listFiles = fileUpload.filter(i => i.uploadType === 'file');
177
+ if (listFiles.length >= MAX_FILE_UPLOAD) {
178
+ UIUtils.toast.open({
179
+ title: `Chỉ được gửi tối đa ${MAX_FILE_UPLOAD} tệp`
180
+ });
181
+ return;
182
+ }
183
+ const newDocument = await openDocumentPicker({
184
+ type: types.pdf
185
+ });
186
+ const isUnique = listFiles.some(doc => doc.uploadType === 'file' && doc.uri !== newDocument?.uri);
187
+ if (!!newDocument && isUnique) {
188
+ setFileUpload(prev => {
189
+ const totalPrevSize = prev.reduce((acc, item) => acc + (item.size || 0), 0);
190
+ const totalNewSize = newDocument.size || 0;
191
+ if (totalPrevSize + totalNewSize > MAX_FILE_SIZE) {
192
+ UIUtils.toast.open({
193
+ title: `Tổng dung lượng tệp tải lên có kích thước quá lớn:\n ${shortenFileName(newDocument.name || '')},\n Vui lòng nén tệp hoặc tải lên nhiều lần để tiếp tục.`,
194
+ theme: 'danger'
195
+ });
196
+ return prev;
197
+ }
198
+ return [...prev, {
199
+ ...newDocument,
200
+ uploadType: 'file'
201
+ }];
202
+ });
203
+ }
204
+ }, [fileUpload]);
205
+ return /*#__PURE__*/_jsxs(KContainer.View, {
206
+ style: styles.container,
207
+ children: [/*#__PURE__*/_jsx(KContainer.VisibleView, {
208
+ visible: fileUpload.length > 0,
209
+ children: /*#__PURE__*/_jsx(FlatList, {
210
+ data: fileUpload,
211
+ renderItem: ({
212
+ item
213
+ }) => renderUploadItem(item),
214
+ horizontal: true,
215
+ keyExtractor: item => item.uploadType === 'image' ? item.path : item.uri,
216
+ contentContainerStyle: styles.listUploadItem
217
+ })
218
+ }), /*#__PURE__*/_jsx(KInput.TextArea, {
219
+ paddingV: '0.25rem',
220
+ paddingH: '0.25rem',
221
+ placeholder: "B\u1EA1n mu\u1ED1n h\u1ECFi g\xEC h\xF4m nay?",
222
+ clearButtonMode: "hidden",
223
+ onChangeText: debouncedMessage,
224
+ value: message,
225
+ multiline: true,
226
+ style: styles.input,
227
+ blurOnSubmit: false,
228
+ textAlignVertical: "top"
229
+ }), /*#__PURE__*/_jsxs(KContainer.View, {
230
+ style: styles.actions,
231
+ children: [/*#__PURE__*/_jsxs(Menu, {
232
+ ref: menuRef,
233
+ renderer: Popover,
234
+ rendererProps: {
235
+ placement: 'top',
236
+ anchorStyle: {
237
+ display: 'none'
238
+ }
239
+ },
240
+ children: [/*#__PURE__*/_jsx(MenuTrigger, {
241
+ customStyles: {
242
+ TriggerTouchableComponent: TouchableWithoutFeedback
243
+ },
244
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
245
+ name: "image-o",
246
+ size: 24,
247
+ color: KColors.gray.dark
248
+ })
249
+ }), /*#__PURE__*/_jsx(MenuOptions, {
250
+ optionsContainerStyle: styles.popover,
251
+ children: menuItems.map(i => /*#__PURE__*/_jsxs(MenuOption, {
252
+ onSelect: i.onPress,
253
+ style: styles.menuItem,
254
+ children: [/*#__PURE__*/_jsx(KLabel.Text, {
255
+ typo: "TextMdMedium",
256
+ children: i.label
257
+ }), /*#__PURE__*/_jsx(KImage.VectorIcons, {
258
+ name: i.icon
259
+ })]
260
+ }, i.icon))
261
+ })]
262
+ }), /*#__PURE__*/_jsx(KContainer.Touchable, {
263
+ onPress: handlePressDocumentPicker,
264
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
265
+ name: "paperclip-o",
266
+ size: 24,
267
+ color: KColors.gray.dark
268
+ })
269
+ }), /*#__PURE__*/_jsx(KContainer.View, {
270
+ flex: true
271
+ }), /*#__PURE__*/_jsx(KButton.Solid, {
272
+ kind: "primary",
273
+ icon: {
274
+ vectorName: isStreaming ? 'square-b' : 'send-b',
275
+ size: 20,
276
+ tintColor: KColors.white
277
+ },
278
+ onPress: onPressSend,
279
+ br: "round",
280
+ disabled: isDisabledSend
281
+ })]
282
+ })]
283
+ });
284
+ };
285
+ export default ChatFooter;
286
+ const styles = StyleSheet.create({
287
+ container: {
288
+ paddingHorizontal: KSpacingValue['0.75rem'],
289
+ paddingVertical: KSpacingValue['0.5rem'],
290
+ gap: KSpacingValue['0.5rem'],
291
+ borderWidth: 1,
292
+ borderColor: KColors.hexToRgba(KColors.black, 0.15),
293
+ borderBottomWidth: 0,
294
+ borderTopLeftRadius: KSpacingValue['1.25rem'],
295
+ borderTopRightRadius: KSpacingValue['1.25rem']
296
+ },
297
+ actions: {
298
+ flexDirection: 'row',
299
+ alignItems: 'center',
300
+ gap: KSpacingValue['1rem']
301
+ },
302
+ sendButton: {
303
+ alignSelf: 'flex-end'
304
+ },
305
+ input: {
306
+ maxHeight: 100
307
+ },
308
+ popover: {
309
+ borderRadius: KRadiusValue['4x'],
310
+ backgroundColor: KColors.white,
311
+ width: 200
312
+ },
313
+ menuItem: {
314
+ paddingHorizontal: KSpacingValue['1rem'],
315
+ flexDirection: 'row',
316
+ alignItems: 'center',
317
+ paddingVertical: KSpacingValue['0.75rem'],
318
+ borderBottomWidth: 1,
319
+ borderBottomColor: KColors.border.normal,
320
+ gap: KSpacingValue['0.5rem'],
321
+ justifyContent: 'space-between'
322
+ },
323
+ listUploadItem: {
324
+ gap: KSpacingValue['0.75rem'],
325
+ paddingTop: 6
326
+ }
327
+ });
328
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KButton","KColors","KContainer","KImage","KInput","KLabel","KRadiusValue","KSpacingValue","useCallback","useState","useRef","useMemo","FlatList","StyleSheet","TouchableWithoutFeedback","debounce","useSendMessage","useStreamMessageStore","Menu","MenuTrigger","MenuOption","MenuOptions","renderers","openCameraPicker","openDocumentPicker","openImageMultiplePicker","UploadImageItem","isSameFile","shortenFileName","types","UploadFileItem","UIUtils","jsx","_jsx","jsxs","_jsxs","Popover","MAX_FILE_UPLOAD","MAX_FILE_SIZE","MAX_IMAGE_SIZE","ChatFooter","menuRef","onSendMessage","stopStream","message","setMessage","isStreaming","state","fileUpload","setFileUpload","debouncedMessage","isDisabledSend","trim","length","some","i","remoteUrl","onPressImagePicker","filter","uploadType","toast","open","title","newImages","maxFiles","uniqueImages","img","sel","map","slice","prev","totalImages","totalPrevSize","reduce","acc","item","size","totalNewSize","filename","join","theme","onPressCameraPicker","newImage","menuItems","icon","onPress","label","onPressSend","attachments","type","source_type","data","name","mime_type","mime","handleUploadSuccess","next","fileIndex","findIndex","path","uri","handleRemoveUploadItem","renderUploadItem","onRemove","onSuccess","handlePressDocumentPicker","listFiles","newDocument","pdf","isUnique","doc","View","style","styles","container","children","VisibleView","visible","renderItem","horizontal","keyExtractor","contentContainerStyle","listUploadItem","TextArea","paddingV","paddingH","placeholder","clearButtonMode","onChangeText","value","multiline","input","blurOnSubmit","textAlignVertical","actions","ref","renderer","rendererProps","placement","anchorStyle","display","customStyles","TriggerTouchableComponent","VectorIcons","color","gray","dark","optionsContainerStyle","popover","onSelect","menuItem","Text","typo","Touchable","flex","Solid","kind","vectorName","tintColor","white","br","disabled","create","paddingHorizontal","paddingVertical","gap","borderWidth","borderColor","hexToRgba","black","borderBottomWidth","borderTopLeftRadius","borderTopRightRadius","flexDirection","alignItems","sendButton","alignSelf","maxHeight","borderRadius","backgroundColor","width","borderBottomColor","border","normal","justifyContent","paddingTop"],"sourceRoot":"../../../../../src","sources":["components/chat/footer/index.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+
3
+ import { KColors, KContainer, KImage, KLabel, KRadiusValue, KSpacingValue } from '@droppii/libs';
4
+ import { StyleSheet, Animated, Easing } from 'react-native';
5
+ import { IconPdf } from "../../../../assets/svgIcon/IconPdf.js";
6
+ import { formatFileSize, shortenFileName } from "../../../../utils/common.js";
7
+ import { useFileUpload } from "../../../../hooks/upload/useFileUpload.js";
8
+ import UIUtils from "../../../../utils/ui.js";
9
+ import { useEffect, useRef } from 'react';
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ const UploadFileItem = ({
12
+ item,
13
+ onRemove,
14
+ onSuccess
15
+ }) => {
16
+ const {
17
+ isUploading,
18
+ cancel
19
+ } = useFileUpload({
20
+ file: item,
21
+ onSuccess: data => {
22
+ const mItem = {
23
+ ...item,
24
+ remoteUrl: data?.[0]?.publicUrl,
25
+ streamId: data?.[0]?.streamId
26
+ };
27
+ if (mItem.remoteUrl) {
28
+ onSuccess?.(mItem);
29
+ }
30
+ },
31
+ onError: () => {
32
+ UIUtils.toast.open({
33
+ title: `Đã xảy ra lỗi khi tải lên tệp sau: ${item.name}. Vui lòng thử lại.`,
34
+ theme: 'danger'
35
+ });
36
+ onRemove?.(item);
37
+ }
38
+ });
39
+ const scaleAnim = useRef(new Animated.Value(0.5)).current;
40
+ const opacityAnim = useRef(new Animated.Value(1.2)).current;
41
+ useEffect(() => {
42
+ const loopAnim = Animated.loop(Animated.sequence([Animated.parallel([Animated.timing(scaleAnim, {
43
+ toValue: 1.2,
44
+ // lan toả ra ngoài
45
+ duration: 1000,
46
+ easing: Easing.out(Easing.ease),
47
+ useNativeDriver: true
48
+ }), Animated.timing(opacityAnim, {
49
+ toValue: 0,
50
+ duration: 1000,
51
+ easing: Easing.linear,
52
+ useNativeDriver: true
53
+ })]), Animated.parallel([Animated.timing(scaleAnim, {
54
+ toValue: 0,
55
+ duration: 0,
56
+ useNativeDriver: true
57
+ }), Animated.timing(opacityAnim, {
58
+ toValue: 1,
59
+ duration: 0,
60
+ useNativeDriver: true
61
+ })])]));
62
+ loopAnim.start();
63
+ if (!isUploading) {
64
+ loopAnim.stop();
65
+ }
66
+ return () => loopAnim.stop();
67
+ }, [scaleAnim, opacityAnim, isUploading]);
68
+ return /*#__PURE__*/_jsxs(KContainer.View, {
69
+ style: styles.container,
70
+ children: [isUploading ? /*#__PURE__*/_jsxs(KContainer.Touchable, {
71
+ style: styles.loadingContainer,
72
+ onPress: cancel,
73
+ children: [/*#__PURE__*/_jsx(Animated.View, {
74
+ style: [styles.loaddingRipple, {
75
+ opacity: opacityAnim,
76
+ transform: [{
77
+ scale: scaleAnim
78
+ }]
79
+ }]
80
+ }), /*#__PURE__*/_jsx(KContainer.View, {
81
+ style: styles.loadingCircle,
82
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
83
+ name: 'close-b',
84
+ color: KColors.white,
85
+ size: 16
86
+ })
87
+ })]
88
+ }) : /*#__PURE__*/_jsx(IconPdf, {}), /*#__PURE__*/_jsxs(KContainer.View, {
89
+ style: styles.content,
90
+ children: [/*#__PURE__*/_jsx(KLabel.Text, {
91
+ typo: "TextXsNormal",
92
+ children: shortenFileName(item.name || '')
93
+ }), /*#__PURE__*/_jsx(KLabel.Text, {
94
+ typo: "Text2XsNormal",
95
+ color: KColors.gray.light,
96
+ children: formatFileSize(item.size || 0)
97
+ })]
98
+ }), /*#__PURE__*/_jsx(KContainer.Touchable, {
99
+ style: styles.close,
100
+ onPress: () => onRemove?.(item),
101
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
102
+ name: "close-o",
103
+ size: 14,
104
+ color: KColors.white
105
+ })
106
+ })]
107
+ });
108
+ };
109
+ export default UploadFileItem;
110
+ const styles = StyleSheet.create({
111
+ container: {
112
+ position: 'relative',
113
+ paddingVertical: KSpacingValue['0.25rem'],
114
+ paddingLeft: KSpacingValue['0.5rem'],
115
+ paddingRight: KSpacingValue['1.25rem'],
116
+ gap: KSpacingValue['0.5rem'],
117
+ height: 48,
118
+ flexDirection: 'row',
119
+ alignItems: 'center',
120
+ borderRadius: KRadiusValue['3x'],
121
+ backgroundColor: KColors.hexToRgba(KColors.gray.light, 0.1)
122
+ },
123
+ content: {
124
+ flex: 1
125
+ },
126
+ close: {
127
+ position: 'absolute',
128
+ top: -6,
129
+ right: -6,
130
+ borderRadius: KRadiusValue.round,
131
+ width: 20,
132
+ height: 20,
133
+ justifyContent: 'center',
134
+ alignItems: 'center',
135
+ borderWidth: 1,
136
+ borderColor: KColors.white,
137
+ backgroundColor: KColors.gray.dark
138
+ },
139
+ loadingContainer: {
140
+ width: 36,
141
+ height: 36,
142
+ borderRadius: KRadiusValue.round,
143
+ justifyContent: 'center',
144
+ alignItems: 'center'
145
+ },
146
+ loaddingRipple: {
147
+ position: 'absolute',
148
+ width: 36,
149
+ height: 36,
150
+ borderRadius: KRadiusValue.round,
151
+ borderWidth: 4,
152
+ borderColor: KColors.secondary.normal
153
+ },
154
+ loadingCircle: {
155
+ width: 24,
156
+ height: 24,
157
+ borderRadius: KRadiusValue.round,
158
+ backgroundColor: KColors.secondary.normal,
159
+ justifyContent: 'center',
160
+ alignItems: 'center'
161
+ }
162
+ });
163
+ //# sourceMappingURL=UploadFileItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["KColors","KContainer","KImage","KLabel","KRadiusValue","KSpacingValue","StyleSheet","Animated","Easing","IconPdf","formatFileSize","shortenFileName","useFileUpload","UIUtils","useEffect","useRef","jsx","_jsx","jsxs","_jsxs","UploadFileItem","item","onRemove","onSuccess","isUploading","cancel","file","data","mItem","remoteUrl","publicUrl","streamId","onError","toast","open","title","name","theme","scaleAnim","Value","current","opacityAnim","loopAnim","loop","sequence","parallel","timing","toValue","duration","easing","out","ease","useNativeDriver","linear","start","stop","View","style","styles","container","children","Touchable","loadingContainer","onPress","loaddingRipple","opacity","transform","scale","loadingCircle","VectorIcons","color","white","size","content","Text","typo","gray","light","close","create","position","paddingVertical","paddingLeft","paddingRight","gap","height","flexDirection","alignItems","borderRadius","backgroundColor","hexToRgba","flex","top","right","round","width","justifyContent","borderWidth","borderColor","dark","secondary","normal"],"sourceRoot":"../../../../../../src","sources":["components/chat/footer/item/UploadFileItem.tsx"],"mappings":"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","ignoreList":[]}