@droppii-org/chat-mobile 0.2.32 → 0.2.33

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 (56) hide show
  1. package/lib/module/core/useChatListener.js +16 -1
  2. package/lib/module/core/useChatListener.js.map +1 -1
  3. package/lib/module/hooks/message/usePinMessage.js +133 -0
  4. package/lib/module/hooks/message/usePinMessage.js.map +1 -0
  5. package/lib/module/screens/chat-detail/ChatDetail.js +13 -1
  6. package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
  7. package/lib/module/screens/chat-detail/PinnedMessageBar.js +158 -0
  8. package/lib/module/screens/chat-detail/PinnedMessageBar.js.map +1 -0
  9. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +47 -10
  10. package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
  11. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxMenu.js +16 -0
  12. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxMenu.js.map +1 -1
  13. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxOverlay.js +15 -1
  14. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxOverlay.js.map +1 -1
  15. package/lib/module/screens/chat-detail/messageToolbox/messageToolbox.utils.js +16 -1
  16. package/lib/module/screens/chat-detail/messageToolbox/messageToolbox.utils.js.map +1 -1
  17. package/lib/module/store/pinnedMessage.js +34 -0
  18. package/lib/module/store/pinnedMessage.js.map +1 -0
  19. package/lib/module/translation/resources/i18n.js +12 -0
  20. package/lib/module/translation/resources/i18n.js.map +1 -1
  21. package/lib/module/types/chat.js.map +1 -1
  22. package/lib/module/utils/messageUtils.js +76 -0
  23. package/lib/module/utils/messageUtils.js.map +1 -1
  24. package/lib/typescript/src/core/useChatListener.d.ts.map +1 -1
  25. package/lib/typescript/src/hooks/message/usePinMessage.d.ts +9 -0
  26. package/lib/typescript/src/hooks/message/usePinMessage.d.ts.map +1 -0
  27. package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
  28. package/lib/typescript/src/screens/chat-detail/PinnedMessageBar.d.ts +8 -0
  29. package/lib/typescript/src/screens/chat-detail/PinnedMessageBar.d.ts.map +1 -0
  30. package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
  31. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxMenu.d.ts +5 -1
  32. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxMenu.d.ts.map +1 -1
  33. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.d.ts +2 -0
  34. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.d.ts.map +1 -1
  35. package/lib/typescript/src/screens/chat-detail/messageToolbox/messageToolbox.utils.d.ts +4 -0
  36. package/lib/typescript/src/screens/chat-detail/messageToolbox/messageToolbox.utils.d.ts.map +1 -1
  37. package/lib/typescript/src/store/pinnedMessage.d.ts +11 -0
  38. package/lib/typescript/src/store/pinnedMessage.d.ts.map +1 -0
  39. package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
  40. package/lib/typescript/src/types/chat.d.ts +4 -1
  41. package/lib/typescript/src/types/chat.d.ts.map +1 -1
  42. package/lib/typescript/src/utils/messageUtils.d.ts +8 -0
  43. package/lib/typescript/src/utils/messageUtils.d.ts.map +1 -1
  44. package/package.json +2 -2
  45. package/src/core/useChatListener.ts +26 -0
  46. package/src/hooks/message/usePinMessage.ts +153 -0
  47. package/src/screens/chat-detail/ChatDetail.tsx +12 -0
  48. package/src/screens/chat-detail/PinnedMessageBar.tsx +177 -0
  49. package/src/screens/chat-detail/legend/LegendChatMessage.tsx +47 -10
  50. package/src/screens/chat-detail/messageToolbox/MessageToolboxMenu.tsx +24 -0
  51. package/src/screens/chat-detail/messageToolbox/MessageToolboxOverlay.tsx +142 -116
  52. package/src/screens/chat-detail/messageToolbox/messageToolbox.utils.ts +31 -0
  53. package/src/store/pinnedMessage.ts +38 -0
  54. package/src/translation/resources/i18n.ts +13 -0
  55. package/src/types/chat.ts +4 -1
  56. package/src/utils/messageUtils.ts +90 -0
@@ -9,6 +9,7 @@ import { getLastMessageText } from "../utils/messageUtils.js";
9
9
  import { useChatContext } from "../context/index.js";
10
10
  import isEmpty from 'lodash/isEmpty';
11
11
  import { markMessageRevoked, useMessageStore } from "../store/message.js";
