@droppii-org/chat-mobile 0.2.39 → 0.2.40

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 (32) hide show
  1. package/lib/module/screens/chat-detail/PinnedMessageBar.js +4 -1
  2. package/lib/module/screens/chat-detail/PinnedMessageBar.js.map +1 -1
  3. package/lib/module/screens/chat-detail/PinnedMessagesSheet.js +80 -110
  4. package/lib/module/screens/chat-detail/PinnedMessagesSheet.js.map +1 -1
  5. package/lib/module/screens/chat-detail/PinnedMessagesSheetBackup.js +179 -0
  6. package/lib/module/screens/chat-detail/PinnedMessagesSheetBackup.js.map +1 -0
  7. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +18 -6
  8. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
  9. package/lib/module/translation/resources/i18n.js +3 -2
  10. package/lib/module/translation/resources/i18n.js.map +1 -1
  11. package/lib/module/utils/UIUtils.js +4 -2
  12. package/lib/module/utils/UIUtils.js.map +1 -1
  13. package/lib/typescript/src/screens/chat-detail/PinnedMessageBar.d.ts +1 -1
  14. package/lib/typescript/src/screens/chat-detail/PinnedMessageBar.d.ts.map +1 -1
  15. package/lib/typescript/src/screens/chat-detail/PinnedMessagesSheet.d.ts +1 -1
  16. package/lib/typescript/src/screens/chat-detail/PinnedMessagesSheet.d.ts.map +1 -1
  17. package/lib/typescript/src/screens/chat-detail/PinnedMessagesSheetBackup.d.ts +9 -0
  18. package/lib/typescript/src/screens/chat-detail/PinnedMessagesSheetBackup.d.ts.map +1 -0
  19. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts +2 -1
  20. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
  21. package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
  22. package/lib/typescript/src/types/chat.d.ts +1 -0
  23. package/lib/typescript/src/types/chat.d.ts.map +1 -1
  24. package/lib/typescript/src/utils/UIUtils.d.ts.map +1 -1
  25. package/package.json +1 -1
  26. package/src/screens/chat-detail/PinnedMessageBar.tsx +17 -8
  27. package/src/screens/chat-detail/PinnedMessagesSheet.tsx +118 -153
  28. package/src/screens/chat-detail/PinnedMessagesSheetBackup.tsx +253 -0
  29. package/src/screens/chat-detail/legend/LegendChatMessage.tsx +26 -13
  30. package/src/translation/resources/i18n.ts +4 -2
  31. package/src/types/chat.ts +1 -1
  32. package/src/utils/UIUtils.ts +3 -1
