@droppii-org/chat-mobile 0.2.29 → 0.2.30

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 (153) hide show
  1. package/lib/module/components/flows/inputButtons/index.js +6 -3
  2. package/lib/module/components/flows/inputButtons/index.js.map +1 -1
  3. package/lib/module/config/api-endpoints.js +2 -1
  4. package/lib/module/config/api-endpoints.js.map +1 -1
  5. package/lib/module/context/ChatDetailContext.js +35 -2
  6. package/lib/module/context/ChatDetailContext.js.map +1 -1
  7. package/lib/module/context/index.js +1 -0
  8. package/lib/module/context/index.js.map +1 -1
  9. package/lib/module/hooks/conversation/useGetConversationDetail.js +58 -0
  10. package/lib/module/hooks/conversation/useGetConversationDetail.js.map +1 -0
  11. package/lib/module/hooks/flows/useFlow.js +1 -1
  12. package/lib/module/hooks/flows/useFlow.js.map +1 -1
  13. package/lib/module/hooks/flows/useGetConversationFlowMainMenu.js +17 -0
  14. package/lib/module/hooks/flows/useGetConversationFlowMainMenu.js.map +1 -0
  15. package/lib/module/hooks/message/useSendMessage.js +32 -7
  16. package/lib/module/hooks/message/useSendMessage.js.map +1 -1
  17. package/lib/module/hooks/query-keys.js +4 -1
  18. package/lib/module/hooks/query-keys.js.map +1 -1
  19. package/lib/module/hooks/useChatCompose.js +0 -1
  20. package/lib/module/hooks/useChatCompose.js.map +1 -1
  21. package/lib/module/index.js +4 -2
  22. package/lib/module/index.js.map +1 -1
  23. package/lib/module/screens/chat-detail/ChatAttachmentPanel.js +4 -14
  24. package/lib/module/screens/chat-detail/ChatAttachmentPanel.js.map +1 -1
  25. package/lib/module/screens/chat-detail/ChatComposer.js +26 -15
  26. package/lib/module/screens/chat-detail/ChatComposer.js.map +1 -1
  27. package/lib/module/screens/chat-detail/ChatDetail.js +58 -71
  28. package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
  29. package/lib/module/screens/chat-detail/ChatDetailHeader.js +7 -10
  30. package/lib/module/screens/chat-detail/ChatDetailHeader.js.map +1 -1
  31. package/lib/module/screens/chat-detail/ChatListLegend.js +1 -1
  32. package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
  33. package/lib/module/screens/chat-detail/ChatLoadEarlier.js.map +1 -1
  34. package/lib/module/screens/chat-detail/ChatQuickActions.js +2 -1
  35. package/lib/module/screens/chat-detail/ChatQuickActions.js.map +1 -1
  36. package/lib/module/screens/chat-detail/constants.js +30 -24
  37. package/lib/module/screens/chat-detail/constants.js.map +1 -1
  38. package/lib/module/screens/chat-detail/index.js +2 -2
  39. package/lib/module/screens/chat-detail/index.js.map +1 -1
  40. package/lib/module/screens/chat-detail/types.js +15 -1
  41. package/lib/module/screens/chat-detail/types.js.map +1 -1
  42. package/lib/module/services/attachmentHandlers/imageAttachmentHandler.js +2 -2
  43. package/lib/module/services/attachmentHandlers/imageAttachmentHandler.js.map +1 -1
  44. package/lib/module/services/endpoints.js +3 -1
  45. package/lib/module/services/endpoints.js.map +1 -1
  46. package/lib/module/translation/resources/i18n.js +7 -1
  47. package/lib/module/translation/resources/i18n.js.map +1 -1
  48. package/lib/module/types/chat.js +9 -0
  49. package/lib/module/types/chat.js.map +1 -1
  50. package/lib/module/types/flows.js +5 -0
  51. package/lib/module/types/flows.js.map +1 -1
  52. package/lib/module/utils/flows.js +5 -0
  53. package/lib/module/utils/flows.js.map +1 -1
  54. package/lib/module/utils/imageUtils.js +0 -3
  55. package/lib/module/utils/imageUtils.js.map +1 -1
  56. package/lib/module/utils/messageUtils.js +5 -19
  57. package/lib/module/utils/messageUtils.js.map +1 -1
  58. package/lib/typescript/src/components/flows/inputButtons/index.d.ts.map +1 -1
  59. package/lib/typescript/src/config/api-endpoints.d.ts +1 -0
  60. package/lib/typescript/src/config/api-endpoints.d.ts.map +1 -1
  61. package/lib/typescript/src/context/ChatDetailContext.d.ts +1 -1
  62. package/lib/typescript/src/context/ChatDetailContext.d.ts.map +1 -1
  63. package/lib/typescript/src/context/index.d.ts +1 -0
  64. package/lib/typescript/src/context/index.d.ts.map +1 -1
  65. package/lib/typescript/src/hooks/conversation/useGetConversationDetail.d.ts +17 -0
  66. package/lib/typescript/src/hooks/conversation/useGetConversationDetail.d.ts.map +1 -0
  67. package/lib/typescript/src/hooks/flows/useGetConversationFlowMainMenu.d.ts +3 -0
  68. package/lib/typescript/src/hooks/flows/useGetConversationFlowMainMenu.d.ts.map +1 -0
  69. package/lib/typescript/src/hooks/message/useSendMessage.d.ts +5 -4
  70. package/lib/typescript/src/hooks/message/useSendMessage.d.ts.map +1 -1
  71. package/lib/typescript/src/hooks/query-keys.d.ts +3 -0
  72. package/lib/typescript/src/hooks/query-keys.d.ts.map +1 -1
  73. package/lib/typescript/src/index.d.ts +6 -4
  74. package/lib/typescript/src/index.d.ts.map +1 -1
  75. package/lib/typescript/src/screens/chat-detail/ChatAttachmentPanel.d.ts +2 -2
  76. package/lib/typescript/src/screens/chat-detail/ChatAttachmentPanel.d.ts.map +1 -1
  77. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts +3 -1
  78. package/lib/typescript/src/screens/chat-detail/ChatComposer.d.ts.map +1 -1
  79. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts +1 -1
  80. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
  81. package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts +1 -1
  82. package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts.map +1 -1
  83. package/lib/typescript/src/screens/chat-detail/ChatLoadEarlier.d.ts +3 -2
  84. package/lib/typescript/src/screens/chat-detail/ChatLoadEarlier.d.ts.map +1 -1
  85. package/lib/typescript/src/screens/chat-detail/ChatQuickActions.d.ts +1 -1
  86. package/lib/typescript/src/screens/chat-detail/ChatQuickActions.d.ts.map +1 -1
  87. package/lib/typescript/src/screens/chat-detail/constants.d.ts +3 -3
  88. package/lib/typescript/src/screens/chat-detail/constants.d.ts.map +1 -1
  89. package/lib/typescript/src/screens/chat-detail/index.d.ts +3 -3
  90. package/lib/typescript/src/screens/chat-detail/index.d.ts.map +1 -1
  91. package/lib/typescript/src/screens/chat-detail/types.d.ts +28 -19
  92. package/lib/typescript/src/screens/chat-detail/types.d.ts.map +1 -1
  93. package/lib/typescript/src/services/endpoints.d.ts +2 -0
  94. package/lib/typescript/src/services/endpoints.d.ts.map +1 -1
  95. package/lib/typescript/src/store/conversation.d.ts +1 -1
  96. package/lib/typescript/src/store/conversation.d.ts.map +1 -1
  97. package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
  98. package/lib/typescript/src/types/chat.d.ts +26 -2
  99. package/lib/typescript/src/types/chat.d.ts.map +1 -1
  100. package/lib/typescript/src/types/flows.d.ts +3 -0
  101. package/lib/typescript/src/types/flows.d.ts.map +1 -1
  102. package/lib/typescript/src/utils/flows.d.ts +2 -0
  103. package/lib/typescript/src/utils/flows.d.ts.map +1 -1
  104. package/lib/typescript/src/utils/imageUtils.d.ts +0 -1
  105. package/lib/typescript/src/utils/imageUtils.d.ts.map +1 -1
  106. package/lib/typescript/src/utils/messageUtils.d.ts +1 -1
  107. package/lib/typescript/src/utils/messageUtils.d.ts.map +1 -1
  108. package/package.json +3 -5
  109. package/src/components/flows/inputButtons/index.tsx +11 -3
  110. package/src/config/api-endpoints.ts +2 -0
  111. package/src/context/ChatDetailContext.tsx +57 -4
  112. package/src/context/index.ts +1 -0
  113. package/src/hooks/conversation/useGetConversationDetail.ts +78 -0
  114. package/src/hooks/flows/useFlow.ts +1 -1
  115. package/src/hooks/flows/useGetConversationFlowMainMenu.ts +19 -0
  116. package/src/hooks/message/useSendMessage.ts +43 -14
  117. package/src/hooks/query-keys.ts +6 -0
  118. package/src/hooks/useChatCompose.ts +1 -1
  119. package/src/index.tsx +15 -6
  120. package/src/screens/chat-detail/ChatAttachmentPanel.tsx +8 -25
  121. package/src/screens/chat-detail/ChatComposer.tsx +26 -21
  122. package/src/screens/chat-detail/ChatDetail.tsx +61 -77
  123. package/src/screens/chat-detail/ChatDetailHeader.tsx +7 -18
  124. package/src/screens/chat-detail/ChatListLegend.tsx +1 -1
  125. package/src/screens/chat-detail/ChatLoadEarlier.tsx +1 -2
  126. package/src/screens/chat-detail/ChatQuickActions.tsx +6 -2
  127. package/src/screens/chat-detail/constants.ts +33 -27
  128. package/src/screens/chat-detail/index.ts +5 -8
  129. package/src/screens/chat-detail/types.ts +30 -28
  130. package/src/services/attachmentHandlers/imageAttachmentHandler.ts +2 -2
  131. package/src/services/endpoints.ts +4 -0
  132. package/src/store/conversation.ts +1 -1
  133. package/src/translation/resources/i18n.ts +6 -0
  134. package/src/types/chat.ts +31 -1
  135. package/src/types/flows.ts +4 -0
  136. package/src/utils/flows.ts +7 -0
  137. package/src/utils/imageUtils.ts +0 -4
  138. package/src/utils/messageUtils.ts +7 -22
  139. package/lib/module/screens/chat-detail/ChatDay.js +0 -65
  140. package/lib/module/screens/chat-detail/ChatDay.js.map +0 -1
  141. package/lib/module/types/message.js +0 -17
  142. package/lib/module/types/message.js.map +0 -1
  143. package/lib/module/utils/resolveMessageType.js +0 -47
  144. package/lib/module/utils/resolveMessageType.js.map +0 -1
  145. package/lib/typescript/src/screens/chat-detail/ChatDay.d.ts +0 -3
  146. package/lib/typescript/src/screens/chat-detail/ChatDay.d.ts.map +0 -1
  147. package/lib/typescript/src/types/message.d.ts +0 -16
  148. package/lib/typescript/src/types/message.d.ts.map +0 -1
  149. package/lib/typescript/src/utils/resolveMessageType.d.ts +0 -4
  150. package/lib/typescript/src/utils/resolveMessageType.d.ts.map +0 -1
  151. package/src/screens/chat-detail/ChatDay.tsx +0 -73
  152. package/src/types/message.ts +0 -18
  153. package/src/utils/resolveMessageType.ts +0 -51
