@droppii-org/chat-mobile 0.2.96 → 0.2.98

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 (31) hide show
  1. package/README.md +10 -1
  2. package/lib/module/assets/images/index.js +1 -0
  3. package/lib/module/assets/images/index.js.map +1 -1
  4. package/lib/module/assets/images/tag_bot_mall.png +0 -0
  5. package/lib/module/components/Avatar/Avatar.utils.js +9 -2
  6. package/lib/module/components/Avatar/Avatar.utils.js.map +1 -1
  7. package/lib/module/config/api-endpoints.js +1 -1
  8. package/lib/module/config/api-endpoints.js.map +1 -1
  9. package/lib/module/config/configuration.js +24 -2
  10. package/lib/module/config/configuration.js.map +1 -1
  11. package/lib/module/core/index.js +7 -1
  12. package/lib/module/core/index.js.map +1 -1
  13. package/lib/module/hooks/message/useSearchMessage.js +9 -8
  14. package/lib/module/hooks/message/useSearchMessage.js.map +1 -1
  15. package/lib/typescript/src/assets/images/index.d.ts +1 -0
  16. package/lib/typescript/src/assets/images/index.d.ts.map +1 -1
  17. package/lib/typescript/src/components/Avatar/Avatar.utils.d.ts.map +1 -1
  18. package/lib/typescript/src/config/configuration.d.ts +15 -0
  19. package/lib/typescript/src/config/configuration.d.ts.map +1 -1
  20. package/lib/typescript/src/core/index.d.ts +7 -0
  21. package/lib/typescript/src/core/index.d.ts.map +1 -1
  22. package/lib/typescript/src/hooks/message/useSearchMessage.d.ts +24 -25
  23. package/lib/typescript/src/hooks/message/useSearchMessage.d.ts.map +1 -1
  24. package/package.json +1 -1
  25. package/src/assets/images/index.ts +1 -0
  26. package/src/assets/images/tag_bot_mall.png +0 -0
  27. package/src/components/Avatar/Avatar.utils.ts +7 -2
  28. package/src/config/api-endpoints.ts +1 -1
  29. package/src/config/configuration.ts +24 -1
  30. package/src/core/index.ts +14 -2
  31. package/src/hooks/message/useSearchMessage.ts +9 -12
package/README.md CHANGED
@@ -29,7 +29,7 @@ npm install react-native-fs
29
29
  Khởi tạo Chat SDK. Gọi hàm này **một lần duy nhất** khi ứng dụng khởi động, **trước khi** render bất kỳ component nào sử dụng tính năng chat.
30
30
 
31
31
  ```ts
32
- import { initChatSdk } from '@droppii/chat-mobile';
32
+ import { initChatSdk, DChatProject } from '@droppii/chat-mobile';
33
33
  import RNFS from 'react-native-fs';
34
34
 
35
35
  initChatSdk({
@@ -39,6 +39,7 @@ initChatSdk({
39
39
  logFilePath: RNFS.DocumentDirectoryPath + '/chat', // Thư mục lưu file log
40
40
  logLevel: 5, // LogLevel.Debug (xem bảng bên dưới)
41
41
  isLogStandardOutput: true, // In log ra console (nên bật khi develop)
42
+ platform: DChatProject.CUS, // Tích hợp cho app Mall — bỏ qua nếu là app Biz (mặc định DChatProject.BIZ)
42
43
  });
43
44
  ```
44
45
 