@@ -42,13 +42,14 @@ const i18nKey = {
42
42
  'chat:pinned_image_subtitle': 'Hình ảnh từ {{sender}}',
43
43
  'chat:pinned_video_subtitle': 'Video từ {{sender}}',
44
44
  'chat:pinned_file_subtitle': 'Tài liệu từ {{sender}}',
45
- 'chat:pinned_link_subtitle': 'Liên kết từ {{sender}}',
45
+ 'chat:pinned_link_subtitle': 'Từ {{sender}}',
46
46
  'chat:pin_limit_title': 'Không thể ghim thêm tin nhắn',
47
47
  'chat:pin_limit_desc': 'Chỉ được ghim tối đa 5 tin nhắn. Vui lòng bỏ ghim một tin nhắn hiện có trước khi ghim tin nhắn mới.',
48
48
  'chat:pin_limit_primary': 'Đã hiểu',
49
49
  'chat:pinned_messages_title': 'Tin nhắn đã ghim',
50
- 'chat:pinned_messages_hint': 'Nhấn giữ tin nhắn để chọn "Bỏ Ghim" hoặc "Xem tin nhắn gốc"',
50
+ 'chat:pinned_messages_hint': 'Nhấn vào tin nhắn để xem tin nhắn gốc, nhấn vào biểu tượng để bỏ ghim',
51
51
  'chat:view_original_message': 'Xem tin nhắn gốc',
52
+ 'chat:scroll_to_message_todo': 'Tính năng di chuyển đến tin nhắn gốc sẽ sớm được cập nhật',
52
53
  'msg_type_image': '[Hình ảnh]',
53
54
  'msg_type_voice': '[Tin nhắn thoại]',
54
55
  'msg_type_video': '[Video]',
@@ -1 +1 @@
1
- {"version":3,"names":["i18nKey","vi"],"sourceRoot":"../../../../src","sources":["translation/resources/i18n.ts"],"mappings":";;AAAA,MAAMA,OAA+B,GAAG;EACtC,0BAA0B,EAAE,gBAAgB;EAC5C,2BAA2B,EAAE,YAAY;EACzC,qBAAqB,EACnB,4EAA4E;EAC9E,qBAAqB,EAAE,kCAAkC;EACzD,uBAAuB,EAAE,oBAAoB;EAC7C,yBAAyB,EAAE,iBAAiB;EAC5C,+BAA+B,EAAE,6BAA6B;EAC9D,uBAAuB,EAAE,oCAAoC;EAC7D,8BAA8B,EAAE,gCAAgC;EAChE,2BAA2B,EAAE,kBAAkB;EAC/C,uBAAuB,EAAE,sBAAsB;EAC/C,oBAAoB,EAAE,eAAe;EACrC,sBAAsB,EACpB,sFAAsF;EACxF,sBAAsB,EACpB,gFAAgF;EAClF,iBAAiB,EAAE,YAAY;EAC/B,0BAA0B,EAAE,gCAAgC;EAC5D,oBAAoB,EAAE,gCAAgC;EACtD,6BAA6B,EAAE,kCAAkC;EACjE,eAAe,EAAE,SAAS;EAC1B,gBAAgB,EAAE,YAAY;EAC9B,iBAAiB,EAAE,SAAS;EAC5B,WAAW,EAAE,KAAK;EAClB,YAAY,EAAE,SAAS;EACvB,2BAA2B,EAAE,6BAA6B;EAC1D,mBAAmB,EAAE,kBAAkB;EACvC,yBAAyB,EAAE,kBAAkB;EAC7C,qBAAqB,EAAE,0BAA0B;EACjD,mBAAmB,EAAE,mBAAmB;EACxC,wBAAwB,EAAE,6BAA6B;EACvD,2BAA2B,EAAE,8BAA8B;EAC3D,gCAAgC,EAAE,wCAAwC;EAC1E,oBAAoB,EAAE,SAAS;EAC/B,qBAAqB,EAAE,SAAS;EAChC,kBAAkB,EAAE,MAAM;EAC1B,oBAAoB,EAAE,SAAS;EAC/B,0BAA0B,EAAE,kBAAkB;EAC9C,4BAA4B,EAAE,qBAAqB;EACnD,8BAA8B,EAAE,wBAAwB;EACxD,4BAA4B,EAAE,wBAAwB;EACtD,4BAA4B,EAAE,qBAAqB;EACnD,2BAA2B,EAAE,wBAAwB;EACrD,2BAA2B,EAAE,wBAAwB;EACrD,sBAAsB,EAAE,8BAA8B;EACtD,qBAAqB,EACnB,qGAAqG;EACvG,wBAAwB,EAAE,SAAS;EACnC,4BAA4B,EAAE,kBAAkB;EAChD,2BAA2B,EACzB,6DAA6D;EAC/D,4BAA4B,EAAE,kBAAkB;EAChD,gBAAgB,EAAE,YAAY;EAC9B,gBAAgB,EAAE,kBAAkB;EACpC,gBAAgB,EAAE,SAAS;EAC3B,eAAe,EAAE,iBAAiB;EAClC,eAAe,EAAE,YAAY;EAC7B,iBAAiB,EAAE,qBAAqB;EACxC,wBAAwB,EAAE,gCAAgC;EAC1D,kBAAkB,EAAE,eAAe;EACnC,oBAAoB,EAAE,eAAe;EACrC,yBAAyB,EAAE,eAAe;EAC1C,wBAAwB,EACtB,qGAAqG;EACvG,2BAA2B,EAAE,eAAe;EAC5C,6BAA6B,EAAE,UAAU;EACzC,yBAAyB,EAAE,kBAAkB;EAC7C,2BAA2B,EAAE,kBAAkB;EAC/C,OAAO,EAAE,SAAS;EAClB,SAAS,EAAE,aAAa;EACxB,SAAS,EAAE,WAAW;EACtB,QAAQ,EAAE,UAAU;EACpB,WAAW,EAAE,UAAU;EACvB,YAAY,EAAE,cAAc;EAC5B,cAAc,EAAE,cAAc;EAC9B,oBAAoB,EAAE,cAAc;EACpC,oBAAoB,EAAE,SAAS;EAC/B,eAAe,EAAE,kBAAkB;EACnC,UAAU,EAAE,YAAY;EACxB,KAAK,EAAE;AACT,CAAC;AAED,eAAe;EACbC,EAAE,EAAED;AACN,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["i18nKey","vi"],"sourceRoot":"../../../../src","sources":["translation/resources/i18n.ts"],"mappings":";;AAAA,MAAMA,OAA+B,GAAG;EACtC,0BAA0B,EAAE,gBAAgB;EAC5C,2BAA2B,EAAE,YAAY;EACzC,qBAAqB,EACnB,4EAA4E;EAC9E,qBAAqB,EAAE,kCAAkC;EACzD,uBAAuB,EAAE,oBAAoB;EAC7C,yBAAyB,EAAE,iBAAiB;EAC5C,+BAA+B,EAAE,6BAA6B;EAC9D,uBAAuB,EAAE,oCAAoC;EAC7D,8BAA8B,EAAE,gCAAgC;EAChE,2BAA2B,EAAE,kBAAkB;EAC/C,uBAAuB,EAAE,sBAAsB;EAC/C,oBAAoB,EAAE,eAAe;EACrC,sBAAsB,EACpB,sFAAsF;EACxF,sBAAsB,EACpB,gFAAgF;EAClF,iBAAiB,EAAE,YAAY;EAC/B,0BAA0B,EAAE,gCAAgC;EAC5D,oBAAoB,EAAE,gCAAgC;EACtD,6BAA6B,EAAE,kCAAkC;EACjE,eAAe,EAAE,SAAS;EAC1B,gBAAgB,EAAE,YAAY;EAC9B,iBAAiB,EAAE,SAAS;EAC5B,WAAW,EAAE,KAAK;EAClB,YAAY,EAAE,SAAS;EACvB,2BAA2B,EAAE,6BAA6B;EAC1D,mBAAmB,EAAE,kBAAkB;EACvC,yBAAyB,EAAE,kBAAkB;EAC7C,qBAAqB,EAAE,0BAA0B;EACjD,mBAAmB,EAAE,mBAAmB;EACxC,wBAAwB,EAAE,6BAA6B;EACvD,2BAA2B,EAAE,8BAA8B;EAC3D,gCAAgC,EAAE,wCAAwC;EAC1E,oBAAoB,EAAE,SAAS;EAC/B,qBAAqB,EAAE,SAAS;EAChC,kBAAkB,EAAE,MAAM;EAC1B,oBAAoB,EAAE,SAAS;EAC/B,0BAA0B,EAAE,kBAAkB;EAC9C,4BAA4B,EAAE,qBAAqB;EACnD,8BAA8B,EAAE,wBAAwB;EACxD,4BAA4B,EAAE,wBAAwB;EACtD,4BAA4B,EAAE,qBAAqB;EACnD,2BAA2B,EAAE,wBAAwB;EACrD,2BAA2B,EAAE,eAAe;EAC5C,sBAAsB,EAAE,8BAA8B;EACtD,qBAAqB,EACnB,qGAAqG;EACvG,wBAAwB,EAAE,SAAS;EACnC,4BAA4B,EAAE,kBAAkB;EAChD,2BAA2B,EACzB,uEAAuE;EACzE,4BAA4B,EAAE,kBAAkB;EAChD,6BAA6B,EAC3B,2DAA2D;EAC7D,gBAAgB,EAAE,YAAY;EAC9B,gBAAgB,EAAE,kBAAkB;EACpC,gBAAgB,EAAE,SAAS;EAC3B,eAAe,EAAE,iBAAiB;EAClC,eAAe,EAAE,YAAY;EAC7B,iBAAiB,EAAE,qBAAqB;EACxC,wBAAwB,EAAE,gCAAgC;EAC1D,kBAAkB,EAAE,eAAe;EACnC,oBAAoB,EAAE,eAAe;EACrC,yBAAyB,EAAE,eAAe;EAC1C,wBAAwB,EACtB,qGAAqG;EACvG,2BAA2B,EAAE,eAAe;EAC5C,6BAA6B,EAAE,UAAU;EACzC,yBAAyB,EAAE,kBAAkB;EAC7C,2BAA2B,EAAE,kBAAkB;EAC/C,OAAO,EAAE,SAAS;EAClB,SAAS,EAAE,aAAa;EACxB,SAAS,EAAE,WAAW;EACtB,QAAQ,EAAE,UAAU;EACpB,WAAW,EAAE,UAAU;EACvB,YAAY,EAAE,cAAc;EAC5B,cAAc,EAAE,cAAc;EAC9B,oBAAoB,EAAE,cAAc;EACpC,oBAAoB,EAAE,SAAS;EAC/B,eAAe,EAAE,kBAAkB;EACnC,UAAU,EAAE,YAAY;EACxB,KAAK,EAAE;AACT,CAAC;AAED,eAAe;EACbC,EAAE,EAAED;AACN,CAAC","ignoreList":[]}
@@ -19,7 +19,8 @@ const defaultAdapter = {
19
19
  open: openWithAlert
20
20
  },
21
21
  bottomSheet: {
22
- open: openWithAlert
22
+ open: openWithAlert,
23
+ dismiss: () => {}
23
24
  }
24
25
  };
25
26
  let _adapter = {};
@@ -37,7 +38,8 @@ export const UIUtils = {
37
38
  open: params => (_adapter.popup ?? defaultAdapter.popup).open(params)
38
39
  },
39
40
  bottomSheet: {
40
- open: params => (_adapter.bottomSheet ?? defaultAdapter.bottomSheet).open(params)
41
+ open: params => (_adapter.bottomSheet ?? defaultAdapter.bottomSheet).open(params),
42
+ dismiss: () => (_adapter.bottomSheet ?? defaultAdapter.bottomSheet).dismiss()
41
43
  }
42
44
  };