12
+ import { syncPinnedMessagesOnEvent } from "../hooks/message/usePinMessage.js";
12
13
  export const useChatListener = () => {
13
14
  const updateOneMessage = useMessageStore(state => state.updateOneMessage);
14
15
  const currentUserId = useUserStore(s => s.user?.userID);
@@ -66,6 +67,18 @@ export const useChatListener = () => {
66
67
  const onMessageRevoked = useCallback(revokedInfo => {
67
68
  markMessageRevoked(revokedInfo.clientMsgID);
68
69
  }, []);
70
+ const onMessagePinned = useCallback(messagePinned => {
71
+ const currentConversationId = useConversationStore.getState().currentConversationId;
72
+ if (messagePinned.conversationID === currentConversationId) {
73
+ updateOneMessage({
74
+ clientMsgID: messagePinned.clientMsgID,
75
+ isPinned: messagePinned.isPinned,
76
+ pinnedByUserID: messagePinned.isPinned ? messagePinned.operatorUserID : undefined,
77
+ pinnedTime: messagePinned.isPinned ? messagePinned.pinnedTime : undefined
78
+ });
79
+ }
80
+ syncPinnedMessagesOnEvent(messagePinned.conversationID);
81
+ }, [updateOneMessage]);
69
82
  useEffect(() => {
70
83
  // Conversation
71
84
  OpenIMSDK.on(OpenIMEvent.OnConversationChanged, onConversationChanged);
@@ -79,6 +92,7 @@ export const useChatListener = () => {
79
92
  // Message status
80
93
  OpenIMSDK.on(OpenIMEvent.SendMessageProgress, onSendMessageProgress);
81
94
  OpenIMSDK.on(OpenIMEvent.OnNewRecvMessageRevoked, onMessageRevoked);
95
+ OpenIMSDK.on(OpenIMEvent.OnRecvMessagePinned, onMessagePinned);
82
96
  return () => {
83
97
  // Conversation
84
98
  OpenIMSDK.off(OpenIMEvent.OnConversationChanged, onConversationChanged);
@@ -92,7 +106,8 @@ export const useChatListener = () => {
92
106
  OpenIMSDK.off(OpenIMEvent.SendMessageProgress, onSendMessageProgress);
93
107
  // OpenIMSDK.off(OpenIMEvent.OnRecvNewMessages, onRecvNewMessages);
94
108
  OpenIMSDK.off(OpenIMEvent.OnNewRecvMessageRevoked, onMessageRevoked);
109
+ OpenIMSDK.off(OpenIMEvent.OnRecvMessagePinned, onMessagePinned);
95
110
  };
96
- }, [onConversationChanged, onGroupMemberAdded, onGroupMemberDeleted, onMessageRevoked, onNewConversation, onSendMessageProgress]);
111
+ }, [onConversationChanged, onGroupMemberAdded, onGroupMemberDeleted, onMessagePinned, onMessageRevoked, onNewConversation, onSendMessageProgress]);
97
112
  };
98
113
  //# sourceMappingURL=useChatListener.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["OpenIMSDK","MessageReceiveOptType","OpenIMEvent","useCallback","useEffect","useConversationStore","ToastFlashMessage","useUserStore","getLastMessageText","useChatContext","isEmpty","markMessageRevoked","useMessageStore","useChatListener","updateOneMessage","state","currentUserId","s","user","userID","onPressFlashMessage","isShowFLashMessage","onSendMessageProgress","progress","message","console","log","clientMsgID","status","onConversationChanged","conversations","getState","updateConversations","conversation","recvMsgOpt","NotNotify","latestMsg","JSON","parse","lastMessageText","show","key","conversationID","title","showName","body","onPress","hide","onNewConversation","onGroupMemberAdded","member","groupID","onGroupMemberDeleted","onMessageRevoked","revokedInfo","on","OnConversationChanged","OnNewConversation","OnGroupMemberAdded","OnGroupMemberDeleted","SendMessageProgress","OnNewRecvMessageRevoked","off"],"sourceRoot":"../../../src","sources":["core/useChatListener.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["OpenIMSDK","MessageReceiveOptType","OpenIMEvent","useCallback","useEffect","useConversationStore","ToastFlashMessage","useUserStore","getLastMessageText","useChatContext","isEmpty","markMessageRevoked","useMessageStore","syncPinnedMessagesOnEvent","useChatListener","updateOneMessage","state","currentUserId","s","user","userID","onPressFlashMessage","isShowFLashMessage","onSendMessageProgress","progress","message","console","log","clientMsgID","status","onConversationChanged","conversations","getState","updateConversations","conversation","recvMsgOpt","NotNotify","latestMsg","JSON","parse","lastMessageText","show","key","conversationID","title","showName","body","onPress","hide","onNewConversation","onGroupMemberAdded","member","groupID","onGroupMemberDeleted","onMessageRevoked","revokedInfo","onMessagePinned","messagePinned","currentConversationId","isPinned","pinnedByUserID","operatorUserID","undefined","pinnedTime","on","OnConversationChanged","OnNewConversation","OnGroupMemberAdded","OnGroupMemberDeleted","SendMessageProgress","OnNewRecvMessageRevoked","OnRecvMessagePinned","off"],"sourceRoot":"../../../src","sources":["core/useChatListener.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ import { useCallback, useEffect } from 'react';
4
+ import OpenIMSDK from '@droppii/openim-rn-client-sdk';
5
+ import { useConversationStore } from "../../store/conversation.js";
6
+ import { useMessageStore } from "../../store/message.js";
7
+ import { usePinnedMessageStore } from "../../store/pinnedMessage.js";
8
+ import { useUserStore } from "../../store/user.js";
9
+ import { UIUtils } from "../../utils/UIUtils.js";
10
+ import { trans } from "../../translation/index.js";
11
+ const MAX_PINNED_MESSAGES = 5;
12
+ export const fetchPinnedMessages = async conversationID => {
13
+ const result = await OpenIMSDK.getPinnedMessageList({
14
+ conversationID,
15
+ offset: 0,
16
+ pageSize: MAX_PINNED_MESSAGES
17
+ });
18
+ const previouslyPinnedIds = new Set(usePinnedMessageStore.getState().messages.map(msg => msg.clientMsgID));
19
+ const pinnedIds = new Set(result.messageList.map(msg => msg.clientMsgID));
20
+ usePinnedMessageStore.getState().setMessages(result.messageList, result.totalCount);
21
+
22
+ // Reconcile the per-message `isPinned` flag (used by the toolbox and the
23
+ // pinned badge) with the authoritative list from the server — messages
24
+ // pinned outside this session (before remount, or from another device)
25
+ // never get this flag set otherwise.
26
+ const {
27
+ updateOneMessage
28
+ } = useMessageStore.getState();
29
+ pinnedIds.forEach(clientMsgID => {
30
+ updateOneMessage({
31
+ clientMsgID,
32
+ isPinned: true
33
+ });
34
+ });
35
+ previouslyPinnedIds.forEach(clientMsgID => {
36
+ if (!pinnedIds.has(clientMsgID)) {
37
+ updateOneMessage({
38
+ clientMsgID,
39
+ isPinned: false
40
+ });
41
+ }
42
+ });
43
+ };
44
+ const showPinLimitReachedModal = () => {
45
+ UIUtils.alert.open({
46
+ title: trans('chat:pin_limit_title'),
47
+ message: trans('chat:pin_limit_desc'),
48
+ primaryIndex: 0,
49
+ buttons: [{
50
+ label: trans('chat:pin_limit_primary'),
51
+ kind: 'primary',
52
+ onPress: () => {}
53
+ }]
54
+ });
55
+ };
56
+ export const usePinMessage = conversationID => {
57
+ const pinnedMessages = usePinnedMessageStore(state => state.messages);
58
+ const addMessage = usePinnedMessageStore(state => state.addMessage);
59
+ const removeMessage = usePinnedMessageStore(state => state.removeMessage);
60
+ const reset = usePinnedMessageStore(state => state.reset);
61
+ useEffect(() => {
62
+ if (!conversationID) return;
63
+ fetchPinnedMessages(conversationID).catch(error => {
64
+ console.error('fetchPinnedMessages', error);
65
+ });
66
+ return () => {
67
+ reset();
68
+ };
69
+ }, [conversationID, reset]);
70
+ const pinMessage = useCallback(async message => {
71
+ if (!conversationID) return;
72
+ if (pinnedMessages.length >= MAX_PINNED_MESSAGES) {
73
+ showPinLimitReachedModal();
74
+ return;
75
+ }
76
+ try {
77
+ await OpenIMSDK.pinMsg(conversationID, message.clientMsgID);
78
+ addMessage(message);
79
+ useMessageStore.getState().updateOneMessage({
80
+ clientMsgID: message.clientMsgID,
81
+ isPinned: true,
82
+ pinnedByUserID: useUserStore.getState().user?.userID,
83
+ pinnedTime: Date.now()
84
+ });
85
+ UIUtils.toast.open({
86
+ title: trans('chat:pin_message_success'),
87
+ theme: 'success'
88
+ });
89
+ } catch (error) {
90
+ console.error('pinMessage', error);
91
+ UIUtils.toast.open({
92
+ title: trans('chat:generic_error'),
93
+ theme: 'error'
94
+ });
95
+ }
96
+ }, [conversationID, pinnedMessages.length, addMessage]);
97
+ const unpinMessage = useCallback(async message => {
98
+ if (!conversationID) return;
99
+ try {
100
+ await OpenIMSDK.unpinMsg(conversationID, message.clientMsgID);
101
+ removeMessage(message.clientMsgID);
102
+ useMessageStore.getState().updateOneMessage({
103
+ clientMsgID: message.clientMsgID,
104
+ isPinned: false,
105
+ pinnedByUserID: undefined,
106
+ pinnedTime: undefined
107
+ });
108
+ UIUtils.toast.open({
109
+ title: trans('chat:unpin_message_success'),
110
+ theme: 'success'
111
+ });
112
+ } catch (error) {
113
+ console.error('unpinMessage', error);
114
+ UIUtils.toast.open({
115
+ title: trans('chat:generic_error'),
116
+ theme: 'error'
117
+ });
118
+ }
119
+ }, [conversationID, removeMessage]);
120
+ return {
121
+ pinnedMessages,
122
+ pinMessage,
123
+ unpinMessage
124
+ };
125
+ };
126
+ export const syncPinnedMessagesOnEvent = conversationID => {
127
+ const currentConversationId = useConversationStore.getState().currentConversationId;
128
+ if (conversationID !== currentConversationId) return;
129
+ fetchPinnedMessages(conversationID).catch(error => {
130
+ console.error('syncPinnedMessagesOnEvent', error);
131
+ });
132
+ };
133
+ //# sourceMappingURL=usePinMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","useEffect","OpenIMSDK","useConversationStore","useMessageStore","usePinnedMessageStore","useUserStore","UIUtils","trans","MAX_PINNED_MESSAGES","fetchPinnedMessages","conversationID","result","getPinnedMessageList","offset","pageSize","previouslyPinnedIds","Set","getState","messages","map","msg","clientMsgID","pinnedIds","messageList","setMessages","totalCount","updateOneMessage","forEach","isPinned","has","showPinLimitReachedModal","alert","open","title","message","primaryIndex","buttons","label","kind","onPress","usePinMessage","pinnedMessages","state","addMessage","removeMessage","reset","catch","error","console","pinMessage","length","pinMsg","pinnedByUserID","user","userID","pinnedTime","Date","now","toast","theme","unpinMessage","unpinMsg","undefined","syncPinnedMessagesOnEvent","currentConversationId"],"sourceRoot":"../../../../src","sources":["hooks/message/usePinMessage.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,QAAQ,OAAO;AAC9C,OAAOC,SAAS,MAAM,+BAA+B;AAErD,SAASC,oBAAoB,QAAQ,6BAA0B;AAC/D,SAASC,eAAe,QAAQ,wBAAqB;AACrD,SAASC,qBAAqB,QAAQ,8BAA2B;AACjE,SAASC,YAAY,QAAQ,qBAAkB;AAC/C,SAASC,OAAO,QAAQ,wBAAqB;AAC7C,SAASC,KAAK,QAAQ,4BAAmB;AAEzC,MAAMC,mBAAmB,GAAG,CAAC;AAE7B,OAAO,MAAMC,mBAAmB,GAAG,MAAOC,cAAsB,IAAK;EACnE,MAAMC,MAAM,GAAG,MAAMV,SAAS,CAACW,oBAAoB,CAAC;IAClDF,cAAc;IACdG,MAAM,EAAE,CAAC;IACTC,QAAQ,EAAEN;EACZ,CAAC,CAAC;EAEF,MAAMO,mBAAmB,GAAG,IAAIC,GAAG,CACjCZ,qBAAqB,CAACa,QAAQ,CAAC,CAAC,CAACC,QAAQ,CAACC,GAAG,CAAEC,GAAG,IAAKA,GAAG,CAACC,WAAW,CACxE,CAAC;EACD,MAAMC,SAAS,GAAG,IAAIN,GAAG,CAACL,MAAM,CAACY,WAAW,CAACJ,GAAG,CAAEC,GAAG,IAAKA,GAAG,CAACC,WAAW,CAAC,CAAC;EAE3EjB,qBAAqB,CAClBa,QAAQ,CAAC,CAAC,CACVO,WAAW,CAACb,MAAM,CAACY,WAAW,EAAEZ,MAAM,CAACc,UAAU,CAAC;;EAErD;EACA;EACA;EACA;EACA,MAAM;IAAEC;EAAiB,CAAC,GAAGvB,eAAe,CAACc,QAAQ,CAAC,CAAC;EACvDK,SAAS,CAACK,OAAO,CAAEN,WAAW,IAAK;IACjCK,gBAAgB,CAAC;MAAEL,WAAW;MAAEO,QAAQ,EAAE;IAAK,CAAC,CAAC;EACnD,CAAC,CAAC;EACFb,mBAAmB,CAACY,OAAO,CAAEN,WAAW,IAAK;IAC3C,IAAI,CAACC,SAAS,CAACO,GAAG,CAACR,WAAW,CAAC,EAAE;MAC/BK,gBAAgB,CAAC;QAAEL,WAAW;QAAEO,QAAQ,EAAE;MAAM,CAAC,CAAC;IACpD;EACF,CAAC,CAAC;AACJ,CAAC;AAED,MAAME,wBAAwB,GAAGA,CAAA,KAAM;EACrCxB,OAAO,CAACyB,KAAK,CAACC,IAAI,CAAC;IACjBC,KAAK,EAAE1B,KAAK,CAAC,sBAAsB,CAAC;IACpC2B,OAAO,EAAE3B,KAAK,CAAC,qBAAqB,CAAC;IACrC4B,YAAY,EAAE,CAAC;IACfC,OAAO,EAAE,CACP;MACEC,KAAK,EAAE9B,KAAK,CAAC,wBAAwB,CAAC;MACtC+B,IAAI,EAAE,SAAS;MACfC,OAAO,EAAEA,CAAA,KAAM,CAAC;IAClB,CAAC;EAEL,CAAC,CAAC;AACJ,CAAC;AAED,OAAO,MAAMC,aAAa,GAAI9B,cAAuB,IAAK;EACxD,MAAM+B,cAAc,GAAGrC,qBAAqB,CAAEsC,KAAK,IAAKA,KAAK,CAACxB,QAAQ,CAAC;EACvE,MAAMyB,UAAU,GAAGvC,qBAAqB,CAAEsC,KAAK,IAAKA,KAAK,CAACC,UAAU,CAAC;EACrE,MAAMC,aAAa,GAAGxC,qBAAqB,CAAEsC,KAAK,IAAKA,KAAK,CAACE,aAAa,CAAC;EAC3E,MAAMC,KAAK,GAAGzC,qBAAqB,CAAEsC,KAAK,IAAKA,KAAK,CAACG,KAAK,CAAC;EAE3D7C,SAAS,CAAC,MAAM;IACd,IAAI,CAACU,cAAc,EAAE;IAErBD,mBAAmB,CAACC,cAAc,CAAC,CAACoC,KAAK,CAAEC,KAAK,IAAK;MACnDC,OAAO,CAACD,KAAK,CAAC,qBAAqB,EAAEA,KAAK,CAAC;IAC7C,CAAC,CAAC;IAEF,OAAO,MAAM;MACXF,KAAK,CAAC,CAAC;IACT,CAAC;EACH,CAAC,EAAE,CAACnC,cAAc,EAAEmC,KAAK,CAAC,CAAC;EAE3B,MAAMI,UAAU,GAAGlD,WAAW,CAC5B,MAAOmC,OAAoB,IAAK;IAC9B,IAAI,CAACxB,cAAc,EAAE;IAErB,IAAI+B,cAAc,CAACS,MAAM,IAAI1C,mBAAmB,EAAE;MAChDsB,wBAAwB,CAAC,CAAC;MAC1B;IACF;IAEA,IAAI;MACF,MAAM7B,SAAS,CAACkD,MAAM,CAACzC,cAAc,EAAEwB,OAAO,CAACb,WAAW,CAAC;MAC3DsB,UAAU,CAACT,OAAO,CAAC;MACnB/B,eAAe,CAACc,QAAQ,CAAC,CAAC,CAACS,gBAAgB,CAAC;QAC1CL,WAAW,EAAEa,OAAO,CAACb,WAAW;QAChCO,QAAQ,EAAE,IAAI;QACdwB,cAAc,EAAE/C,YAAY,CAACY,QAAQ,CAAC,CAAC,CAACoC,IAAI,EAAEC,MAAM;QACpDC,UAAU,EAAEC,IAAI,CAACC,GAAG,CAAC;MACvB,CAAC,CAAC;MACFnD,OAAO,CAACoD,KAAK,CAAC1B,IAAI,CAAC;QACjBC,KAAK,EAAE1B,KAAK,CAAC,0BAA0B,CAAC;QACxCoD,KAAK,EAAE;MACT,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOZ,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,YAAY,EAAEA,KAAK,CAAC;MAClCzC,OAAO,CAACoD,KAAK,CAAC1B,IAAI,CAAC;QACjBC,KAAK,EAAE1B,KAAK,CAAC,oBAAoB,CAAC;QAClCoD,KAAK,EAAE;MACT,CAAC,CAAC;IACJ;EACF,CAAC,EACD,CAACjD,cAAc,EAAE+B,cAAc,CAACS,MAAM,EAAEP,UAAU,CACpD,CAAC;EAED,MAAMiB,YAAY,GAAG7D,WAAW,CAC9B,MAAOmC,OAAoB,IAAK;IAC9B,IAAI,CAACxB,cAAc,EAAE;IAErB,IAAI;MACF,MAAMT,SAAS,CAAC4D,QAAQ,CAACnD,cAAc,EAAEwB,OAAO,CAACb,WAAW,CAAC;MAC7DuB,aAAa,CAACV,OAAO,CAACb,WAAW,CAAC;MAClClB,eAAe,CAACc,QAAQ,CAAC,CAAC,CAACS,gBAAgB,CAAC;QAC1CL,WAAW,EAAEa,OAAO,CAACb,WAAW;QAChCO,QAAQ,EAAE,KAAK;QACfwB,cAAc,EAAEU,SAAS;QACzBP,UAAU,EAAEO;MACd,CAAC,CAAC;MACFxD,OAAO,CAACoD,KAAK,CAAC1B,IAAI,CAAC;QACjBC,KAAK,EAAE1B,KAAK,CAAC,4BAA4B,CAAC;QAC1CoD,KAAK,EAAE;MACT,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOZ,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,cAAc,EAAEA,KAAK,CAAC;MACpCzC,OAAO,CAACoD,KAAK,CAAC1B,IAAI,CAAC;QACjBC,KAAK,EAAE1B,KAAK,CAAC,oBAAoB,CAAC;QAClCoD,KAAK,EAAE;MACT,CAAC,CAAC;IACJ;EACF,CAAC,EACD,CAACjD,cAAc,EAAEkC,aAAa,CAChC,CAAC;EAED,OAAO;IACLH,cAAc;IACdQ,UAAU;IACVW;EACF,CAAC;AACH,CAAC;AAED,OAAO,MAAMG,yBAAyB,GAAIrD,cAAsB,IAAK;EACnE,MAAMsD,qBAAqB,GACzB9D,oBAAoB,CAACe,QAAQ,CAAC,CAAC,CAAC+C,qBAAqB;EACvD,IAAItD,cAAc,KAAKsD,qBAAqB,EAAE;EAE9CvD,mBAAmB,CAACC,cAAc,CAAC,CAACoC,KAAK,CAAEC,KAAK,IAAK;IACnDC,OAAO,CAACD,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC;EACnD,CAAC,CAAC;AACJ,CAAC","ignoreList":[]}
@@ -7,6 +7,8 @@ import { useSafeAreaInsets } from 'react-native-safe-area-context';
7
7
  import { KContainer } from '@droppii/libs';
8
8
  import { useNavigation } from '@react-navigation/native';
9
9
  import { useChatMessages } from "../../hooks/useChatMessages.js";
10
+ import { usePinMessage } from "../../hooks/message/usePinMessage.js";
11
+ import { PinnedMessageBar } from "./PinnedMessageBar.js";
10
12
  import { MediaViewerModal } from "../../components/MediaViewerModal.js";
11
13
  import { useConversation, useConversationStore } from "../../store/index.js";
12
14
  import ChatDetailHeader from "./ChatDetailHeader.js";
@@ -63,6 +65,11 @@ const ChatDetail = /*#__PURE__*/memo(({
63
65
  conversationId,
64
66
  enabled
65
67
  });
68
+ const {
69
+ pinnedMessages,
70
+ pinMessage,
71
+ unpinMessage
72
+ } = usePinMessage(conversationId);
66
73
  useEffect(() => {
67
74
  if (conversationId) {
68
75
  useConversationStore.getState().setCurrentConversation(conversationId);
@@ -94,6 +101,9 @@ const ChatDetail = /*#__PURE__*/memo(({
94
101
  onPressAddMember: onPressAddMember,
95
102
  onPressMenu: onPressMenu,
96
103
  onPressAvatar: onPressAvatar
104
+ }), /*#__PURE__*/_jsx(PinnedMessageBar, {
105
+ messages: pinnedMessages,
106
+ currentUserId: currentUserId
97
107
  }), /*#__PURE__*/_jsxs(KeyboardAvoidingView, {
98
108
  style: styles.keyboardAvoiding,
99
109
  behavior: "padding",
@@ -118,7 +128,9 @@ const ChatDetail = /*#__PURE__*/memo(({
118
128
  }), /*#__PURE__*/_jsx(MessageToolboxOverlay, {
119
129
  ref: messageToolboxRef,
120
130
  currentUserId: currentUserId,
121
- customMessageItemFactory: customMessageItemFactory
131
+ customMessageItemFactory: customMessageItemFactory,
132
+ onPinMessage: pinMessage,
133
+ onUnpinMessage: unpinMessage
122
134
  })]
123
135
  });
124
136
  });
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useCallback","useEffect","useMemo","useRef","Platform","StyleSheet","KeyboardAvoidingView","useSafeAreaInsets","KContainer","useNavigation","useChatMessages","MediaViewerModal","useConversation","useConversationStore","ChatDetailHeader","ChatListLegend","ChatComposer","shouldShowAddMember","normalizeUrl","MessageToolboxOverlay","useGetConversationDetail","jsx","_jsx","jsxs","_jsxs","ChatDetail","targetConversationId","targetUserId","targetGroupId","targetBotId","enabled","showAddMember","onBack","onPressSearch","onPressAddMember","onPressMenu","onPressAvatar","onPressUrl","customMessageItemFactory","pannelActions","navigation","mediaViewerRef","messageToolboxRef","conversationId","isLoading","isLoadingConversation","conversation","handleBackDefault","goBack","handleMediaPress","items","index","current","show","messages","currentUserId","onLoadEarlier","isLoadingEarlier","hasMoreEarlier","getState","setCurrentConversation","undefined","resolvedShowAddMember","insets","keyboardVerticalOffset","select","android","bottom","default","handlePressUrl","url","handleMessageLongPress","message","rect","Page","flex","edges","children","style","styles","keyboardAvoiding","behavior","onMediaPress","onLongPress","isEmptyMessage","length","ref","displayName","create"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatDetail.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["memo","useCallback","useEffect","useMemo","useRef","Platform","StyleSheet","KeyboardAvoidingView","useSafeAreaInsets","KContainer","useNavigation","useChatMessages","usePinMessage","PinnedMessageBar","MediaViewerModal","useConversation","useConversationStore","ChatDetailHeader","ChatListLegend","ChatComposer","shouldShowAddMember","normalizeUrl","MessageToolboxOverlay","useGetConversationDetail","jsx","_jsx","jsxs","_jsxs","ChatDetail","targetConversationId","targetUserId","targetGroupId","targetBotId","enabled","showAddMember","onBack","onPressSearch","onPressAddMember","onPressMenu","onPressAvatar","onPressUrl","customMessageItemFactory","pannelActions","navigation","mediaViewerRef","messageToolboxRef","conversationId","isLoading","isLoadingConversation","conversation","handleBackDefault","goBack","handleMediaPress","items","index","current","show","messages","currentUserId","onLoadEarlier","isLoadingEarlier","hasMoreEarlier","pinnedMessages","pinMessage","unpinMessage","getState","setCurrentConversation","undefined","resolvedShowAddMember","insets","keyboardVerticalOffset","select","android","bottom","default","handlePressUrl","url","handleMessageLongPress","message","rect","Page","flex","edges","children","style","styles","keyboardAvoiding","behavior","onMediaPress","onLongPress","isEmptyMessage","length","ref","onPinMessage","onUnpinMessage","displayName","create"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/ChatDetail.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+
3
+ import { memo, useMemo } from 'react';
4
+ import { StyleSheet } from 'react-native';
5
+ import { KContainer, KImage, KLabel, KColors, KSpacingValue, KBadge } from '@droppii/libs';
6
+ import { trans } from "../../translation/index.js";
7
+ import { getMessagePreview, getPinnedMessagePreview } from "../../utils/messageUtils.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const PinnedMessageThumbnail = /*#__PURE__*/memo(({
10
+ message
11
+ }) => {
12
+ const preview = useMemo(() => getPinnedMessagePreview(message), [message]);
13
+ if (preview.mediaType === 'image' && preview.thumbnailUrl) {
14
+ return /*#__PURE__*/_jsx(KImage.Base, {
15
+ uri: preview.thumbnailUrl,
16
+ style: styles.thumbnail,
17
+ resizeMode: "cover"
18
+ });
19
+ }
20
+ if (preview.mediaType === 'video') {
21
+ return /*#__PURE__*/_jsxs(KContainer.View, {
22
+ style: styles.thumbnail,
23
+ children: [preview.thumbnailUrl && /*#__PURE__*/_jsx(KImage.Base, {
24
+ uri: preview.thumbnailUrl,
25
+ style: styles.thumbnail,
26
+ resizeMode: "cover"
27
+ }), /*#__PURE__*/_jsx(KContainer.View, {
28
+ style: styles.videoOverlay,
29
+ center: true,
30
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
31
+ name: "play-circle",
32
+ provider: "MaterialCommunityIcons",
33
+ size: 16,
34
+ color: KColors.white
35
+ })
36
+ })]
37
+ });
38
+ }
39
+ if (preview.mediaType === 'file' && preview.fileIcon) {
40
+ return /*#__PURE__*/_jsx(KContainer.View, {
41
+ marginL: "0.75rem",
42
+ children: /*#__PURE__*/_jsx(KImage.Base, {
43
+ uri: preview.fileIcon,
44
+ style: styles.fileIcon,
45
+ resizeMode: "contain"
46
+ })
47
+ });
48
+ }
49
+ return null;
50
+ });
51
+ PinnedMessageThumbnail.displayName = 'PinnedMessageThumbnail';
52
+ export const PinnedMessageBar = /*#__PURE__*/memo(({
53
+ messages,
54
+ currentUserId
55
+ }) => {
56
+ if (messages.length === 0) {
57
+ return null;
58
+ }
59
+ const latest = messages[0];
60
+ const sender = latest.sendID === currentUserId ? 'Bạn' : latest.senderNickname || '';
61
+ const remainingCount = messages.length - 1;
62
+ const {
63
+ subtitleKey
64
+ } = getPinnedMessagePreview(latest);
65
+ return /*#__PURE__*/_jsxs(KContainer.View, {
66
+ style: styles.container,
67
+ children: [/*#__PURE__*/_jsx(PinnedMessageThumbnail, {
68
+ message: latest
69
+ }), /*#__PURE__*/_jsxs(KContainer.View, {
70
+ row: true,
71
+ alignItems: true,
72
+ flex: true,
73
+ paddingR: "0.75rem",
74
+ children: [/*#__PURE__*/_jsxs(KContainer.View, {
75
+ style: styles.content,
76
+ children: [/*#__PURE__*/_jsx(KLabel.Text, {
77
+ typo: "TextNmMedium",
78
+ numberOfLines: 1,
79
+ children: getMessagePreview(latest)
80
+ }), /*#__PURE__*/_jsxs(KContainer.View, {
81
+ row: true,
82
+ alignItems: true,
83
+ paddingR: "0.75rem",
84
+ children: [/*#__PURE__*/_jsx(KImage.VectorIcons, {
85
+ name: "thumbtack-b",
86
+ size: 12,
87
+ color: KColors.primary.normal
88
+ }), /*#__PURE__*/_jsx(KLabel.Text, {
89
+ typo: "TextSmNormal",
90
+ color: KColors.gray.light,
91
+ numberOfLines: 1,
92
+ marginL: '0.25rem',
93
+ children: trans(subtitleKey, {
94
+ sender
95
+ })
96
+ })]
97
+ })]
98
+ }), remainingCount > 0 && /*#__PURE__*/_jsx(KBadge.BaseV2, {
99
+ badge: `+${remainingCount}`,
100
+ skipConvertBadge: true,
101
+ badgeSize: {
102
+ width: 26,
103
+ height: 20
104
+ },
105
+ wrapperLabelTextStyle: {
106
+ paddingHorizontal: 3
107
+ }
108
+ }), /*#__PURE__*/_jsx(KImage.VectorIcons, {
109
+ name: "angle-down-o",
110
+ size: 20,
111
+ color: KColors.gray.normal
112
+ })]
113
+ })]
114
+ });
115
+ });
116
+ PinnedMessageBar.displayName = 'PinnedMessageBar';
117
+ const styles = StyleSheet.create({
118
+ container: {
119
+ flexDirection: 'row',
120
+ alignItems: 'center',
121
+ backgroundColor: KColors.palette.gray.w25
122
+ },
123
+ content: {
124
+ flex: 1,
125
+ paddingRight: KSpacingValue['0.75rem'],
126
+ paddingLeft: KSpacingValue['0.75rem'],
127
+ paddingVertical: KSpacingValue['0.25rem']
128
+ },
129
+ thumbnail: {
130
+ width: 51,
131
+ height: 51,
132
+ overflow: 'hidden',
133
+ backgroundColor: '#000'
134
+ },
135
+ videoOverlay: {
136
+ position: 'absolute',
137
+ top: 0,
138
+ left: 0,
139
+ right: 0,
140
+ bottom: 0,
141
+ backgroundColor: 'rgba(0, 0, 0, 0.25)'
142
+ },
143
+ fileIcon: {
144
+ width: 24,
145
+ height: 24
146
+ },
147
+ badge: {
148
+ minWidth: 32,
149
+ height: 22,
150
+ paddingHorizontal: KSpacingValue['0.25rem'],
151
+ borderRadius: KSpacingValue['1rem'],
152
+ alignItems: 'center',
153
+ justifyContent: 'center',
154
+ backgroundColor: KColors.primary.normal,
155
+ marginRight: KSpacingValue['0.75rem']
156
+ }
157
+ });
158
+ //# sourceMappingURL=PinnedMessageBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useMemo","StyleSheet","KContainer","KImage","KLabel","KColors","KSpacingValue","KBadge","trans","getMessagePreview","getPinnedMessagePreview","jsx","_jsx","jsxs","_jsxs","PinnedMessageThumbnail","message","preview","mediaType","thumbnailUrl","Base","uri","style","styles","thumbnail","resizeMode","View","children","videoOverlay","center","VectorIcons","name","provider","size","color","white","fileIcon","marginL","displayName","PinnedMessageBar","messages","currentUserId","length","latest","sender","sendID","senderNickname","remainingCount","subtitleKey","container","row","alignItems","flex","paddingR","content","Text","typo","numberOfLines","primary","normal","gray","light","BaseV2","badge","skipConvertBadge","badgeSize","width","height","wrapperLabelTextStyle","paddingHorizontal","create","flexDirection","backgroundColor","palette","w25","paddingRight","paddingLeft","paddingVertical","overflow","position","top","left","right","bottom","minWidth","borderRadius","justifyContent","marginRight"],"sourceRoot":"../../../../src","sources":["screens/chat-detail/PinnedMessageBar.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
- import { KContainer } from '@droppii/libs';
3
+ import { KContainer, KImage, KColors } from '@droppii/libs';
4
+ import { StyleSheet } from 'react-native';
4
5
  import { memo, useMemo } from 'react';