@@ -1 +0,0 @@
1
- {"version":3,"names":["MessageType","CUSTOM_MESSAGE_DATA_TYPE","DChatMessageType","parseCustomDataType","message","data","customElem","undefined","parsed","JSON","parse","type","messageType","resolveChatMessageType","contentType","TextMessage","AtTextMessage","QuoteMessage","Text","PictureMessage","Image","VideoMessage","Video","FileMessage","File","Merged","CustomMessage","customType","ORDER","Order","LINK","Link","Unsupported"],"sourceRoot":"../../../src","sources":["utils/resolveMessageType.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,+BAA+B;AAE3D,SAASC,wBAAwB,EAAEC,gBAAgB,QAAQ,qBAAkB;AAE7E,MAAMC,mBAAmB,GAAIC,OAAqB,IAAyB;EACzE,MAAMC,IAAI,GAAGD,OAAO,CAACE,UAAU,EAAED,IAAI;EACrC,IAAI,CAACA,IAAI,EAAE;IACT,OAAOE,SAAS;EAClB;EAEA,IAAI;IACF,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACL,IAAI,CAA4C;IAC1E,OAAOG,MAAM,CAACG,IAAI,IAAIH,MAAM,CAACI,WAAW;EAC1C,CAAC,CAAC,MAAM;IACN,OAAOL,SAAS;EAClB;AACF,CAAC;AAED,OAAO,MAAMM,sBAAsB,GACjCT,OAAqB,IACA;EACrB,QAAQA,OAAO,CAACU,WAAW;IACzB,KAAKd,WAAW,CAACe,WAAW;IAC5B,KAAKf,WAAW,CAACgB,aAAa;IAC9B,KAAKhB,WAAW,CAACiB,YAAY;MAC3B,OAAOf,gBAAgB,CAACgB,IAAI;IAC9B,KAAKlB,WAAW,CAACmB,cAAc;MAC7B,OAAOjB,gBAAgB,CAACkB,KAAK;IAC/B,KAAKpB,WAAW,CAACqB,YAAY;MAC3B,OAAOnB,gBAAgB,CAACoB,KAAK;IAC/B,KAAKtB,WAAW,CAACuB,WAAW;MAC1B,OAAOrB,gBAAgB,CAACsB,IAAI;IAC9B,KAAK,GAAG;MAAE;MACR,OAAOtB,gBAAgB,CAACuB,MAAM;IAChC,KAAKzB,WAAW,CAAC0B,aAAa;MAAE;QAC9B,MAAMC,UAAU,GAAGxB,mBAAmB,CAACC,OAAO,CAAC;QAE/C,IAAIuB,UAAU,KAAK1B,wBAAwB,CAAC2B,KAAK,EAAE;UACjD,OAAO1B,gBAAgB,CAAC2B,KAAK;QAC/B;QAEA,IAAIF,UAAU,KAAK1B,wBAAwB,CAAC6B,IAAI,EAAE;UAChD,OAAO5B,gBAAgB,CAAC6B,IAAI;QAC9B;QAEA,OAAO7B,gBAAgB,CAAC8B,WAAW;MACrC;IACA;MACE,OAAO9B,gBAAgB,CAAC8B,WAAW;EACvC;AACF,CAAC","ignoreList":[]}
@@ -1,3 +0,0 @@
1
- import type { DayProps } from 'react-native-gifted-chat';
2
- export declare const ChatDay: import("react").MemoExoticComponent<({ createdAt, containerStyle, wrapperStyle }: DayProps) => import("react").JSX.Element>;
3
- //# sourceMappingURL=ChatDay.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChatDay.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatDay.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AA+CzD,eAAO,MAAM,OAAO,oFAC4B,QAAQ,iCAoBvD,CAAC"}
@@ -1,16 +0,0 @@
1
- export declare const DChatMessageType: {
2
- readonly Text: "TEXT";
3
- readonly Link: "LINK";
4
- readonly Image: "IMAGE";
5
- readonly Video: "VIDEO";
6
- readonly File: "FILE";
7
- readonly Merged: "MERGED";
8
- readonly Order: "ORDER";
9
- readonly Unsupported: "UNSUPPORTED";
10
- };
11
- export type DChatMessageType = (typeof DChatMessageType)[keyof typeof DChatMessageType];
12
- export declare const CUSTOM_MESSAGE_DATA_TYPE: {
13
- readonly LINK: "LINK";
14
- readonly ORDER: "ORDER";
15
- };
16
- //# sourceMappingURL=message.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../src/types/message.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB;;;;;;;;;CASnB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAC1B,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,CAAC;AAE3D,eAAO,MAAM,wBAAwB;;;CAG3B,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { DMessageItem } from '../types/chat';
2
- import { DChatMessageType } from '../types/message';
3
- export declare const resolveChatMessageType: (message: DMessageItem) => DChatMessageType;
4
- //# sourceMappingURL=resolveMessageType.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolveMessageType.d.ts","sourceRoot":"","sources":["../../../../src/utils/resolveMessageType.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAA4B,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAgB9E,eAAO,MAAM,sBAAsB,GACjC,SAAS,YAAY,KACpB,gBA8BF,CAAC"}
@@ -1,73 +0,0 @@
1
- import { memo, useMemo } from 'react';
2
- import { KContainer, KLabel } from '@droppii/libs';
3
- import type { DayProps } from 'react-native-gifted-chat';
4
- import { CHAT_BUBBLE_COLORS } from './constants';
5
-
6
- const formatTime = (date: Date) =>
7
- date.toLocaleTimeString('vi-VN', {
8
- hour: '2-digit',
9
- minute: '2-digit',
10
- hour12: false,
11
- });
12
-
13
- const formatDayLabel = (createdAt: Date | number): string | null => {
14
- const date = new Date(createdAt);
15
- if (Number.isNaN(date.getTime())) {
16
- return null;
17
- }
18
-
19
- const today = new Date();
20
- today.setHours(0, 0, 0, 0);
21
-
22
- const messageDay = new Date(date);
23
- messageDay.setHours(0, 0, 0, 0);
24
-
25
- if (messageDay.getTime() === today.getTime()) {
26
- return `${formatTime(date)} Hôm nay`;
27
- }
28
-
29
- const yesterday = new Date(today);
30
- yesterday.setDate(yesterday.getDate() - 1);
31
-
32
- if (messageDay.getTime() === yesterday.getTime()) {
33
- return `${formatTime(date)} Hôm qua`;
34
- }
35
-
36
- if (messageDay.getFullYear() === today.getFullYear()) {
37
- return `${formatTime(date)} ${date.toLocaleDateString('vi-VN', {
38
- day: 'numeric',
39
- month: 'long',
40
- })}`;
41
- }
42
-
43
- return `${formatTime(date)} ${date.toLocaleDateString('vi-VN', {
44
- day: 'numeric',
45
- month: 'long',
46
- year: 'numeric',
47
- })}`;
48
- };
49
-
50
- export const ChatDay = memo(
51
- ({ createdAt, containerStyle, wrapperStyle }: DayProps) => {
52
- const dateStr = useMemo(
53
- () => (createdAt == null ? null : formatDayLabel(createdAt)),
54
- [createdAt]
55
- );
56
-
57
- if (!dateStr) {
58
- return null;
59
- }
60
-
61
- return (
62
- <KContainer.View center marginV="0.5rem" style={containerStyle}>
63
- <KContainer.View style={wrapperStyle}>
64
- <KLabel.Text typo="TextXsNormal" color={CHAT_BUBBLE_COLORS.dayLabel}>
65
- {dateStr}
66
- </KLabel.Text>
67
- </KContainer.View>
68
- </KContainer.View>
69
- );
70
- }
71
- );
72
-
73
- ChatDay.displayName = 'ChatDay';
@@ -1,18 +0,0 @@
1
- export const DChatMessageType = {
2
- Text: 'TEXT',
3
- Link: 'LINK',
4
- Image: 'IMAGE',
5
- Video: 'VIDEO',
6
- File: 'FILE',
7
- Merged: 'MERGED',
8
- Order: 'ORDER',
9
- Unsupported: 'UNSUPPORTED',
10
- } as const;
11
-
12
- export type DChatMessageType =
13
- (typeof DChatMessageType)[keyof typeof DChatMessageType];
14
-
15
- export const CUSTOM_MESSAGE_DATA_TYPE = {
16
- LINK: 'LINK',
17
- ORDER: 'ORDER',
18
- } as const;
@@ -1,51 +0,0 @@
1
- import { MessageType } from '@droppii/openim-rn-client-sdk';
2
- import type { DMessageItem } from '../types/chat';
3
- import { CUSTOM_MESSAGE_DATA_TYPE, DChatMessageType } from '../types/message';
4
-
5
- const parseCustomDataType = (message: DMessageItem): string | undefined => {
6
- const data = message.customElem?.data;
7
- if (!data) {
8
- return undefined;
9
- }
10
-
11
- try {
12
- const parsed = JSON.parse(data) as { type?: string; messageType?: string };
13
- return parsed.type ?? parsed.messageType;
14
- } catch {
15
- return undefined;
16
- }
17
- };
18
-
19
- export const resolveChatMessageType = (
20
- message: DMessageItem
21
- ): DChatMessageType => {
22
- switch (message.contentType) {
23
- case MessageType.TextMessage:
24
- case MessageType.AtTextMessage:
25
- case MessageType.QuoteMessage:
26
- return DChatMessageType.Text;
27
- case MessageType.PictureMessage:
28
- return DChatMessageType.Image;
29
- case MessageType.VideoMessage:
30
- return DChatMessageType.Video;
31
- case MessageType.FileMessage:
32
- return DChatMessageType.File;
33
- case 107: // MergerMessage (merged/grouped messages)
34
- return DChatMessageType.Merged;
35
- case MessageType.CustomMessage: {
36
- const customType = parseCustomDataType(message);
37
-
38
- if (customType === CUSTOM_MESSAGE_DATA_TYPE.ORDER) {
39
- return DChatMessageType.Order;
40
- }
41
-
42
- if (customType === CUSTOM_MESSAGE_DATA_TYPE.LINK) {
43
- return DChatMessageType.Link;
44
- }
45
-
46
- return DChatMessageType.Unsupported;
47
- }
48
- default:
49
- return DChatMessageType.Unsupported;
50
- }
51
- };