43
45
  //# sourceMappingURL=UIUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Alert","openWithAlert","params","title","message","alert","defaultAdapter","toast","open","popup","bottomSheet","_adapter","registerUIUtils","adapter","UIUtils"],"sourceRoot":"../../../src","sources":["utils/UIUtils.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,cAAc;AAGpC,MAAMC,aAAa,GAAIC,MAA4C,IAAK;EACtE,MAAM;IAAEC,KAAK,GAAG,SAAS;IAAEC,OAAO,GAAG;EAAG,CAAC,GAAGF,MAAM,IAAI,CAAC,CAAC;EACxDF,KAAK,CAACK,KAAK,CAACF,KAAK,EAAEC,OAAO,CAAC;AAC7B,CAAC;AAED,MAAME,cAAuC,GAAG;EAC9CC,KAAK,EAAE;IAAEC,IAAI,EAAEP;EAAc,CAAC;EAC9BI,KAAK,EAAE;IAAEG,IAAI,EAAEP;EAAc,CAAC;EAC9BQ,KAAK,EAAE;IAAED,IAAI,EAAEP;EAAc,CAAC;EAC9BS,WAAW,EAAE;IAAEF,IAAI,EAAEP;EAAc;AACrC,CAAC;AAED,IAAIU,QAAuB,GAAG,CAAC,CAAC;AAEhC,OAAO,MAAMC,eAAe,GAAIC,OAAsB,IAAW;EAC/DF,QAAQ,GAAGE,OAAO;AACpB,CAAC;AAED,OAAO,MAAMC,OAAgC,GAAG;EAC9CP,KAAK,EAAE;IACLC,IAAI,EAAGN,MAAM,IAAK,CAACS,QAAQ,CAACJ,KAAK,IAAID,cAAc,CAACC,KAAK,EAAEC,IAAI,CAACN,MAAM;EACxE,CAAC;EACDG,KAAK,EAAE;IACLG,IAAI,EAAGN,MAAM,IAAK,CAACS,QAAQ,CAACN,KAAK,IAAIC,cAAc,CAACD,KAAK,EAAEG,IAAI,CAACN,MAAM;EACxE,CAAC;EACDO,KAAK,EAAE;IACLD,IAAI,EAAGN,MAAM,IAAK,CAACS,QAAQ,CAACF,KAAK,IAAIH,cAAc,CAACG,KAAK,EAAED,IAAI,CAACN,MAAM;EACxE,CAAC;EACDQ,WAAW,EAAE;IACXF,IAAI,EAAGN,MAAM,IACX,CAACS,QAAQ,CAACD,WAAW,IAAIJ,cAAc,CAACI,WAAW,EAAEF,IAAI,CAACN,MAAM;EACpE;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Alert","openWithAlert","params","title","message","alert","defaultAdapter","toast","open","popup","bottomSheet","dismiss","_adapter","registerUIUtils","adapter","UIUtils"],"sourceRoot":"../../../src","sources":["utils/UIUtils.ts"],"mappings":";;AAAA,SAASA,KAAK,QAAQ,cAAc;AAGpC,MAAMC,aAAa,GAAIC,MAA4C,IAAK;EACtE,MAAM;IAAEC,KAAK,GAAG,SAAS;IAAEC,OAAO,GAAG;EAAG,CAAC,GAAGF,MAAM,IAAI,CAAC,CAAC;EACxDF,KAAK,CAACK,KAAK,CAACF,KAAK,EAAEC,OAAO,CAAC;AAC7B,CAAC;AAED,MAAME,cAAuC,GAAG;EAC9CC,KAAK,EAAE;IAAEC,IAAI,EAAEP;EAAc,CAAC;EAC9BI,KAAK,EAAE;IAAEG,IAAI,EAAEP;EAAc,CAAC;EAC9BQ,KAAK,EAAE;IAAED,IAAI,EAAEP;EAAc,CAAC;EAC9BS,WAAW,EAAE;IAAEF,IAAI,EAAEP,aAAa;IAAEU,OAAO,EAAEA,CAAA,KAAM,CAAC;EAAE;AACxD,CAAC;AAED,IAAIC,QAAuB,GAAG,CAAC,CAAC;AAEhC,OAAO,MAAMC,eAAe,GAAIC,OAAsB,IAAW;EAC/DF,QAAQ,GAAGE,OAAO;AACpB,CAAC;AAED,OAAO,MAAMC,OAAgC,GAAG;EAC9CR,KAAK,EAAE;IACLC,IAAI,EAAGN,MAAM,IAAK,CAACU,QAAQ,CAACL,KAAK,IAAID,cAAc,CAACC,KAAK,EAAEC,IAAI,CAACN,MAAM;EACxE,CAAC;EACDG,KAAK,EAAE;IACLG,IAAI,EAAGN,MAAM,IAAK,CAACU,QAAQ,CAACP,KAAK,IAAIC,cAAc,CAACD,KAAK,EAAEG,IAAI,CAACN,MAAM;EACxE,CAAC;EACDO,KAAK,EAAE;IACLD,IAAI,EAAGN,MAAM,IAAK,CAACU,QAAQ,CAACH,KAAK,IAAIH,cAAc,CAACG,KAAK,EAAED,IAAI,CAACN,MAAM;EACxE,CAAC;EACDQ,WAAW,EAAE;IACXF,IAAI,EAAGN,MAAM,IACX,CAACU,QAAQ,CAACF,WAAW,IAAIJ,cAAc,CAACI,WAAW,EAAEF,IAAI,CAACN,MAAM,CAAC;IACnES,OAAO,EAAEA,CAAA,KACP,CAACC,QAAQ,CAACF,WAAW,IAAIJ,cAAc,CAACI,WAAW,EAAEC,OAAO,CAAC;EACjE;AACF,CAAC","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { MessageItem } from '@droppii/openim-rn-client-sdk';