5
6
  import { MessageType } from '@droppii/openim-rn-client-sdk';
6
7
  import { Gesture, GestureDetector } from 'react-native-gesture-handler';
@@ -55,19 +56,55 @@ export const LegendChatMessage = /*#__PURE__*/memo(({
55
56
  message: message,
56
57
  isOutgoing: isOutgoing,
57
58
  onRetry: onRetry
58
- }), /*#__PURE__*/_jsx(LongPressWrapper, {
59
- onLongPress: onLongPress,
60
- children: /*#__PURE__*/_jsx(MessageComponent, {
61
- message: message,
62
- isOutgoing: isOutgoing,
63
- createdAtTime: createdAtTime,
64
- onMediaPress: hasMediaPress ? onMediaPress : undefined,
65
- onPressUrl: hasUrlPress ? onPressUrl : undefined
66
- })
59
+ }), /*#__PURE__*/_jsxs(KContainer.View, {
60
+ style: styles.content,
61
+ children: [/*#__PURE__*/_jsx(LongPressWrapper, {
62
+ onLongPress: onLongPress,
63
+ children: /*#__PURE__*/_jsx(MessageComponent, {
64
+ message: message,
65
+ isOutgoing: isOutgoing,
66
+ createdAtTime: createdAtTime,
67
+ onMediaPress: hasMediaPress ? onMediaPress : undefined,
68
+ onPressUrl: hasUrlPress ? onPressUrl : undefined
69
+ })
70
+ }), message?.isPinned && /*#__PURE__*/_jsx(KContainer.View, {
71
+ style: styles.pinBadge,
72
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
73
+ name: "thumbtack-b",
74
+ size: 12,
75
+ color: KColors.primary.normal
76
+ })
77
+ })]
67
78
  })]