@@ -53,6 +54,14 @@ initChatSdk({
53
54
  | `logLevel` | `LogLevel` | ✅ | Mức độ log (xem bảng `LogLevel` bên dưới) |
54
55
  | `isLogStandardOutput` | `boolean` | ✅ | `true` để in log ra stdout (hữu ích khi debug) |
55
56
 
57
+ #### Tham số bổ sung của `@droppii/chat-mobile`
58
+
59
+ Ngoài các tham số của `InitOptions` (chuyển thẳng vào OpenIM SDK), `initChatSdk` còn nhận thêm:
60
+
61
+ | Tham số | Kiểu | Bắt buộc | Mô tả |
62
+ | ---------- | -------------- | :------: | ----------------------------------------------------------------------------------------------------------- |
63
+ | `platform` | `DChatProject` | ❌ | App đang tích hợp thư viện: `DChatProject.BIZ` (mặc định) hoặc `DChatProject.CUS` (Mall). Quyết định các asset riêng theo app, ví dụ tag "Bot" trên avatar. Không truyền thì giữ nguyên hành vi cũ (Biz). |
64
+
56
65
  #### `LogLevel`
57
66
 
58
67
  | Giá trị | Hằng số | Mô tả |
@@ -9,6 +9,7 @@ const Images = {
9
9
  ICON_WORD: require('./icon_word.png'),
10
10
  NOTIFICATION_WARNING: require('./notification-warning.png'),
11
11
  TAG_BOT: require('./tag_bot.png'),
12
+ TAG_BOT_MALL: require('./tag_bot_mall.png'),
12
13
  TAG_MALL: require('./tag_mall.png'),
13
14
  ICON_DROPPII: require('./icon_droppii.png'),
14
15
  BTN_RESEND: require('./btn_resend.png'),
@@ -1 +1 @@
1
- {"version":3,"names":["Images","ICON_BOT","require","ICON_EXCEL","ICON_IMG","ICON_PDF","ICON_TXT","ICON_WORD","NOTIFICATION_WARNING","TAG_BOT","TAG_MALL","ICON_DROPPII","BTN_RESEND","RESOURCE_CENTER_EMPTY_BOX","SEARCH_EMPTY"],"sourceRoot":"../../../../src","sources":["assets/images/index.ts"],"mappings":";;AAAA,MAAMA,MAAM,GAAG;EACbC,QAAQ,EAAEC,OAAO,CAAC,gBAAgB,CAAC;EACnCC,UAAU,EAAED,OAAO,CAAC,kBAAkB,CAAC;EACvCE,QAAQ,EAAEF,OAAO,CAAC,gBAAgB,CAAC;EACnCG,QAAQ,EAAEH,OAAO,CAAC,gBAAgB,CAAC;EACnCI,QAAQ,EAAEJ,OAAO,CAAC,gBAAgB,CAAC;EACnCK,SAAS,EAAEL,OAAO,CAAC,iBAAiB,CAAC;EACrCM,oBAAoB,EAAEN,OAAO,CAAC,4BAA4B,CAAC;EAC3DO,OAAO,EAAEP,OAAO,CAAC,eAAe,CAAC;EACjCQ,QAAQ,EAAER,OAAO,CAAC,gBAAgB,CAAC;EACnCS,YAAY,EAAET,OAAO,CAAC,oBAAoB,CAAC;EAC3CU,UAAU,EAAEV,OAAO,CAAC,kBAAkB,CAAC;EACvCW,yBAAyB,EAAEX,OAAO,CAAC,iCAAiC,CAAC;EACrEY,YAAY,EAAEZ,OAAO,CAAC,oBAAoB;AAC5C,CAAC;AAED,eAAeF,MAAM","ignoreList":[]}
1
+ {"version":3,"names":["Images","ICON_BOT","require","ICON_EXCEL","ICON_IMG","ICON_PDF","ICON_TXT","ICON_WORD","NOTIFICATION_WARNING","TAG_BOT","TAG_BOT_MALL","TAG_MALL","ICON_DROPPII","BTN_RESEND","RESOURCE_CENTER_EMPTY_BOX","SEARCH_EMPTY"],"sourceRoot":"../../../../src","sources":["assets/images/index.ts"],"mappings":";;AAAA,MAAMA,MAAM,GAAG;EACbC,QAAQ,EAAEC,OAAO,CAAC,gBAAgB,CAAC;EACnCC,UAAU,EAAED,OAAO,CAAC,kBAAkB,CAAC;EACvCE,QAAQ,EAAEF,OAAO,CAAC,gBAAgB,CAAC;EACnCG,QAAQ,EAAEH,OAAO,CAAC,gBAAgB,CAAC;EACnCI,QAAQ,EAAEJ,OAAO,CAAC,gBAAgB,CAAC;EACnCK,SAAS,EAAEL,OAAO,CAAC,iBAAiB,CAAC;EACrCM,oBAAoB,EAAEN,OAAO,CAAC,4BAA4B,CAAC;EAC3DO,OAAO,EAAEP,OAAO,CAAC,eAAe,CAAC;EACjCQ,YAAY,EAAER,OAAO,CAAC,oBAAoB,CAAC;EAC3CS,QAAQ,EAAET,OAAO,CAAC,gBAAgB,CAAC;EACnCU,YAAY,EAAEV,OAAO,CAAC,oBAAoB,CAAC;EAC3CW,UAAU,EAAEX,OAAO,CAAC,kBAAkB,CAAC;EACvCY,yBAAyB,EAAEZ,OAAO,CAAC,iCAAiC,CAAC;EACrEa,YAAY,EAAEb,OAAO,CAAC,oBAAoB;AAC5C,CAAC;AAED,eAAeF,MAAM","ignoreList":[]}
@@ -34,14 +34,21 @@ export const getInitials = fullName => {
34
34
  };
35
35
  export const getBadgeImage = variant => {
36
36
  const Images = require('../../assets/images').default;
37
+ const {
38
+ getPlatform
39
+ } = require('../../config/configuration');
40
+ const {
41
+ DChatProject
42
+ } = require('../../types/chat');
43
+ const botImage = getPlatform() === DChatProject.CUS ? Images.TAG_BOT_MALL : Images.TAG_BOT;
37
44
  switch (variant) {
38
45
  case 'mall':
39
46
  return Images.TAG_MALL;
40
47
  case 'bot':
41
48
  case 'support':
42
- return Images.TAG_BOT;
49
+ return botImage;
43
50
  default:
44
- return Images.TAG_BOT;
51
+ return botImage;
45
52
  }
46
53
  };
47
54
  export { SIZE_MAP, TYPO_MAP };
@@ -1 +1 @@
1
- {"version":3,"names":["SIZE_MAP","sm","nm","md","lg","TYPO_MAP","getInitials","fullName","cleaned","replace","trim","parts","split","filter","Boolean","length","toUpperCase","firstInitial","lastInitial","getBadgeImage","variant","Images","require","default","TAG_MALL","TAG_BOT"],"sourceRoot":"../../../../src","sources":["components/Avatar/Avatar.utils.ts"],"mappings":";;AAAA,MAAMA,QAAQ,GAAG;EACfC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACN,CAAC,MAAM,GAAG;AACZ,CAAU;AAEV,MAAMC,QAAQ,GAAG;EACf,EAAE,EAAE,YAAY;EAChB,EAAE,EAAE,YAAY;EAChB,EAAE,EAAE,YAAY;EAChB,EAAE,EAAE,YAAY;EAChB,EAAE,EAAE;AACN,CAAU;AAEV,OAAO,MAAMC,WAAW,GAAIC,QAAiB,IAAa;EACxD,IAAI,CAACA,QAAQ,EAAE,OAAO,GAAG;;EAEzB;EACA,MAAMC,OAAO,GAAGD,QAAQ,CACrBE,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;EAAA,CAC5BC,IAAI,CAAC,CAAC;EAET,IAAI,CAACF,OAAO,EAAE,OAAO,GAAG;EAExB,MAAMG,KAAK,GAAGH,OAAO,CAACI,KAAK,CAAC,KAAK,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC;EAElD,IAAIH,KAAK,CAACI,MAAM,KAAK,CAAC,EAAE;IACtB;IACA,OAAOJ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAEK,WAAW,CAAC,CAAC,IAAI,GAAG;EAC9C;;EAEA;EACA,MAAMC,YAAY,GAAGN,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAEK,WAAW,CAAC,CAAC,IAAI,EAAE;EACzD,MAAME,WAAW,GAAGP,KAAK,GAAGA,KAAK,CAACI,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAEC,WAAW,CAAC,CAAC,IAAI,EAAE;EACvE,OAAOC,YAAY,GAAGC,WAAW,IAAI,GAAG;AAC1C,CAAC;AAED,OAAO,MAAMC,aAAa,GAAIC,OAAgB,IAAK;EACjD,MAAMC,MAAM,GAAGC,OAAO,CAAC,qBAAqB,CAAC,CAACC,OAAO;EACrD,QAAQH,OAAO;IACb,KAAK,MAAM;MACT,OAAOC,MAAM,CAACG,QAAQ;IACxB,KAAK,KAAK;IACV,KAAK,SAAS;MACZ,OAAOH,MAAM,CAACI,OAAO;IACvB;MACE,OAAOJ,MAAM,CAACI,OAAO;EACzB;AACF,CAAC;AAED,SAASzB,QAAQ,EAAEK,QAAQ","ignoreList":[]}
1
+ {"version":3,"names":["SIZE_MAP","sm","nm","md","lg","TYPO_MAP","getInitials","fullName","cleaned","replace","trim","parts","split","filter","Boolean","length","toUpperCase","firstInitial","lastInitial","getBadgeImage","variant","Images","require","default","getPlatform","DChatProject","botImage","CUS","TAG_BOT_MALL","TAG_BOT","TAG_MALL"],"sourceRoot":"../../../../src","sources":["components/Avatar/Avatar.utils.ts"],"mappings":";;AAAA,MAAMA,QAAQ,GAAG;EACfC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACNC,EAAE,EAAE,EAAE;EACN,CAAC,MAAM,GAAG;AACZ,CAAU;AAEV,MAAMC,QAAQ,GAAG;EACf,EAAE,EAAE,YAAY;EAChB,EAAE,EAAE,YAAY;EAChB,EAAE,EAAE,YAAY;EAChB,EAAE,EAAE,YAAY;EAChB,EAAE,EAAE;AACN,CAAU;AAEV,OAAO,MAAMC,WAAW,GAAIC,QAAiB,IAAa;EACxD,IAAI,CAACA,QAAQ,EAAE,OAAO,GAAG;;EAEzB;EACA,MAAMC,OAAO,GAAGD,QAAQ,CACrBE,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;EAAA,CAC5BC,IAAI,CAAC,CAAC;EAET,IAAI,CAACF,OAAO,EAAE,OAAO,GAAG;EAExB,MAAMG,KAAK,GAAGH,OAAO,CAACI,KAAK,CAAC,KAAK,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC;EAElD,IAAIH,KAAK,CAACI,MAAM,KAAK,CAAC,EAAE;IACtB;IACA,OAAOJ,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAEK,WAAW,CAAC,CAAC,IAAI,GAAG;EAC9C;;EAEA;EACA,MAAMC,YAAY,GAAGN,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAEK,WAAW,CAAC,CAAC,IAAI,EAAE;EACzD,MAAME,WAAW,GAAGP,KAAK,GAAGA,KAAK,CAACI,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAEC,WAAW,CAAC,CAAC,IAAI,EAAE;EACvE,OAAOC,YAAY,GAAGC,WAAW,IAAI,GAAG;AAC1C,CAAC;AAED,OAAO,MAAMC,aAAa,GAAIC,OAAgB,IAAK;EACjD,MAAMC,MAAM,GAAGC,OAAO,CAAC,qBAAqB,CAAC,CAACC,OAAO;EACrD,MAAM;IAAEC;EAAY,CAAC,GAAGF,OAAO,CAAC,4BAA4B,CAAC;EAC7D,MAAM;IAAEG;EAAa,CAAC,GAAGH,OAAO,CAAC,kBAAkB,CAAC;EACpD,MAAMI,QAAQ,GACZF,WAAW,CAAC,CAAC,KAAKC,YAAY,CAACE,GAAG,GAAGN,MAAM,CAACO,YAAY,GAAGP,MAAM,CAACQ,OAAO;EAE3E,QAAQT,OAAO;IACb,KAAK,MAAM;MACT,OAAOC,MAAM,CAACS,QAAQ;IACxB,KAAK,KAAK;IACV,KAAK,SAAS;MACZ,OAAOJ,QAAQ;IACjB;MACE,OAAOA,QAAQ;EACnB;AACF,CAAC;AAED,SAAS1B,QAAQ,EAAEK,QAAQ","ignoreList":[]}
@@ -15,7 +15,7 @@ const DEFAULT_ENDPOINTS = {
15
15
  urlMetadata: '/chat-service/v1/utils/url-metadata',
16
16
  conversation: '/chat-service/v1/app/conversations',
17
17
  imageUpload: '/uploader-service/v1/uploader/permanently',
18
- bot: '/chat-service/v1/app/bots/',
18
+ bot: '/chat-service/v1/app/bots',
19
19
  uploadFcmToken: '/chat-service/third/fcm_update_token',
20
20
  stickerCategories: '/chat-service/v1/app/sticker-categories',
21
21
  stickersByCategory: '/chat-service/v1/app/sticker-categories',
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_ENDPOINTS","urlMetadata","conversation","imageUpload","bot","uploadFcmToken","stickerCategories","stickersByCategory","stickerHistory","messagesResources","messages","contacts","groupJoinLink","endpoints","getApiEndpoint","key","setApiEndpoint","value","setAllApiEndpoints","newEndpoints","resetApiEndpoints","getAllApiEndpoints"],"sourceRoot":"../../../src","sources":["config/api-endpoints.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmBA,MAAMA,iBAA+B,GAAG;EACtCC,WAAW,EAAE,qCAAqC;EAClDC,YAAY,EAAE,oCAAoC;EAClDC,WAAW,EAAE,2CAA2C;EACxDC,GAAG,EAAE,4BAA4B;EACjCC,cAAc,EAAE,sCAAsC;EACtDC,iBAAiB,EAAE,yCAAyC;EAC5DC,kBAAkB,EAAE,yCAAyC;EAC7DC,cAAc,EAAE,uCAAuC;EACvDC,iBAAiB,EAAE,yCAAyC;EAC5DC,QAAQ,EAAE,+BAA+B;EACzCC,QAAQ,EAAE,+BAA+B;EACzCC,aAAa,EAAE;AACjB,CAAC;AAED,IAAIC,SAAuB,GAAG;EAAE,GAAGb;AAAkB,CAAC;;AAEtD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMc,cAAc,GACzBC,GAAM,IACc;EACpB,OAAOF,SAAS,CAACE,GAAG,CAAC;AACvB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GAAGA,CAC5BD,GAAM,EACNE,KAAsB,KACnB;EACHJ,SAAS,CAACE,GAAG,CAAC,GAAGE,KAAK;AACxB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMC,kBAAkB,GAAIC,YAAmC,IAAK;EACzEN,SAAS,GAAG;IACV,GAAGA,SAAS;IACZ,GAAGM;EACL,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EACrCP,SAAS,GAAG;IAAE,GAAGb;EAAkB,CAAC;AACtC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMqB,kBAAkB,GAAGA,CAAA,MAAqB;EACrD,GAAGR;AACL,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["DEFAULT_ENDPOINTS","urlMetadata","conversation","imageUpload","bot","uploadFcmToken","stickerCategories","stickersByCategory","stickerHistory","messagesResources","messages","contacts","groupJoinLink","endpoints","getApiEndpoint","key","setApiEndpoint","value","setAllApiEndpoints","newEndpoints","resetApiEndpoints","getAllApiEndpoints"],"sourceRoot":"../../../src","sources":["config/api-endpoints.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmBA,MAAMA,iBAA+B,GAAG;EACtCC,WAAW,EAAE,qCAAqC;EAClDC,YAAY,EAAE,oCAAoC;EAClDC,WAAW,EAAE,2CAA2C;EACxDC,GAAG,EAAE,2BAA2B;EAChCC,cAAc,EAAE,sCAAsC;EACtDC,iBAAiB,EAAE,yCAAyC;EAC5DC,kBAAkB,EAAE,yCAAyC;EAC7DC,cAAc,EAAE,uCAAuC;EACvDC,iBAAiB,EAAE,yCAAyC;EAC5DC,QAAQ,EAAE,+BAA+B;EACzCC,QAAQ,EAAE,+BAA+B;EACzCC,aAAa,EAAE;AACjB,CAAC;AAED,IAAIC,SAAuB,GAAG;EAAE,GAAGb;AAAkB,CAAC;;AAEtD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMc,cAAc,GACzBC,GAAM,IACc;EACpB,OAAOF,SAAS,CAACE,GAAG,CAAC;AACvB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,cAAc,GAAGA,CAC5BD,GAAM,EACNE,KAAsB,KACnB;EACHJ,SAAS,CAACE,GAAG,CAAC,GAAGE,KAAK;AACxB,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,MAAMC,kBAAkB,GAAIC,YAAmC,IAAK;EACzEN,SAAS,GAAG;IACV,GAAGA,SAAS;IACZ,GAAGM;EACL,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;EACrCP,SAAS,GAAG;IAAE,GAAGb;EAAkB,CAAC;AACtC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMqB,kBAAkB,GAAGA,CAAA,MAAqB;EACrD,GAAGR;AACL,CAAC,CAAC","ignoreList":[]}
@@ -8,8 +8,10 @@
8
8
  * from the same base URL configuration.
9
9
  */
10
10
 
11
+ import { DChatProject } from "../types/chat.js";
11
12
  let config = {
12
- apiBaseUrl: ''
13
+ apiBaseUrl: '',
14
+ platform: DChatProject.BIZ
13
15
  };
14
16
 
15
17
  /**
@@ -37,10 +39,30 @@ export const getBaseUrl = () => {
37
39
  */
38
40
  export const resetBaseUrl = () => {
39
41
  config = {
40
- apiBaseUrl: ''
42
+ apiBaseUrl: '',
43
+ platform: DChatProject.BIZ
41
44
  };
42
45
  };
43
46
 
47
+ /**
48
+ * Initialize which app (project) the library is running in.
49
+ * This should be called during app startup, e.g. via initChatSdk().
50
+ * Components that render app-specific assets (e.g. bot badge) read this
51
+ * instead of requiring every call site to pass it down as a prop.
52
+ *
53
+ * @param platform - DChatProject.BIZ (default) or DChatProject.CUS
54
+ */
55
+ export const initPlatform = platform => {
56
+ config.platform = platform;
57
+ };
58
+
59
+ /**
60
+ * Get the configured platform (DChatProject.BIZ by default)
61
+ */
62
+ export const getPlatform = () => {
63
+ return config.platform;
64
+ };
65
+
44
66
  /**
45
67
  * Check if base URL is configured
46
68
  */
@@ -1 +1 @@
1
- {"version":3,"names":["config","apiBaseUrl","initBaseUrl","__DEV__","console","warn","getBaseUrl","resetBaseUrl","isBaseUrlConfigured"],"sourceRoot":"../../../src","sources":["config/configuration.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,IAAIA,MAAiB,GAAG;EACtBC,UAAU,EAAE;AACd,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAID,UAAkB,IAAW;EACvD,IAAI,CAACA,UAAU,EAAE;IACf,IAAIE,OAAO,EACTC,OAAO,CAACC,IAAI,CAAC,oDAAoD,CAAC;EACtE;EACAL,MAAM,CAACC,UAAU,GAAGA,UAAU;AAChC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMK,UAAU,GAAGA,CAAA,KAAc;EACtC,OAAON,MAAM,CAACC,UAAU;AAC1B,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMM,YAAY,GAAGA,CAAA,KAAY;EACtCP,MAAM,GAAG;IAAEC,UAAU,EAAE;EAAG,CAAC;AAC7B,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMO,mBAAmB,GAAGA,CAAA,KAAe;EAChD,OAAO,CAAC,CAACR,MAAM,CAACC,UAAU;AAC5B,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["DChatProject","config","apiBaseUrl","platform","BIZ","initBaseUrl","__DEV__","console","warn","getBaseUrl","resetBaseUrl","initPlatform","getPlatform","isBaseUrlConfigured"],"sourceRoot":"../../../src","sources":["config/configuration.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,YAAY,QAAQ,kBAAe;AAO5C,IAAIC,MAAiB,GAAG;EACtBC,UAAU,EAAE,EAAE;EACdC,QAAQ,EAAEH,YAAY,CAACI;AACzB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAIH,UAAkB,IAAW;EACvD,IAAI,CAACA,UAAU,EAAE;IACf,IAAII,OAAO,EACTC,OAAO,CAACC,IAAI,CAAC,oDAAoD,CAAC;EACtE;EACAP,MAAM,CAACC,UAAU,GAAGA,UAAU;AAChC,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMO,UAAU,GAAGA,CAAA,KAAc;EACtC,OAAOR,MAAM,CAACC,UAAU;AAC1B,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMQ,YAAY,GAAGA,CAAA,KAAY;EACtCT,MAAM,GAAG;IAAEC,UAAU,EAAE,EAAE;IAAEC,QAAQ,EAAEH,YAAY,CAACI;EAAI,CAAC;AACzD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMO,YAAY,GAAIR,QAAsB,IAAW;EAC5DF,MAAM,CAACE,QAAQ,GAAGA,QAAQ;AAC5B,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMS,WAAW,GAAGA,CAAA,KAAoB;EAC7C,OAAOX,MAAM,CAACE,QAAQ;AACxB,CAAC;;AAED;AACA;AACA;AACA,OAAO,MAAMU,mBAAmB,GAAGA,CAAA,KAAe;EAChD,OAAO,CAAC,CAACZ,MAAM,CAACC,UAAU;AAC5B,CAAC","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import OpenIMSDK from '@droppii/openim-rn-client-sdk';
4
- import { initBaseUrl } from "../config/configuration.js";
4
+ import { initBaseUrl, initPlatform } from "../config/configuration.js";
5
5
  import { useUserListener } from "./useUserListener.js";
6
6
  import { useChatListener } from "./useChatListener.js";
7
7
  import { useBackgroundStatusSync } from "./notification/useBackgroundStatusSync.js";
@@ -14,6 +14,7 @@ export * from "./notification/index.js";
14
14
  export const initChatSdk = options => {
15
15
  const {
16
16
  apiBaseUrl,
17
+ platform,
17
18
  ...sdkOptions
18
19
  } = options;
19
20
 
@@ -24,6 +25,11 @@ export const initChatSdk = options => {
24
25
  if (apiBaseUrl) {
25
26
  initBaseUrl(apiBaseUrl);
26
27
  }
28
+
29
+ // Initialize which app (biz/mall) the library is running in
30
+ if (platform) {
31
+ initPlatform(platform);
32
+ }
27
33
  };
28
34
  export const useChatSdk = () => {
29
35
  useUserListener();
@@ -1 +1 @@
1
- {"version":3,"names":["OpenIMSDK","initBaseUrl","useUserListener","useChatListener","useBackgroundStatusSync","useNetworkStatusSync","initChatSdk","options","apiBaseUrl","sdkOptions","initSDK","useChatSdk"],"sourceRoot":"../../../src","sources":["core/index.ts"],"mappings":";;AAAA,OAAOA,SAAS,MAAM,+BAA+B;AAErD,SAASC,WAAW,QAAQ,4BAAyB;AACrD,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,uBAAuB,QAAQ,2CAAwC;AAChF,SAASC,oBAAoB,QAAQ,2BAAwB;AAE7D,cAAc,yBAAgB;AAU9B;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAIC,OAA2B,IAAK;EAC1D,MAAM;IAAEC,UAAU;IAAE,GAAGC;EAAW,CAAC,GAAGF,OAAO;;EAE7C;EACAP,SAAS,CAACU,OAAO,CAACD,UAAU,CAAC;;EAE7B;EACA,IAAID,UAAU,EAAE;IACdP,WAAW,CAACO,UAAU,CAAC;EACzB;AACF,CAAC;AAED,OAAO,MAAMG,UAAU,GAAGA,CAAA,KAAM;EAC9BT,eAAe,CAAC,CAAC;EACjBC,eAAe,CAAC,CAAC;EACjBC,uBAAuB,CAAC,CAAC;EACzBC,oBAAoB,CAAC,CAAC;AACxB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["OpenIMSDK","initBaseUrl","initPlatform","useUserListener","useChatListener","useBackgroundStatusSync","useNetworkStatusSync","initChatSdk","options","apiBaseUrl","platform","sdkOptions","initSDK","useChatSdk"],"sourceRoot":"../../../src","sources":["core/index.ts"],"mappings":";;AAAA,OAAOA,SAAS,MAAM,+BAA+B;AAErD,SAASC,WAAW,EAAEC,YAAY,QAAQ,4BAAyB;AAEnE,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,eAAe,QAAQ,sBAAmB;AACnD,SAASC,uBAAuB,QAAQ,2CAAwC;AAChF,SAASC,oBAAoB,QAAQ,2BAAwB;AAE7D,cAAc,yBAAgB;AAgB9B;AACA;AACA;AACA;AACA,OAAO,MAAMC,WAAW,GAAIC,OAA2B,IAAK;EAC1D,MAAM;IAAEC,UAAU;IAAEC,QAAQ;IAAE,GAAGC;EAAW,CAAC,GAAGH,OAAO;;EAEvD;EACAR,SAAS,CAACY,OAAO,CAACD,UAAU,CAAC;;EAE7B;EACA,IAAIF,UAAU,EAAE;IACdR,WAAW,CAACQ,UAAU,CAAC;EACzB;;EAEA;EACA,IAAIC,QAAQ,EAAE;IACZR,YAAY,CAACQ,QAAQ,CAAC;EACxB;AACF,CAAC;AAED,OAAO,MAAMG,UAAU,GAAGA,CAAA,KAAM;EAC9BV,eAAe,CAAC,CAAC;EACjBC,eAAe,CAAC,CAAC;EACjBC,uBAAuB,CAAC,CAAC;EACzBC,oBAAoB,CAAC,CAAC;AACxB,CAAC","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { useInfiniteQuery } from '@tanstack/react-query';
4
4
  import { messageQueryKeys } from "../query-keys.js";
5
- import { apiInstance } from "../../services/apis.js";
5
+ import { apiInstance, unwrapEnvelope } from "../../services/apis.js";
6
6
  import { ENDPOINTS } from "../../services/endpoints.js";
7
7
  import { MessageType } from '@droppii/openim-rn-client-sdk';
8
8
  import { PAGE_SIZE } from "../../constants/index.js";
@@ -32,21 +32,22 @@ export const useSearchMessage = ({
32
32
  searchTerm: query.trim(),
33
33
  conversationId
34
34
  };
35
- console.log('params', params);
36
35
  const res = await apiInstance?.post(ENDPOINTS.chatService.searchMessages(), params);
37
- return res?.data;
36
+ return unwrapEnvelope(res) ?? [];
38
37
  },
39
- getNextPageParam: lastPage => {
40
- const currentPage = lastPage?.pageable?.pageNumber || 1;
41
- const dataLength = lastPage?.data?.length || 0;
42
- return dataLength < pageSize ? undefined : currentPage + 1;
38
+ getNextPageParam: (lastPage, allPages) => {
39
+ // unwrapEnvelope always resolves a page down to the bare item array, so there's
40
+ // no server-echoed pageable metadata here — derive the next page from how many
41
+ // pages we've already fetched instead of `lastPage.pageable.pageNumber`.
42
+ const dataLength = lastPage?.length || 0;
43
+ return dataLength < pageSize ? undefined : allPages.length + 1;
43
44
  },
44
45
  initialPageParam: 1,
45
46
  enabled: enabled && !!query && !!applicationType
46
47
  });
47
48
  const baseItems = useMemo(() => {
48
49
  if (!query.trim() || !data) return [];
49
- return data?.pages?.flatMap?.(page => page?.data)?.filter(item => item !== undefined) || [];
50
+ return data?.pages?.flat?.() || [];
50
51
  }, [data, query]);
51
52
  const [dataFlatten, setDataFlatten] = useState(baseItems);
52
53
 
@@ -1 +1 @@
1
- {"version":3,"names":["useInfiniteQuery","messageQueryKeys","apiInstance","ENDPOINTS","MessageType","PAGE_SIZE","useEffect","useMemo","useRef","useState","DeviceEventEmitter","ChatEvent","useSearchMessage","query","conversationId","applicationType","pageSize","enabled","data","rest","queryKey","search","trim","queryFn","pageParam","params","contentTypes","TextMessage","UrlTextMessage","QuoteMessage","AtTextMessage","CustomMessage","page","searchTerm","console","log","res","post","chatService","searchMessages","getNextPageParam","lastPage","currentPage","pageable","pageNumber","dataLength","length","undefined","initialPageParam","baseItems","pages","flatMap","filter","item","dataFlatten","setDataFlatten","prevBaseRef","current","sub","addListener","MessageRevoked","clientMsgID","prev","idx","findIndex","chatLog","next","contentType","RevokeMessage","remove"],"sourceRoot":"../../../../src","sources":["hooks/message/useSearchMessage.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useInfiniteQuery","messageQueryKeys","apiInstance","unwrapEnvelope","ENDPOINTS","MessageType","PAGE_SIZE","useEffect","useMemo","useRef","useState","DeviceEventEmitter","ChatEvent","useSearchMessage","query","conversationId","applicationType","pageSize","enabled","data","rest","queryKey","search","trim","queryFn","pageParam","params","contentTypes","TextMessage","UrlTextMessage","QuoteMessage","AtTextMessage","CustomMessage","page","searchTerm","res","post","chatService","searchMessages","getNextPageParam","lastPage","allPages","dataLength","length","undefined","initialPageParam","baseItems","pages","flat","dataFlatten","setDataFlatten","prevBaseRef","current","sub","addListener","MessageRevoked","clientMsgID","prev","idx","findIndex","item","chatLog","next","contentType","RevokeMessage","remove"],"sourceRoot":"../../../../src","sources":["hooks/message/useSearchMessage.ts"],"mappings":"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","ignoreList":[]}
@@ -7,6 +7,7 @@ declare const Images: {
7
7
  ICON_WORD: any;
8
8
  NOTIFICATION_WARNING: any;
9
9
  TAG_BOT: any;
10
+ TAG_BOT_MALL: any;
10
11
  TAG_MALL: any;
11
12
  ICON_DROPPII: any;
12
13
  BTN_RESEND: any;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/assets/images/index.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;CAcX,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/assets/images/index.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;CAeX,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/Avatar/Avatar.utils.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,QAAQ;;;;;;CAMJ,CAAC;AAEX,QAAA,MAAM,QAAQ;;;;;;CAMJ,CAAC;AAEX,eAAO,MAAM,WAAW,GAAI,WAAW,MAAM,KAAG,MAqB/C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,QAW7C,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"Avatar.utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/Avatar/Avatar.utils.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,QAAQ;;;;;;CAMJ,CAAC;AAEX,QAAA,MAAM,QAAQ;;;;;;CAMJ,CAAC;AAEX,eAAO,MAAM,WAAW,GAAI,WAAW,MAAM,KAAG,MAqB/C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,QAgB7C,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC"}
@@ -5,8 +5,10 @@
5
5
  * different protocols (axios, native HTTP), but they should all derive
6
6
  * from the same base URL configuration.
7
7
  */
8
+ import { DChatProject } from '../types/chat';
8
9
  export interface AppConfig {
9
10
  apiBaseUrl: string;
11
+ platform: DChatProject;
10
12
  }
11
13
  /**
12
14
  * Initialize the base URL configuration
@@ -23,6 +25,19 @@ export declare const getBaseUrl: () => string;
23
25
  * Reset configuration (useful for testing)
24
26
  */
25
27
  export declare const resetBaseUrl: () => void;
28
+ /**
29
+ * Initialize which app (project) the library is running in.
30
+ * This should be called during app startup, e.g. via initChatSdk().
31
+ * Components that render app-specific assets (e.g. bot badge) read this
32
+ * instead of requiring every call site to pass it down as a prop.
33
+ *
34
+ * @param platform - DChatProject.BIZ (default) or DChatProject.CUS
35
+ */
36
+ export declare const initPlatform: (platform: DChatProject) => void;
37
+ /**
38
+ * Get the configured platform (DChatProject.BIZ by default)
39
+ */
40
+ export declare const getPlatform: () => DChatProject;
26
41
  /**
27
42
  * Check if base URL is configured
28
43
  */
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../../src/config/configuration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,YAAY,MAAM,KAAG,IAMhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,QAAO,MAE7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,QAAO,IAE/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAO,OAEtC,CAAC"}
1
+ {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../../src/config/configuration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,WAAW,SAAS;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAOD;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,YAAY,MAAM,KAAG,IAMhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,QAAO,MAE7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,QAAO,IAE/B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,YAAY,KAAG,IAErD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,QAAO,YAE9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAO,OAEtC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { InitOptions } from '@droppii/openim-rn-client-sdk';
2
+ import type { DChatProject } from '../types/chat';
2
3
  export * from './notification';
3
4
  export interface InitChatSdkOptions extends InitOptions {
4
5
  /**
@@ -6,6 +7,12 @@ export interface InitChatSdkOptions extends InitOptions {
6
7
  * Will be set as the centralized configuration
7
8
  */
8
9
  apiBaseUrl?: string;
10
+ /**
11
+ * Which app the library is running in — DChatProject.BIZ (default) or
12
+ * DChatProject.CUS. Drives app-specific assets (e.g. the bot avatar
13
+ * badge) without requiring every consumer to pass it down manually.
14
+ */
15
+ platform?: DChatProject;
9
16
  }
10
17
  /**
11
18
  * Initialize the chat SDK with optional base URL
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAOjE,cAAc,gBAAgB,CAAC;AAE/B,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,kBAAkB,SAUtD,CAAC;AAEF,eAAO,MAAM,UAAU,YAKtB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAMlD,cAAc,gBAAgB,CAAC;AAE/B,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,kBAAkB,SAetD,CAAC;AAEF,eAAO,MAAM,UAAU,YAKtB,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import type { DChatApplicationType, ISearchMessageItem } from '../../types/chat';
2
- import type { BaseResponse } from '../../types/auth';
3
2
  interface IUseSearchMessageProps {
4
3
  query: string;
5
4
  conversationId?: string;
@@ -17,8 +16,8 @@ export declare const useSearchMessage: ({ query, conversationId, applicationType
17
16
  isSuccess: false;
18
17
  isPlaceholderData: false;
19
18
  status: "error";
20
- fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
21
- fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
19
+ fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
20
+ fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
22
21
  hasNextPage: boolean;
23
22
  hasPreviousPage: boolean;
24
23
  isFetchNextPageError: boolean;
@@ -38,9 +37,9 @@ export declare const useSearchMessage: ({ query, conversationId, applicationType
38
37
  isRefetching: boolean;
39
38
  isStale: boolean;
40
39
  isEnabled: boolean;
41
- refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
40
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
42
41
  fetchStatus: import("@tanstack/query-core").FetchStatus;
43
- promise: Promise<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>>;
42
+ promise: Promise<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>>;
44
43
  dataFlatten: ISearchMessageItem[];
45
44
  } | {
46
45
  error: null;
@@ -54,8 +53,8 @@ export declare const useSearchMessage: ({ query, conversationId, applicationType
54
53
  isSuccess: true;
55
54
  isPlaceholderData: false;
56
55
  status: "success";
57
- fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
58
- fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
56
+ fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
57
+ fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
59
58
  hasNextPage: boolean;
60
59
  hasPreviousPage: boolean;
61
60
  isFetchingNextPage: boolean;
@@ -73,9 +72,9 @@ export declare const useSearchMessage: ({ query, conversationId, applicationType
73
72
  isRefetching: boolean;
74
73
  isStale: boolean;
75
74
  isEnabled: boolean;
76
- refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
75
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
77
76
  fetchStatus: import("@tanstack/query-core").FetchStatus;
78
- promise: Promise<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>>;
77
+ promise: Promise<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>>;
79
78
  dataFlatten: ISearchMessageItem[];
80
79
  } | {
81
80
  error: Error;
@@ -89,8 +88,8 @@ export declare const useSearchMessage: ({ query, conversationId, applicationType
89
88
  isSuccess: false;
90
89
  isPlaceholderData: false;
91
90
  status: "error";
92
- fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
93
- fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
91
+ fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
92
+ fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
94
93
  hasNextPage: boolean;
95
94
  hasPreviousPage: boolean;
96
95
  isFetchingNextPage: boolean;
@@ -108,9 +107,9 @@ export declare const useSearchMessage: ({ query, conversationId, applicationType
108
107
  isRefetching: boolean;
109
108
  isStale: boolean;
110
109
  isEnabled: boolean;
111
- refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
110
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
112
111
  fetchStatus: import("@tanstack/query-core").FetchStatus;
113
- promise: Promise<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>>;
112
+ promise: Promise<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>>;
114
113
  dataFlatten: ISearchMessageItem[];
115
114
  } | {
116
115
  error: null;
@@ -124,8 +123,8 @@ export declare const useSearchMessage: ({ query, conversationId, applicationType
124
123
  isSuccess: false;
125
124
  isPlaceholderData: false;
126
125
  status: "pending";
127
- fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
128
- fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
126
+ fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
127
+ fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
129
128
  hasNextPage: boolean;
130
129
  hasPreviousPage: boolean;
131
130
  isFetchingNextPage: boolean;
@@ -143,9 +142,9 @@ export declare const useSearchMessage: ({ query, conversationId, applicationType
143
142
  isRefetching: boolean;
144
143
  isStale: boolean;
145
144
  isEnabled: boolean;
146
- refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
145
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
147
146
  fetchStatus: import("@tanstack/query-core").FetchStatus;
148
- promise: Promise<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>>;
147
+ promise: Promise<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>>;
149
148
  dataFlatten: ISearchMessageItem[];
150
149
  } | {
151
150
  error: null;
@@ -158,8 +157,8 @@ export declare const useSearchMessage: ({ query, conversationId, applicationType
158
157
  isSuccess: false;
159
158
  isPlaceholderData: false;
160
159
  status: "pending";
161
- fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
162
- fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
160
+ fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
161
+ fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
163
162
  hasNextPage: boolean;
164
163
  hasPreviousPage: boolean;
165
164
  isFetchingNextPage: boolean;
@@ -178,9 +177,9 @@ export declare const useSearchMessage: ({ query, conversationId, applicationType
178
177
  isRefetching: boolean;
179
178
  isStale: boolean;
180
179
  isEnabled: boolean;
181
- refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
180
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
182
181
  fetchStatus: import("@tanstack/query-core").FetchStatus;
183
- promise: Promise<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>>;
182
+ promise: Promise<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>>;
184
183
  dataFlatten: ISearchMessageItem[];
185
184
  } | {
186
185
  isError: false;
@@ -194,8 +193,8 @@ export declare const useSearchMessage: ({ query, conversationId, applicationType
194
193
  isFetchNextPageError: false;
195
194
  isFetchPreviousPageError: false;
196
195
  status: "success";
197
- fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
198
- fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
196
+ fetchNextPage: (options?: import("@tanstack/query-core").FetchNextPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
197
+ fetchPreviousPage: (options?: import("@tanstack/query-core").FetchPreviousPageOptions) => Promise<import("@tanstack/query-core").InfiniteQueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
199
198
  hasNextPage: boolean;
200
199
  hasPreviousPage: boolean;
201
200
  isFetchingNextPage: boolean;
@@ -213,9 +212,9 @@ export declare const useSearchMessage: ({ query, conversationId, applicationType
213
212
  isRefetching: boolean;
214
213
  isStale: boolean;
215
214
  isEnabled: boolean;
216
- refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>, Error>>;
215
+ refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>, Error>>;
217
216
  fetchStatus: import("@tanstack/query-core").FetchStatus;
218
- promise: Promise<import("@tanstack/query-core").InfiniteData<BaseResponse<ISearchMessageItem[]>, unknown>>;
217
+ promise: Promise<import("@tanstack/query-core").InfiniteData<ISearchMessageItem[], unknown>>;
219
218
  dataFlatten: ISearchMessageItem[];
220
219
  };
221
220
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"useSearchMessage.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/message/useSearchMessage.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAMrD,UAAU,sBAAsB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AACD,eAAO,MAAM,gBAAgB,GAAI,gEAM9B,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFxB,CAAC"}
1
+ {"version":3,"file":"useSearchMessage.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/message/useSearchMessage.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;AAO1B,UAAU,sBAAsB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,oBAAoB,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AACD,eAAO,MAAM,gBAAgB,GAAI,gEAM9B,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+ExB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@droppii-org/chat-mobile",
3
- "version": "0.2.96",
3
+ "version": "0.2.98",
4
4
  "description": "Droppii chat mobile",
5
5
  "keywords": [
6
6
  "react-native",
@@ -7,6 +7,7 @@ const Images = {
7
7
  ICON_WORD: require('./icon_word.png'),
8
8
  NOTIFICATION_WARNING: require('./notification-warning.png'),
9
9
  TAG_BOT: require('./tag_bot.png'),
10
+ TAG_BOT_MALL: require('./tag_bot_mall.png'),
10
11
  TAG_MALL: require('./tag_mall.png'),
11
12
  ICON_DROPPII: require('./icon_droppii.png'),
12
13
  BTN_RESEND: require('./btn_resend.png'),
@@ -39,14 +39,19 @@ export const getInitials = (fullName?: string): string => {
39
39
 
40
40
  export const getBadgeImage = (variant?: string) => {
41
41
  const Images = require('../../assets/images').default;
42
+ const { getPlatform } = require('../../config/configuration');
43
+ const { DChatProject } = require('../../types/chat');
44
+ const botImage =
45
+ getPlatform() === DChatProject.CUS ? Images.TAG_BOT_MALL : Images.TAG_BOT;
46
+
42
47
  switch (variant) {
43
48
  case 'mall':
44
49
  return Images.TAG_MALL;
45
50
  case 'bot':
46
51
  case 'support':
47
- return Images.TAG_BOT;
52
+ return botImage;
48
53
  default:
49
- return Images.TAG_BOT;
54
+ return botImage;
50
55
  }
51
56
  };
52
57
 
@@ -30,7 +30,7 @@ const DEFAULT_ENDPOINTS: ApiEndpoints = {
30
30
  urlMetadata: '/chat-service/v1/utils/url-metadata',
31
31
  conversation: '/chat-service/v1/app/conversations',
32
32
  imageUpload: '/uploader-service/v1/uploader/permanently',
33
- bot: '/chat-service/v1/app/bots/',
33
+ bot: '/chat-service/v1/app/bots',
34
34
  uploadFcmToken: '/chat-service/third/fcm_update_token',
35
35
  stickerCategories: '/chat-service/v1/app/sticker-categories',
36
36
  stickersByCategory: '/chat-service/v1/app/sticker-categories',
@@ -6,12 +6,16 @@
6
6
  * from the same base URL configuration.
7
7
  */
8
8
 
9
+ import { DChatProject } from '../types/chat';
10
+
9
11
  export interface AppConfig {
10
12
  apiBaseUrl: string;
13
+ platform: DChatProject;
11
14
  }
12
15
 
13
16
  let config: AppConfig = {
14
17
  apiBaseUrl: '',
18
+ platform: DChatProject.BIZ,
15
19
  };
16
20
 
17
21
  /**
@@ -39,7 +43,26 @@ export const getBaseUrl = (): string => {
39
43
  * Reset configuration (useful for testing)
40
44
  */
41
45
  export const resetBaseUrl = (): void => {
42
- config = { apiBaseUrl: '' };
46
+ config = { apiBaseUrl: '', platform: DChatProject.BIZ };
47
+ };
48
+
49
+ /**
50
+ * Initialize which app (project) the library is running in.
51
+ * This should be called during app startup, e.g. via initChatSdk().
52
+ * Components that render app-specific assets (e.g. bot badge) read this
53
+ * instead of requiring every call site to pass it down as a prop.
54
+ *
55
+ * @param platform - DChatProject.BIZ (default) or DChatProject.CUS
56
+ */
57
+ export const initPlatform = (platform: DChatProject): void => {
58
+ config.platform = platform;
59
+ };
60
+
61
+ /**
62
+ * Get the configured platform (DChatProject.BIZ by default)
63
+ */
64
+ export const getPlatform = (): DChatProject => {
65
+ return config.platform;
43
66
  };
44
67
 
45
68
  /**
package/src/core/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import OpenIMSDK from '@droppii/openim-rn-client-sdk';
2
2
  import type { InitOptions } from '@droppii/openim-rn-client-sdk';
3
- import { initBaseUrl } from '../config/configuration';
3
+ import { initBaseUrl, initPlatform } from '../config/configuration';
4
+ import type { DChatProject } from '../types/chat';
4
5
  import { useUserListener } from './useUserListener';
5
6
  import { useChatListener } from './useChatListener';
6
7
  import { useBackgroundStatusSync } from './notification/useBackgroundStatusSync';
@@ -14,6 +15,12 @@ export interface InitChatSdkOptions extends InitOptions {
14
15
  * Will be set as the centralized configuration
15
16
  */
16
17
  apiBaseUrl?: string;
18
+ /**
19
+ * Which app the library is running in — DChatProject.BIZ (default) or
20
+ * DChatProject.CUS. Drives app-specific assets (e.g. the bot avatar
21
+ * badge) without requiring every consumer to pass it down manually.
22
+ */
23
+ platform?: DChatProject;
17
24
  }
18
25
 
19
26
  /**
@@ -21,7 +28,7 @@ export interface InitChatSdkOptions extends InitOptions {
21
28
  * @param options - SDK initialization options + apiBaseUrl for centralized config
22
29
  */
23
30
  export const initChatSdk = (options: InitChatSdkOptions) => {
24
- const { apiBaseUrl, ...sdkOptions } = options;
31
+ const { apiBaseUrl, platform, ...sdkOptions } = options;
25
32
 
26
33
  // Initialize OpenIM SDK
27
34
  OpenIMSDK.initSDK(sdkOptions);
@@ -30,6 +37,11 @@ export const initChatSdk = (options: InitChatSdkOptions) => {
30
37
  if (apiBaseUrl) {
31
38
  initBaseUrl(apiBaseUrl);
32
39
  }
40
+
41
+ // Initialize which app (biz/mall) the library is running in
42
+ if (platform) {
43
+ initPlatform(platform);
44
+ }
33
45
  };
34
46
 
35
47
  export const useChatSdk = () => {
@@ -1,6 +1,6 @@
1
1
  import { useInfiniteQuery } from '@tanstack/react-query';
2
2
  import { messageQueryKeys } from '../query-keys';
3
- import { apiInstance } from '../../services/apis';
3
+ import { apiInstance, unwrapEnvelope } from '../../services/apis';
4
4
  import { ENDPOINTS } from '../../services/endpoints';
5
5
  import { MessageType } from '@droppii/openim-rn-client-sdk';
6
6
  import type {
@@ -45,17 +45,18 @@ export const useSearchMessage = ({
45
45
  searchTerm: query.trim(),
46
46
  conversationId,
47
47
  };
48
- console.log('params', params);
49
48
  const res = await apiInstance?.post<BaseResponse<ISearchMessageItem[]>>(
50
49
  ENDPOINTS.chatService.searchMessages(),
51
50
  params
52
51
  );
53
- return res?.data;
52
+ return unwrapEnvelope<ISearchMessageItem[]>(res) ?? [];
54
53
  },
55
- getNextPageParam: (lastPage) => {
56
- const currentPage = lastPage?.pageable?.pageNumber || 1;
57
- const dataLength = lastPage?.data?.length || 0;
58
- return dataLength < pageSize ? undefined : currentPage + 1;
54
+ getNextPageParam: (lastPage, allPages) => {
55
+ // unwrapEnvelope always resolves a page down to the bare item array, so there's
56
+ // no server-echoed pageable metadata here — derive the next page from how many
57
+ // pages we've already fetched instead of `lastPage.pageable.pageNumber`.
58
+ const dataLength = lastPage?.length || 0;
59
+ return dataLength < pageSize ? undefined : allPages.length + 1;
59
60
  },
60
61
  initialPageParam: 1,
61
62
  enabled: enabled && !!query && !!applicationType,
@@ -63,11 +64,7 @@ export const useSearchMessage = ({
63
64
 
64
65
  const baseItems = useMemo<ISearchMessageItem[]>(() => {
65
66
  if (!query.trim() || !data) return [];
66
- return (
67
- data?.pages
68
- ?.flatMap?.((page) => page?.data)
69
- ?.filter((item) => item !== undefined) || []
70
- );
67
+ return data?.pages?.flat?.() || [];
71
68
  }, [data, query]);
72
69
 
73
70
  const [dataFlatten, setDataFlatten] =