1
+ import { type MessageItem } from '@droppii/openim-rn-client-sdk';
2
2
  interface PinnedMessageBarProps {
3
3
  messages: MessageItem[];
4
4
  currentUserId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PinnedMessageBar.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/PinnedMessageBar.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAsDD,eAAO,MAAM,gBAAgB,6EACY,qBAAqB,iCAiE7D,CAAC"}
1
+ {"version":3,"file":"PinnedMessageBar.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/PinnedMessageBar.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAQ9E,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAsDD,eAAO,MAAM,gBAAgB,6EACY,qBAAqB,iCAoE7D,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { ReactNode } from 'react';
2
- import type { MessageItem } from '@droppii/openim-rn-client-sdk';
2
+ import { type MessageItem } from '@droppii/openim-rn-client-sdk';
3
3
  export interface OpenPinnedMessagesSheetParams {
4
4
  currentUserId?: string;
5
5
  unpinMessage: (message: MessageItem) => void | Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"PinnedMessagesSheet.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/PinnedMessagesSheet.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AA4MjE,MAAM,WAAW,6BAA6B;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC;CAC7D;AAED,eAAO,MAAM,uBAAuB,GAAI,4DAIrC,6BAA6B,SAkB/B,CAAC"}
1
+ {"version":3,"file":"PinnedMessagesSheet.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/PinnedMessagesSheet.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAgL9E,MAAM,WAAW,6BAA6B;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC;CAC7D;AAED,eAAO,MAAM,uBAAuB,GAAI,4DAIrC,6BAA6B,SAkB/B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { MessageItem } from '@droppii/openim-rn-client-sdk';
3
+ export interface OpenPinnedMessagesSheetParams {
4
+ currentUserId?: string;
5
+ unpinMessage: (message: MessageItem) => void | Promise<void>;
6
+ customMessageItemFactory?: (item: MessageItem) => ReactNode;
7
+ }
8
+ export declare const openPinnedMessagesSheet: ({ currentUserId, unpinMessage, customMessageItemFactory, }: OpenPinnedMessagesSheetParams) => void;
9
+ //# sourceMappingURL=PinnedMessagesSheetBackup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PinnedMessagesSheetBackup.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/PinnedMessagesSheetBackup.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAsNjE,MAAM,WAAW,6BAA6B;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,SAAS,CAAC;CAC7D;AAED,eAAO,MAAM,uBAAuB,GAAI,4DAIrC,6BAA6B,SAkB/B,CAAC"}
@@ -8,9 +8,10 @@ interface LegendChatMessageProps {
8
8
  onMediaPress?: (items: MediaItem[], index?: number) => void;
9
9
  onPressUrl?: (url: string) => void;
10
10
  onRetry?: (message: MessageItem) => void;
11
+ onPress?: () => void;
11
12
  onLongPress?: () => void;
12
13
  customMessageItemFactory?: (m: MessageItem) => ReactNode;
13
14
  }
14
- export declare const LegendChatMessage: import("react").MemoExoticComponent<({ message, isOutgoing, createdAtTime, onMediaPress, onPressUrl, onRetry, onLongPress, customMessageItemFactory, }: LegendChatMessageProps) => string | number | bigint | true | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode>> | import("react").JSX.Element>;
15
+ export declare const LegendChatMessage: import("react").MemoExoticComponent<({ message, isOutgoing, createdAtTime, onMediaPress, onPressUrl, onRetry, onPress, onLongPress, customMessageItemFactory, }: LegendChatMessageProps) => string | number | bigint | true | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode>> | import("react").JSX.Element>;
15
16
  export {};
16
17
  //# sourceMappingURL=LegendChatMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LegendChatMessage.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/legend/LegendChatMessage.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoC,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAkB/D,UAAU,sBAAsB;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,wBAAwB,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,SAAS,CAAC;CAC1D;AAyBD,eAAO,MAAM,iBAAiB,0JAUzB,sBAAsB,wRA8C1B,CAAC"}
1
+ {"version":3,"file":"LegendChatMessage.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/legend/LegendChatMessage.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoC,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAkB/D,UAAU,sBAAsB;IAC9B,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,wBAAwB,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,SAAS,CAAC;CAC1D;AAyBD,eAAO,MAAM,iBAAiB,mKAWzB,sBAAsB,wRA8C1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/translation/resources/i18n.ts"],"names":[],"mappings":";;;AAoFA,wBAEE"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/translation/resources/i18n.ts"],"names":[],"mappings":";;;AAsFA,wBAEE"}
@@ -21,6 +21,7 @@ export interface ChatUIAdapter {
21
21
  };
22
22
  bottomSheet?: {
23
23
  open: (params: any) => void;
24
+ dismiss: () => void;
24
25
  };
25
26
  }
26
27
  export interface ChatContextType {
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../../src/types/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../../src/types/chat.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAErD,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX,KAAK,KAAK,GAAG,CACX,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,GAAG,EACZ,QAAQ,CAAC,EAAE,GAAG,MAAM,OAAO,aAAa,EAAE,KACvC,IAAI,CAAC;AAEV,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE,CAAC;IACxC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE,CAAC;IACxC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE,CAAC;IACxC,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;CACpE;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,eAAe,EAAE,oBAAoB,CAAC;IACtC,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC1D,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;IAChD,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,eAAe,EAAE,oBAAoB,CAAC;IACtC,YAAY,EAAE,MAAM,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;IAC3D,mBAAmB,CAAC,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;CACrD,CAAC,CAAC;AAEH,oBAAY,oBAAoB;IAC9B,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;CAC5B;AAED,oBAAY,WAAW;IACrB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAED,oBAAY,UAAU;IACpB,GAAG,IAAI;IACP,EAAE,IAAI;CACP;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oBAAY,eAAe;IACzB,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAED,oBAAY,QAAQ;IAClB,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IACrB,kBAAkB,EAAE,OAAO,GAAG,IAAI,CAAC;CACpC;AAED,oBAAY,UAAU;IACpB,OAAO,IAAI;IACX,OAAO,IAAI;IACX,MAAM,IAAI;CACX;AAED,oBAAY,aAAa;IACvB,YAAY,IAAI;IAChB,SAAS,IAAI;IACb,UAAU,IAAI;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACnC,KAAK,EAAE,IAAI,CAAC;CACb;AAED,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,oBAAoB,CAAC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,cAAc,CAAC;QACrB,IAAI,EAAE,WAAW,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,IAAI,CAAC,EAAE,2BAA2B,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,cAAc,EAAE,OAAO,CAAC;IACxB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACjE,cAAc,EAAE,CAAC,OAAO,EAAE,WAAW,KAAK,IAAI,CAAC;IAC/C,gBAAgB,EAAE,CAChB,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,KAC7D,IAAI,CAAC;IACV,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sBAAsB,EAAE,CAAC,IAAI,CAAC,EAAE,qBAAqB,KAAK,IAAI,CAAC;IAC/D,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,gBAAgB,EAAE,CAAC,aAAa,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,KAAK,IAAI,CAAC;CAChD;AAED,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB;CAAG;AAErE,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,oBAAoB,CAAC;IACtC,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,cAAc,CAAC;QACrB,IAAI,EAAE;YACJ,OAAO,EAAE,MAAM,CAAC;YAChB,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;KACH,CAAC;IACF,YAAY,EAAE,aAAa,CAAC;CAC7B;AAED,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE7D,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,OAAO,iBAAiB,CAAC,KAAK,CAAC;IAAC,IAAI,EAAE,mBAAmB,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,OAAO,iBAAiB,CAAC,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"UIUtils.d.ts","sourceRoot":"","sources":["../../../../src/utils/UIUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAgBnD,eAAO,MAAM,eAAe,GAAI,SAAS,aAAa,KAAG,IAExD,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,aAAa,CAc3C,CAAC"}
1
+ {"version":3,"file":"UIUtils.d.ts","sourceRoot":"","sources":["../../../../src/utils/UIUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAgBnD,eAAO,MAAM,eAAe,GAAI,SAAS,aAAa,KAAG,IAExD,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,aAAa,CAgB3C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@droppii-org/chat-mobile",
3
- "version": "0.2.39",
3
+ "version": "0.2.40",
4
4
  "description": "Droppii chat mobile",
5
5
  "keywords": [
6
6
  "react-native",
@@ -13,7 +13,13 @@ import {
13
13
  getMessagePreviewParts,
14
14
  getPinnedMessagePreview,
15
15
  } from '../../utils/messageUtils';
16
- import type { MessageItem } from '@droppii/openim-rn-client-sdk';
16
+ import { MessageType, type MessageItem } from '@droppii/openim-rn-client-sdk';
17
+
18
+ const HIDDEN_PREVIEW_TEXT_TYPES = new Set([
19
+ MessageType.PictureMessage,
20
+ MessageType.VideoMessage,
21
+ MessageType.MergeMessage,
22
+ ]);
17
23
 
18
24
  interface PinnedMessageBarProps {
19
25
  messages: MessageItem[];
@@ -85,6 +91,7 @@ export const PinnedMessageBar = memo(
85
91
  const remainingCount = messages.length - 1;
86
92
  const { subtitleKey } = getPinnedMessagePreview(latest);
87
93
  const messagePreview = getMessagePreviewParts(latest);
94
+ const hidePreviewText = HIDDEN_PREVIEW_TEXT_TYPES.has(latest.contentType);
88
95
 
89
96
  return (
90
97
  <KContainer.Touchable
@@ -96,13 +103,15 @@ export const PinnedMessageBar = memo(
96
103
 
97
104
  <KContainer.View row alignItems flex paddingR="0.75rem">
98
105
  <KContainer.View style={styles.content}>
99
- <KLabel.Text
100
- typo="TextNmMedium"
101
- numberOfLines={1}
102
- {...messagePreview.textProps}
103
- >
104
- {messagePreview.text}
105
- </KLabel.Text>
106
+ {!hidePreviewText && (
107
+ <KLabel.Text
108
+ typo="TextNmMedium"
109
+ numberOfLines={1}
110
+ {...messagePreview.textProps}
111
+ >
112
+ {messagePreview.text}
113
+ </KLabel.Text>
114
+ )}
106
115
 
107
116
  <KContainer.View row alignItems paddingR="0.75rem">
108
117
  <KImage.VectorIcons
@@ -1,127 +1,29 @@
1
- import {
2
- forwardRef,
3
- memo,
4
- useCallback,
5
- useImperativeHandle,
6
- useRef,
7
- useState,
8
- } from 'react';
1
+ import { memo, useCallback } from 'react';
9
2
  import type { ReactNode } from 'react';
10
- import { Modal, Pressable, StyleSheet, type View } from 'react-native';
11
- import type { MessageItem } from '@droppii/openim-rn-client-sdk';
12
- import { KContainer, KLabel, KColors } from '@droppii/libs';
3
+ import { StyleSheet } from 'react-native';
4
+ import { MessageType, type MessageItem } from '@droppii/openim-rn-client-sdk';
5
+ import {
6
+ KContainer,
7
+ KLabel,
8
+ KColors,
9
+ KImage,
10
+ KSpacingValue,
11
+ } from '@droppii/libs';
13
12
  import { UIUtils } from '../../utils/UIUtils';
14
13
  import { trans } from '../../translation';
15
14
  import { usePinnedMessageStore } from '../../store/pinnedMessage';
16
15
  import { LegendChatMessage } from './legend/LegendChatMessage';
17
- import { formatMessageTime, messageStyles } from './legend/messageTypes';
18
- import { MessageToolboxWrapper } from './messageToolbox/MessageToolboxWrapper';
19
- import { MessageToolboxMenu } from './messageToolbox/MessageToolboxMenu';
20
- import type { MeasuredRect } from './messageToolbox/types';
21
-
22
- interface PinnedMessageToolboxRef {
23
- show: (message: MessageItem, rect: MeasuredRect) => void;
24
- hide: () => void;
25
- }
26
-
27
- interface PinnedMessageToolboxOverlayProps {
28
- currentUserId?: string;
29
- unpinMessage: (message: MessageItem) => void | Promise<void>;
30
- customMessageItemFactory?: (item: MessageItem) => ReactNode;
31
- }
32
-
33
- // Mirrors MessageToolboxOverlay (used for the main chat list's long-press
34
- // menu) but restricted to the 2 actions relevant to an already-pinned
35
- // message: unpin and jump to the original message.
36
- const PinnedMessageToolboxOverlay = memo(
37
- forwardRef<PinnedMessageToolboxRef, PinnedMessageToolboxOverlayProps>(
38
- ({ currentUserId, unpinMessage, customMessageItemFactory }, ref) => {
39
- const [visible, setVisible] = useState(false);
40
- const [message, setMessage] = useState<MessageItem | undefined>(
41
- undefined
42
- );
43
- const [rect, setRect] = useState<MeasuredRect | null>(null);
44
-
45
- const hide = useCallback(() => {
46
- setVisible(false);
47
- setMessage(undefined);
48
- setRect(null);
49
- }, []);
50
-
51
- const show = useCallback((msg: MessageItem, msgRect: MeasuredRect) => {
52
- setMessage(msg);
53
- setRect(msgRect);
54
- setVisible(true);
55
- }, []);
56
-
57
- useImperativeHandle(ref, () => ({ show, hide }), [show, hide]);
58
-
59
- const handleUnpinMessage = useCallback(() => {
60
- if (!message) return;
61
- hide();
62
- unpinMessage(message);
63
- }, [message, hide, unpinMessage]);
64
-
65
- const handleViewOriginalMessage = useCallback(() => {
66
- if (!message) return;
67
- hide();
68
- // TODO: implement navigating to / highlighting the original message
69
- }, [message, hide]);
70
-
71
- if (!visible || !message || !rect) {
72
- return null;
73
- }
74
-
75
- const isOutgoing = message.sendID === currentUserId;
76
-
77
- return (
78
- <Modal
79
- visible={visible}
80
- transparent
81
- statusBarTranslucent
82
- animationType="fade"
83
- onRequestClose={hide}
84
- >
85
- <Pressable style={styles.backdrop} onPress={hide} />
86
-
87
- <MessageToolboxWrapper
88
- rect={rect}
89
- isOutgoing={isOutgoing}
90
- message={
91
- <LegendChatMessage
92
- message={message}
93
- isOutgoing={isOutgoing}
94
- createdAtTime={message.sendTime || message.createTime}
95
- customMessageItemFactory={customMessageItemFactory}
96
- />
97
- }
98
- toolbox={
99
- <MessageToolboxMenu
100
- showUnpinMessage
101
- showViewOriginalMessage
102
- onUnpinMessage={handleUnpinMessage}
103
- onViewOriginalMessage={handleViewOriginalMessage}
104
- />
105
- }
106
- />
107
- </Modal>
108
- );
109
- }
110
- )
111
- );
112
-
113
- PinnedMessageToolboxOverlay.displayName = 'PinnedMessageToolboxOverlay';
114
-
115
- const styles = StyleSheet.create({
116
- backdrop: {
117
- position: 'absolute',
118
- top: 0,
119
- left: 0,
120
- right: 0,
121
- bottom: 0,
122
- backgroundColor: 'rgba(0,0,0,0.75)',
123
- },
124
- });
16
+ import { formatMessageTime } from './legend/messageTypes';
17
+
18
+ // Text/quote/link bubbles already render their own timestamp for incoming
19
+ // messages (see textMessage, quotedMessage, linkMessage) — skip the external
20
+ // label for those to avoid showing the time twice.
21
+ const SELF_RENDERS_TIME_FOR_INCOMING = new Set([
22
+ MessageType.TextMessage,
23
+ MessageType.AtTextMessage,
24
+ MessageType.QuoteMessage,
25
+ MessageType.UrlTextMessage,
26
+ ]);
125
27
 
126
28
  interface PinnedMessagesSheetContentProps {
127
29
  currentUserId?: string;
@@ -136,19 +38,25 @@ const PinnedMessagesSheetContent = memo(
136
38
  customMessageItemFactory,
137
39
  }: PinnedMessagesSheetContentProps) => {
138
40
  const messages = usePinnedMessageStore((state) => state.messages);
139
- const toolboxRef = useRef<PinnedMessageToolboxRef>(null);
140
- const rowRefsMap = useRef<Map<string, View | null>>(new Map());
141
-
142
- const handleLongPress = useCallback(
143
- (messageId: string, message: MessageItem) => {
144
- const node = rowRefsMap.current.get(messageId);
145
- node?.measureInWindow((x, y, width, height) => {
146
- toolboxRef.current?.show(message, { x, y, width, height });
147
- });
41
+
42
+ const handleUnpinMessage = useCallback(
43
+ async (message: MessageItem) => {
44
+ await unpinMessage(message);
45
+ if (usePinnedMessageStore.getState().messages.length === 0) {
46
+ UIUtils.bottomSheet.dismiss();
47
+ }
148
48
  },
149
- []
49
+ [unpinMessage]
150
50
  );
151
51
 
52
+ const handlePressMessage = useCallback(() => {
53
+ UIUtils.bottomSheet.dismiss();
54
+ UIUtils.alert.open({
55
+ title: trans('chat:view_original_message'),
56
+ message: trans('chat:scroll_to_message_todo'),
57
+ });
58
+ }, []);
59
+
152
60
  return (
153
61
  <KContainer.View paddingV="0.5rem">
154
62
  <KLabel.Text
@@ -164,28 +72,58 @@ const PinnedMessagesSheetContent = memo(
164
72
  const isOutgoing = message.sendID === currentUserId;
165
73
  const messageId = message.clientMsgID || message.serverMsgID;
166
74
  const createdAtTime = message.sendTime || message.createTime;
167
- const timeLabel = formatMessageTime(createdAtTime);
75
+ const hasInternalTimeLabel =
76
+ !isOutgoing &&
77
+ SELF_RENDERS_TIME_FOR_INCOMING.has(message.contentType);
78
+ const timeLabel = hasInternalTimeLabel
79
+ ? ''
80
+ : formatMessageTime(createdAtTime);
81
+
82
+ const unpinButton = (
83
+ <KContainer.Touchable
84
+ center
85
+ br="round"
86
+ width={28}
87
+ height={28}
88
+ background={KColors.background}
89
+ style={
90
+ isOutgoing ? styles.unpinButtonLeft : styles.unpinButtonRight
91
+ }
92
+ onPress={() => handleUnpinMessage(message)}
93
+ >
94
+ <KImage.VectorIcons
95
+ name="thumbtack-off-o"
96
+ provider="DroppiiNew"
97
+ size={14}
98
+ color={KColors.gray.dark}
99
+ />
100
+ </KContainer.Touchable>
101
+ );
168
102
 
169
103
  return (
170
104
  <KContainer.View
171
105
  key={messageId}
172
- ref={(node: View | null) => {
173
- if (node) rowRefsMap.current.set(messageId, node);
174
- else rowRefsMap.current.delete(messageId);
175
- }}
176
- style={
177
- isOutgoing
178
- ? messageStyles.messageRowRight
179
- : messageStyles.messageRowLeft
180
- }
106
+ style={isOutgoing ? styles.rowRight : styles.rowLeft}
181
107
  >
182
- <LegendChatMessage
183
- message={message}
184
- isOutgoing={isOutgoing}
185
- createdAtTime={createdAtTime}
186
- onLongPress={() => handleLongPress(messageId, message)}
187
- customMessageItemFactory={customMessageItemFactory}
188
- />
108
+ <KContainer.View
109
+ style={[
110
+ styles.messageRow,
111
+ isOutgoing ? styles.messageRowRight : styles.messageRowLeft,
112
+ ]}
113
+ >
114
+ {isOutgoing && unpinButton}
115
+
116
+ <LegendChatMessage
117
+ message={message}
118
+ isOutgoing={isOutgoing}
119
+ createdAtTime={createdAtTime}
120
+ onPress={handlePressMessage}
121
+ customMessageItemFactory={customMessageItemFactory}
122
+ />
123
+
124
+ {!isOutgoing && unpinButton}
125
+ </KContainer.View>
126
+
189
127
  {!!timeLabel && (
190
128
  <KLabel.Text
191
129
  typo="TextXsNormal"
@@ -198,13 +136,6 @@ const PinnedMessagesSheetContent = memo(
198
136
  </KContainer.View>
199
137
  );
200
138
  })}
201
-
202
- <PinnedMessageToolboxOverlay
203
- ref={toolboxRef}
204
- currentUserId={currentUserId}
205
- unpinMessage={unpinMessage}
206
- customMessageItemFactory={customMessageItemFactory}
207
- />
208
139
  </KContainer.View>
209
140
  );
210
141
  }
@@ -212,6 +143,40 @@ const PinnedMessagesSheetContent = memo(
212
143
 
213
144
  PinnedMessagesSheetContent.displayName = 'PinnedMessagesSheetContent';
214
145
 
146
+ const UNPIN_BUTTON_GAP = KSpacingValue['0.5rem'];
147
+
148
+ const styles = StyleSheet.create({
149
+ rowLeft: {
150
+ width: '100%',
151
+ paddingHorizontal: KSpacingValue['0.75rem'],
152
+ marginBottom: KSpacingValue['0.25rem'],
153
+ alignItems: 'flex-start',
154
+ },
155
+ rowRight: {
156
+ width: '100%',
157
+ paddingHorizontal: KSpacingValue['0.75rem'],
158
+ marginBottom: KSpacingValue['0.25rem'],
159
+ alignItems: 'flex-end',
160
+ },
161
+ messageRow: {
162
+ width: '100%',
163
+ flexDirection: 'row',
164
+ alignItems: 'center',
165
+ },
166
+ messageRowLeft: {
167
+ justifyContent: 'flex-start',
168
+ },
169
+ messageRowRight: {
170
+ justifyContent: 'flex-end',
171
+ },
172
+ unpinButtonLeft: {
173
+ marginRight: UNPIN_BUTTON_GAP,
174
+ },
175
+ unpinButtonRight: {
176
+ marginLeft: UNPIN_BUTTON_GAP,
177
+ },
178
+ });
179
+
215
180
  export interface OpenPinnedMessagesSheetParams {
216
181
  currentUserId?: string;
217
182
  unpinMessage: (message: MessageItem) => void | Promise<void>;