68
79
  });
69
80
  });
70
81
  LegendChatMessage.displayName = 'LegendChatMessage';
82
+ const styles = StyleSheet.create({
83
+ content: {
84
+ position: 'relative'
85
+ },
86
+ pinBadge: {
87
+ position: 'absolute',
88
+ top: -8,
89
+ right: -8,
90
+ width: 24,
91
+ height: 20,
92
+ borderRadius: 100,
93
+ alignItems: 'center',
94
+ justifyContent: 'center',
95
+ backgroundColor: KColors.pageBackground,
96
+ shadowColor: KColors.black,
97
+ shadowOffset: {
98
+ width: 0,
99
+ height: 1
100
+ },
101
+ shadowOpacity: 0.15,
102
+ shadowRadius: 2,
103
+ elevation: 3,
104
+ borderWidth: 1,
105
+ borderColor: KColors.white
106
+ }
107
+ });
71
108
  const LongPressWrapper = ({
72
109
  children,
73
110
  onLongPress
@@ -1 +1 @@
1
- {"version":3,"names":["KContainer","memo","useMemo","MessageType","Gesture","GestureDetector","runOnJS","TextMessage","ImageMessage","VideoMessage","FileMessage","LinkMessage","MergedMessage","RevokedMessage","MessageStatusIndicator","messageStyles","jsx","_jsx","jsxs","_jsxs","MERGED_MESSAGE_TYPE","messageComponentMap","AtTextMessage","QuoteMessage","UrlTextMessage","PictureMessage","RevokeMessage","MEDIA_TYPES","LegendChatMessage","message","isOutgoing","createdAtTime","onMediaPress","onPressUrl","onRetry","onLongPress","customMessageItemFactory","customNode","MessageComponent","contentType","hasMediaPress","includes","hasUrlPress","View","style","wrapper","row","alignItems","children","LongPressWrapper","undefined","displayName","longPressGesture","LongPress","onStart","gesture"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/legend/LegendChatMessage.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["KContainer","KImage","KColors","StyleSheet","memo","useMemo","MessageType","Gesture","GestureDetector","runOnJS","TextMessage","ImageMessage","VideoMessage","FileMessage","LinkMessage","MergedMessage","RevokedMessage","MessageStatusIndicator","messageStyles","jsx","_jsx","jsxs","_jsxs","MERGED_MESSAGE_TYPE","messageComponentMap","AtTextMessage","QuoteMessage","UrlTextMessage","PictureMessage","RevokeMessage","MEDIA_TYPES","LegendChatMessage","message","isOutgoing","createdAtTime","onMediaPress","onPressUrl","onRetry","onLongPress","customMessageItemFactory","customNode","MessageComponent","contentType","hasMediaPress","includes","hasUrlPress","View","style","wrapper","row","alignItems","children","styles","content","LongPressWrapper","undefined","isPinned","pinBadge","VectorIcons","name","size","color","primary","normal","displayName","create","position","top","right","width","height","borderRadius","justifyContent","backgroundColor","pageBackground","shadowColor","black","shadowOffset","shadowOpacity","shadowRadius","elevation","borderWidth","borderColor","white","longPressGesture","LongPress","onStart","gesture"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/legend/LegendChatMessage.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,MAAM,EAAEC,OAAO,QAAQ,eAAe;AAC3D,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,IAAI,EAAEC,OAAO,QAAQ,OAAO;AAErC,SAASC,WAAW,QAAQ,+BAA+B;AAE3D,SAASC,OAAO,EAAEC,eAAe,QAAQ,8BAA8B;AACvE,SAASC,OAAO,QAAQ,yBAAyB;AAGjD,SAASC,WAAW,QAAQ,mDAA0C;AACtE,SAASC,YAAY,QAAQ,oDAA2C;AACxE,SAASC,YAAY,QAAQ,oDAA2C;AACxE,SAASC,WAAW,QAAQ,mDAA0C;AACtE,SAASC,WAAW,QAAQ,mDAA0C;AACtE,SAASC,aAAa,QAAQ,qDAA4C;AAC1E,SAASC,cAAc,QAAQ,sDAA6C;AAC5E,SAASC,sBAAsB,QAAQ,wDAAqD;AAE5F,SAASC,aAAa,QAAQ,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAkB/C;AACA,MAAMC,mBAAmB,GAAG,GAAG,CAAC,CAAC;;AAEjC,MAAMC,mBAEL,GAAG;EACF,CAAClB,WAAW,CAACI,WAAW,GAAGA,WAAW;EACtC,CAACJ,WAAW,CAACmB,aAAa,GAAGf,WAAW;EACxC,CAACJ,WAAW,CAACoB,YAAY,GAAGhB,WAAW;EACvC,CAACJ,WAAW,CAACqB,cAAc,GAAGb,WAAW;EACzC,CAACR,WAAW,CAACsB,cAAc,GAAGjB,YAAY;EAC1C,CAACL,WAAW,CAACM,YAAY,GAAGA,YAAY;EACxC,CAACN,WAAW,CAACO,WAAW,GAAGA,WAAW;EACtC,CAACU,mBAAmB,GAAGR,aAAa;EACpC,CAACT,WAAW,CAACuB,aAAa,GAAGb;AAC/B,CAAC;AAED,MAAMc,WAAqB,GAAG,CAC5BxB,WAAW,CAACsB,cAAc,EAC1BtB,WAAW,CAACM,YAAY,EACxBW,mBAAmB,CACpB;AAED,OAAO,MAAMQ,iBAAiB,gBAAG3B,IAAI,CACnC,CAAC;EACC4B,OAAO;EACPC,UAAU;EACVC,aAAa;EACbC,YAAY;EACZC,UAAU;EACVC,OAAO;EACPC,WAAW;EACXC;AACsB,CAAC,KAAK;EAC5B,MAAMC,UAAU,GAAGD,wBAAwB,GAAGP,OAAO,CAAC;EAEtD,IAAIQ,UAAU,EAAE;IACd,OAAOA,UAAU;EACnB;EAEA,MAAMC,gBAA6C,GACjDjB,mBAAmB,CAACQ,OAAO,EAAEU,WAAW,CAAC,IAAIhC,WAAW;EAE1D,MAAMiC,aAAa,GACjBb,WAAW,CAACc,QAAQ,CAACZ,OAAO,EAAEU,WAAW,CAAC,IAAIP,YAAY;EAC5D,MAAMU,WAAW,GACfT,UAAU,IAAIJ,OAAO,EAAEU,WAAW,KAAKpC,WAAW,CAACqB,cAAc;EAEnE,oBACEL,KAAA,CAACtB,UAAU,CAAC8C,IAAI;IAACC,KAAK,EAAE7B,aAAa,CAAC8B,OAAQ;IAACC,GAAG;IAACC,UAAU;IAAAC,QAAA,gBAC3D/B,IAAA,CAACH,sBAAsB;MACrBe,OAAO,EAAEA,OAAQ;MACjBC,UAAU,EAAEA,UAAW;MACvBI,OAAO,EAAEA;IAAQ,CAClB,CAAC,eACFf,KAAA,CAACtB,UAAU,CAAC8C,IAAI;MAACC,KAAK,EAAEK,MAAM,CAACC,OAAQ;MAAAF,QAAA,gBACrC/B,IAAA,CAACkC,gBAAgB;QAAChB,WAAW,EAAEA,WAAY;QAAAa,QAAA,eACzC/B,IAAA,CAACqB,gBAAgB;UACfT,OAAO,EAAEA,OAAQ;UACjBC,UAAU,EAAEA,UAAW;UACvBC,aAAa,EAAEA,aAAc;UAC7BC,YAAY,EAAEQ,aAAa,GAAGR,YAAY,GAAGoB,SAAU;UACvDnB,UAAU,EAAES,WAAW,GAAGT,UAAU,GAAGmB;QAAU,CAClD;MAAC,CACc,CAAC,EAElBvB,OAAO,EAAEwB,QAAQ,iBAChBpC,IAAA,CAACpB,UAAU,CAAC8C,IAAI;QAACC,KAAK,EAAEK,MAAM,CAACK,QAAS;QAAAN,QAAA,eACtC/B,IAAA,CAACnB,MAAM,CAACyD,WAAW;UACjBC,IAAI,EAAC,aAAa;UAClBC,IAAI,EAAE,EAAG;UACTC,KAAK,EAAE3D,OAAO,CAAC4D,OAAO,CAACC;QAAO,CAC/B;MAAC,CACa,CAClB;IAAA,CACc,CAAC;EAAA,CACH,CAAC;AAEtB,CACF,CAAC;AAEDhC,iBAAiB,CAACiC,WAAW,GAAG,mBAAmB;AAEnD,MAAMZ,MAAM,GAAGjD,UAAU,CAAC8D,MAAM,CAAC;EAC/BZ,OAAO,EAAE;IACPa,QAAQ,EAAE;EACZ,CAAC;EACDT,QAAQ,EAAE;IACRS,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC,CAAC;IACPC,KAAK,EAAE,CAAC,CAAC;IACTC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,YAAY,EAAE,GAAG;IACjBrB,UAAU,EAAE,QAAQ;IACpBsB,cAAc,EAAE,QAAQ;IACxBC,eAAe,EAAEvE,OAAO,CAACwE,cAAc;IACvCC,WAAW,EAAEzE,OAAO,CAAC0E,KAAK;IAC1BC,YAAY,EAAE;MAAER,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCQ,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE,CAAC;IACZC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAEhF,OAAO,CAACiF;EACvB;AACF,CAAC,CAAC;AAEF,MAAM7B,gBAAgB,GAAGA,CAAC;EACxBH,QAAQ;EACRb;AAC+C,CAAC,KAAK;EACrD,MAAM8C,gBAAgB,GAAG/E,OAAO,CAC9B,MACEiC,WAAW,GACP/B,OAAO,CAAC8E,SAAS,CAAC,CAAC,CAACC,OAAO,CAAC,MAAM;IAChC7E,OAAO,CAAC6B,WAAW,CAAC,CAAC,CAAC;EACxB,CAAC,CAAC,GACF,IAAI,EACV,CAACA,WAAW,CACd,CAAC;EAED,IAAI,CAAC8C,gBAAgB,EAAE;IACrB,OAAOjC,QAAQ;EACjB;EAEA,oBACE/B,IAAA,CAACZ,eAAe;IAAC+E,OAAO,EAAEH,gBAAiB;IAAAjC,QAAA,eACzC/B,IAAA,CAACpB,UAAU,CAAC8C,IAAI;MAAAK,QAAA,EAAEA;IAAQ,CAAkB;EAAC,CAC9B,CAAC;AAEtB,CAAC","ignoreList":[]}
@@ -9,10 +9,14 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  export const MessageToolboxMenu = /*#__PURE__*/memo(({
10
10
  showCopyMessage,
11
11
  showCopyMessageLink,
12
+ showPinMessage,
13
+ showUnpinMessage,
12
14
  showRetryMessage,
13
15
  showRevokeMessage,
14
16
  onCopyMessage,
15
17
  onCopyMessageLink,
18
+ onPinMessage,
19
+ onUnpinMessage,
16
20
  onRetryMessage,
17
21
  onRevokeMessage
18
22
  }) => {
@@ -30,6 +34,18 @@ export const MessageToolboxMenu = /*#__PURE__*/memo(({
30
34
  label: trans('chat:copy_message_link'),
31
35
  visible: showCopyMessageLink,
32
36
  onPress: onCopyMessageLink
37
+ }), /*#__PURE__*/_jsx(MessageToolboxItem, {
38
+ icon: "thumbtack-o",
39
+ color: KColors.gray.dark,
40
+ label: trans('chat:pin_message'),
41
+ visible: showPinMessage,
42
+ onPress: onPinMessage
43
+ }), /*#__PURE__*/_jsx(MessageToolboxItem, {
44
+ icon: "thumbtack-off-o",
45
+ color: KColors.gray.dark,
46
+ label: trans('chat:unpin_message'),
47
+ visible: showUnpinMessage,
48
+ onPress: onUnpinMessage
33
49
  }), /*#__PURE__*/_jsx(MessageToolboxItem, {
34
50
  icon: "arrow-reload-o",
35
51
  color: KColors.danger.normal,
@@ -1 +1 @@
1
- {"version":3,"names":["memo","StyleSheet","KContainer","KColors","KSpacingValue","trans","MessageToolboxItem","jsx","_jsx","jsxs","_jsxs","MessageToolboxMenu","showCopyMessage","showCopyMessageLink","showRetryMessage","showRevokeMessage","onCopyMessage","onCopyMessageLink","onRetryMessage","onRevokeMessage","View","style","styles","card","children","icon","color","gray","dark","label","visible","onPress","danger","normal","displayName","create","minWidth","paddingVertical","borderRadius","backgroundColor","white","shadowColor","black","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","row","flexDirection","alignItems","paddingHorizontal"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/messageToolbox/MessageToolboxMenu.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,UAAU,EAAEC,OAAO,EAAEC,aAAa,QAAQ,eAAe;AAClE,SAASC,KAAK,QAAQ,+BAAsB;AAC5C,SAASC,kBAAkB,QAAQ,yBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAa1D,OAAO,MAAMC,kBAAkB,gBAAGX,IAAI,CACpC,CAAC;EACCY,eAAe;EACfC,mBAAmB;EACnBC,gBAAgB;EAChBC,iBAAiB;EACjBC,aAAa;EACbC,iBAAiB;EACjBC,cAAc;EACdC;AACuB,CAAC,KAAK;EAC7B,oBACET,KAAA,CAACR,UAAU,CAACkB,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAC,QAAA,gBAClChB,IAAA,CAACF,kBAAkB;MACjBmB,IAAI,EAAC,QAAQ;MACbC,KAAK,EAAEvB,OAAO,CAACwB,IAAI,CAACC,IAAK;MACzBC,KAAK,EAAExB,KAAK,CAAC,mBAAmB,CAAE;MAClCyB,OAAO,EAAElB,eAAgB;MACzBmB,OAAO,EAAEf;IAAc,CACxB,CAAC,eAEFR,IAAA,CAACF,kBAAkB;MACjBmB,IAAI,EAAC,QAAQ;MACbC,KAAK,EAAEvB,OAAO,CAACwB,IAAI,CAACC,IAAK;MACzBC,KAAK,EAAExB,KAAK,CAAC,wBAAwB,CAAE;MACvCyB,OAAO,EAAEjB,mBAAoB;MAC7BkB,OAAO,EAAEd;IAAkB,CAC5B,CAAC,eAEFT,IAAA,CAACF,kBAAkB;MACjBmB,IAAI,EAAC,gBAAgB;MACrBC,KAAK,EAAEvB,OAAO,CAAC6B,MAAM,CAACC,MAAO;MAC7BJ,KAAK,EAAExB,KAAK,CAAC,oBAAoB,CAAE;MACnCyB,OAAO,EAAEhB,gBAAiB;MAC1BiB,OAAO,EAAEb;IAAe,CACzB,CAAC,eAEFV,IAAA,CAACF,kBAAkB;MACjBmB,IAAI,EAAC,eAAe;MACpBC,KAAK,EAAEvB,OAAO,CAAC6B,MAAM,CAACC,MAAO;MAC7BJ,KAAK,EAAExB,KAAK,CAAC,qBAAqB,CAAE;MACpCyB,OAAO,EAAEf,iBAAkB;MAC3BgB,OAAO,EAAEZ;IAAgB,CAC1B,CAAC;EAAA,CACa,CAAC;AAEtB,CACF,CAAC;AAEDR,kBAAkB,CAACuB,WAAW,GAAG,oBAAoB;AAErD,MAAMZ,MAAM,GAAGrB,UAAU,CAACkC,MAAM,CAAC;EAC/BZ,IAAI,EAAE;IACJa,QAAQ,EAAE,GAAG;IACbC,eAAe,EAAEjC,aAAa,CAAC,QAAQ,CAAC;IACxCkC,YAAY,EAAElC,aAAa,CAAC,MAAM,CAAC;IACnCmC,eAAe,EAAEpC,OAAO,CAACqC,KAAK;IAC9BC,WAAW,EAAEtC,OAAO,CAACuC,KAAK;IAC1BC,YAAY,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCC,aAAa,EAAE,GAAG;IAClBC,YAAY,EAAE,EAAE;IAChBC,SAAS,EAAE;EACb,CAAC;EACDC,GAAG,EAAE;IACHC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,iBAAiB,EAAEhD,aAAa,CAAC,MAAM,CAAC;IACxCiC,eAAe,EAAEjC,aAAa,CAAC,QAAQ;EACzC;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["memo","StyleSheet","KContainer","KColors","KSpacingValue","trans","MessageToolboxItem","jsx","_jsx","jsxs","_jsxs","MessageToolboxMenu","showCopyMessage","showCopyMessageLink","showPinMessage","showUnpinMessage","showRetryMessage","showRevokeMessage","onCopyMessage","onCopyMessageLink","onPinMessage","onUnpinMessage","onRetryMessage","onRevokeMessage","View","style","styles","card","children","icon","color","gray","dark","label","visible","onPress","danger","normal","displayName","create","minWidth","paddingVertical","borderRadius","backgroundColor","white","shadowColor","black","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","row","flexDirection","alignItems","paddingHorizontal"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/messageToolbox/MessageToolboxMenu.tsx"],"mappings":"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","ignoreList":[]}