@droppii-org/chat-mobile 0.2.28 → 0.2.29

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 (34) hide show
  1. package/lib/module/components/ThreadCard/MuteThread.js +86 -0
  2. package/lib/module/components/ThreadCard/MuteThread.js.map +1 -0
  3. package/lib/module/components/ThreadCard/ThreadCard.js +93 -73
  4. package/lib/module/components/ThreadCard/ThreadCard.js.map +1 -1
  5. package/lib/module/config/uploadLimits.js +1 -1
  6. package/lib/module/hooks/useMuteConversation.js +34 -0
  7. package/lib/module/hooks/useMuteConversation.js.map +1 -0
  8. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxMenu.js +3 -4
  9. package/lib/module/screens/chat-detail/messageToolbox/MessageToolboxMenu.js.map +1 -1
  10. package/lib/module/screens/chat-detail/messageToolbox/messageToolbox.utils.js +5 -3
  11. package/lib/module/screens/chat-detail/messageToolbox/messageToolbox.utils.js.map +1 -1
  12. package/lib/module/translation/resources/i18n.js +8 -0
  13. package/lib/module/translation/resources/i18n.js.map +1 -1
  14. package/lib/module/utils/device.js +1 -1
  15. package/lib/module/utils/device.js.map +1 -1
  16. package/lib/typescript/src/components/ThreadCard/MuteThread.d.ts +10 -0
  17. package/lib/typescript/src/components/ThreadCard/MuteThread.d.ts.map +1 -0
  18. package/lib/typescript/src/components/ThreadCard/ThreadCard.d.ts.map +1 -1
  19. package/lib/typescript/src/hooks/useMuteConversation.d.ts +6 -0
  20. package/lib/typescript/src/hooks/useMuteConversation.d.ts.map +1 -0
  21. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxMenu.d.ts +1 -1
  22. package/lib/typescript/src/screens/chat-detail/messageToolbox/MessageToolboxMenu.d.ts.map +1 -1
  23. package/lib/typescript/src/screens/chat-detail/messageToolbox/messageToolbox.utils.d.ts +0 -2
  24. package/lib/typescript/src/screens/chat-detail/messageToolbox/messageToolbox.utils.d.ts.map +1 -1
  25. package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
  26. package/package.json +1 -1
  27. package/src/components/ThreadCard/MuteThread.tsx +100 -0
  28. package/src/components/ThreadCard/ThreadCard.tsx +104 -71
  29. package/src/config/uploadLimits.ts +1 -1
  30. package/src/hooks/useMuteConversation.ts +44 -0
  31. package/src/screens/chat-detail/messageToolbox/MessageToolboxMenu.tsx +2 -2
  32. package/src/screens/chat-detail/messageToolbox/messageToolbox.utils.ts +4 -4
  33. package/src/translation/resources/i18n.ts +9 -0
  34. package/src/utils/device.ts +1 -1
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ import { memo, useCallback } from 'react';
4
+ import { KContainer, KImage, KLabel, KColors } from '@droppii/libs';
5
+ import { useMuteConversation } from "../../hooks/useMuteConversation.js";
6
+ import { trans } from "../../translation/index.js";
7
+ import { UIUtils } from "../../utils/UIUtils.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ export const MuteThread = /*#__PURE__*/memo(({
10
+ isMuted,
11
+ conversation,
12
+ swipeableMethods
13
+ }) => {
14
+ const {
15
+ muteConversation,
16
+ unmuteConversation
17
+ } = useMuteConversation();
18
+ const handleMutePress = useCallback(() => {
19
+ UIUtils.alert.open({
20
+ title: trans('chat:mute_confirm_title'),
21
+ message: trans('chat:mute_confirm_desc'),
22
+ primaryIndex: 0,
23
+ buttons: [{
24
+ label: trans('chat:mute_confirm_primary'),
25
+ kind: 'danger',
26
+ onPress: async () => {
27
+ try {
28
+ await muteConversation(conversation);
29
+ UIUtils.toast.open({
30
+ title: trans('chat:mute_toast_success'),
31
+ theme: 'success'
32
+ });
33
+ } catch {
34
+ UIUtils.toast.open({
35
+ title: trans('chat:generic_error'),
36
+ theme: 'error'
37
+ });
38
+ } finally {
39
+ swipeableMethods.close();
40
+ }
41
+ }
42
+ }, {
43
+ label: trans('chat:mute_confirm_secondary'),
44
+ kind: 'gray',
45
+ onPress: () => swipeableMethods.close()
46
+ }]
47
+ });
48
+ }, [swipeableMethods, conversation, muteConversation]);
49
+ const handleUnmutePress = useCallback(async () => {
50
+ try {
51
+ await unmuteConversation(conversation);
52
+ UIUtils.toast.open({
53
+ title: trans('chat:unmute_toast_success'),
54
+ theme: 'success'
55
+ });
56
+ } catch {
57
+ UIUtils.toast.open({
58
+ title: trans('chat:generic_error'),
59
+ theme: 'error'
60
+ });
61
+ } finally {
62
+ swipeableMethods.close();
63
+ }
64
+ }, [swipeableMethods, conversation, unmuteConversation]);
65
+ return /*#__PURE__*/_jsxs(KContainer.Touchable, {
66
+ width: 76,
67
+ alignItems: "center",
68
+ justifyContent: "center",
69
+ background: isMuted ? KColors.palette.gray.w400 : KColors.palette.danger.w400,
70
+ onPress: isMuted ? handleUnmutePress : handleMutePress,
71
+ children: [/*#__PURE__*/_jsx(KImage.VectorIcons, {
72
+ name: isMuted ? 'bell-o' : 'bell-off-o',
73
+ provider: "DroppiiNew",
74
+ size: 20,
75
+ color: KColors.white
76
+ }), /*#__PURE__*/_jsx(KLabel.Text, {
77
+ typo: "Text2XsMedium",
78
+ color: KColors.white,
79
+ marginT: "0.25rem",
80
+ textAlign: "center",
81
+ children: isMuted ? trans('chat:unmute_action') : trans('chat:mute_action')
82
+ })]
83
+ });
84
+ });
85
+ MuteThread.displayName = 'MuteThread';
86
+ //# sourceMappingURL=MuteThread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["memo","useCallback","KContainer","KImage","KLabel","KColors","useMuteConversation","trans","UIUtils","jsx","_jsx","jsxs","_jsxs","MuteThread","isMuted","conversation","swipeableMethods","muteConversation","unmuteConversation","handleMutePress","alert","open","title","message","primaryIndex","buttons","label","kind","onPress","toast","theme","close","handleUnmutePress","Touchable","width","alignItems","justifyContent","background","palette","gray","w400","danger","children","VectorIcons","name","provider","size","color","white","Text","typo","marginT","textAlign","displayName"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/MuteThread.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { memo, useCallback, useMemo } from 'react';
4
+ import ReanimatedSwipeable from 'react-native-gesture-handler/ReanimatedSwipeable';
4
5
  import { KContainer, KImage, KLabel, KColors } from '@droppii/libs';
5
6
  import { AvatarSection } from "./AvatarSection.js";
6
7
  import { NamePrefixIcon } from "./NamePrefixIcon.js";
@@ -8,22 +9,25 @@ import { UnreadBadge } from "./UnreadBadge.js";
8
9
  import { formatTimestamp } from "../../utils/dateTimeUtils.js";
9
10
  import { getLastMessageText } from "../../utils/messageUtils.js";
10
11
  import { useConversation, useUserStore } from "../../store/index.js";
11
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
+ import { MessageReceiveOptType } from '@droppii/openim-rn-client-sdk';
13
+ import { MuteThread } from "./MuteThread.js";
14
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
12
15
  const ThreadCard = /*#__PURE__*/memo(({
13
16
  item,
14
17
  onPress
15
18
  }) => {
16
- const consversation = useConversation(item);
19
+ const conversation = useConversation(item);
17
20
  const {
18
21
  peerType,
19
22
  showName,
20
23
  faceURL,
21
24
  unreadCount = 0,
22
- recvMsgOpt,
25
+ recvMsgOpt = MessageReceiveOptType.Normal,
23
26
  isPinned,
27
+ isNotInGroup,
24
28
  latestMsgSendTime,
25
29
  latestMsg
26
- } = consversation || {};
30
+ } = conversation || {};
27
31
  const latestMsgData = useMemo(() => {
28
32
  let result = null;
29
33
  try {
@@ -35,87 +39,103 @@ const ThreadCard = /*#__PURE__*/memo(({
35
39
  }, [latestMsg]);
36
40
  const fullName = showName ?? '';
37
41
  const hasUnread = unreadCount > 0;
38
- const isMuted = (recvMsgOpt ?? 0) !== 0;
42
+ const isMuted = recvMsgOpt !== MessageReceiveOptType.Normal;
39
43
  const timestamp = formatTimestamp(latestMsgSendTime ?? latestMsgData?.sendTime ?? null);
40
44
  const currentUserId = useUserStore(s => s.user?.userID);
41
- const lastMessageText = getLastMessageText(latestMsgData, currentUserId, consversation);
45
+ const lastMessageText = getLastMessageText(latestMsgData, currentUserId, conversation);
42
46
  const handlePress = useCallback(event => {
43
47
  onPress?.({
44
48
  item,
45
49
  event
46
50
  });
47
51
  }, [item, onPress]);
48
- return /*#__PURE__*/_jsxs(KContainer.Touchable, {
49
- row: true,
50
- alignItems: "center",
51
- paddingH: "0.75rem",
52
- paddingV: "0.75rem",
53
- onPress: handlePress,
54
- activeOpacity: 0.7,
55
- children: [/*#__PURE__*/_jsx(AvatarSection, {
56
- avatar: faceURL ?? null,
57
- fullName: fullName,
58
- peerType: peerType
59
- }), /*#__PURE__*/_jsxs(KContainer.View, {
60
- flex: true,
61
- marginL: "0.5rem",
62
- paddingB: 2,
63
- children: [/*#__PURE__*/_jsxs(KContainer.View, {
64
- row: true,
65
- alignItems: "center",
66
- children: [/*#__PURE__*/_jsx(NamePrefixIcon, {
67
- peerType: peerType
68
- }), /*#__PURE__*/_jsx(KLabel.Text, {
69
- typo: hasUnread ? 'TextMdBold' : 'TextMdNormal',
70
- numberOfLines: 1,
71
- color: KColors.black,
72
- flex: true,
73
- children: fullName
74
- }), /*#__PURE__*/_jsx(KContainer.VisibleView, {
75
- visible: isMuted,
76
- children: /*#__PURE__*/_jsx(KContainer.View, {
77
- marginL: "0.25rem",
78
- children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
79
- name: "bell-off",
80
- provider: "MaterialCommunityIcons",
81
- size: 16,
82
- color: KColors.palette.gray.w500
83
- })
84
- })
85
- }), /*#__PURE__*/_jsx(KContainer.VisibleView, {
86
- visible: Boolean(timestamp),
87
- children: /*#__PURE__*/_jsx(KLabel.Text, {
88
- typo: "TextXsNormal",
89
- color: KColors.palette.gray.w400,
90
- marginL: "0.25rem",
91
- children: timestamp
92
- })
93
- })]
52
+ const renderRightActions = useCallback((_progress, _translation, swipeableMethods) => /*#__PURE__*/_jsx(_Fragment, {
53
+ children: /*#__PURE__*/_jsx(KContainer.VisibleView, {
54
+ visible: !isNotInGroup,
55
+ children: /*#__PURE__*/_jsx(MuteThread, {
56
+ conversation: conversation,
57
+ isMuted: isMuted,
58
+ swipeableMethods: swipeableMethods
59
+ })
60
+ })
61
+ }), [isMuted, conversation, isNotInGroup]);
62
+ return /*#__PURE__*/_jsx(ReanimatedSwipeable, {
63
+ friction: 2,
64
+ rightThreshold: 40,
65
+ renderRightActions: renderRightActions,
66
+ children: /*#__PURE__*/_jsxs(KContainer.Touchable, {
67
+ row: true,
68
+ alignItems: "center",
69
+ paddingH: "0.75rem",
70
+ paddingV: "0.75rem",
71
+ onPress: handlePress,
72
+ activeOpacity: 1,
73
+ background: KColors.white,
74
+ children: [/*#__PURE__*/_jsx(AvatarSection, {
75
+ avatar: faceURL ?? null,
76
+ fullName: fullName,
77
+ peerType: peerType
94
78
  }), /*#__PURE__*/_jsxs(KContainer.View, {
95
- row: true,
96
- alignItems: "center",
97
- children: [/*#__PURE__*/_jsx(KLabel.Text, {
98
- typo: hasUnread ? 'TextNmMedium' : 'TextNmNormal',
99
- color: hasUnread ? KColors.black : KColors.gray.normal,
100
- numberOfLines: 1,
101
- flex: true,
102
- children: lastMessageText
103
- }), /*#__PURE__*/_jsx(KContainer.VisibleView, {
104
- visible: Boolean(isPinned),
105
- children: /*#__PURE__*/_jsx(KContainer.View, {
106
- marginL: "0.5rem",
107
- children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
108
- name: "pin-outline",
109
- provider: "MaterialCommunityIcons",
110
- size: 14,
111
- color: KColors.palette.gray.w400
79
+ flex: true,
80
+ marginL: "0.5rem",
81
+ paddingB: 2,
82
+ children: [/*#__PURE__*/_jsxs(KContainer.View, {
83
+ row: true,
84
+ alignItems: "center",
85
+ children: [/*#__PURE__*/_jsx(NamePrefixIcon, {
86
+ peerType: peerType
87
+ }), /*#__PURE__*/_jsx(KLabel.Text, {
88
+ typo: hasUnread ? 'TextMdBold' : 'TextMdNormal',
89
+ numberOfLines: 1,
90
+ color: KColors.black,
91
+ flex: true,
92
+ children: fullName
93
+ }), /*#__PURE__*/_jsx(KContainer.VisibleView, {
94
+ visible: isMuted,
95
+ children: /*#__PURE__*/_jsx(KContainer.View, {
96
+ marginL: "0.25rem",
97
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
98
+ name: "bell-off",
99
+ provider: "MaterialCommunityIcons",
100
+ size: 16,
101
+ color: KColors.palette.gray.w500
102
+ })
103
+ })
104
+ }), /*#__PURE__*/_jsx(KContainer.VisibleView, {
105
+ visible: Boolean(timestamp),
106
+ children: /*#__PURE__*/_jsx(KLabel.Text, {
107
+ typo: "TextXsNormal",
108
+ color: KColors.palette.gray.w400,
109
+ marginL: "0.25rem",
110
+ children: timestamp
111
+ })
112
+ })]
113
+ }), /*#__PURE__*/_jsxs(KContainer.View, {
114
+ row: true,
115
+ alignItems: "center",
116
+ children: [/*#__PURE__*/_jsx(KLabel.Text, {
117
+ typo: hasUnread ? 'TextNmMedium' : 'TextNmNormal',
118
+ color: hasUnread ? KColors.black : KColors.gray.normal,
119
+ numberOfLines: 1,
120
+ flex: true,
121
+ children: lastMessageText
122
+ }), /*#__PURE__*/_jsx(KContainer.VisibleView, {
123
+ visible: Boolean(isPinned),
124
+ children: /*#__PURE__*/_jsx(KContainer.View, {
125
+ marginL: "0.5rem",
126
+ children: /*#__PURE__*/_jsx(KImage.VectorIcons, {
127
+ name: "pin-outline",
128
+ provider: "MaterialCommunityIcons",
129
+ size: 14,
130
+ color: KColors.palette.gray.w400
131
+ })
112
132
  })
113
- })
114
- }), /*#__PURE__*/_jsx(UnreadBadge, {
115
- count: unreadCount
133
+ }), /*#__PURE__*/_jsx(UnreadBadge, {
134
+ count: unreadCount
135
+ })]
116
136
  })]
117
137
  })]
118
- })]
138
+ })
119
139
  });
120
140
  });
121
141
  ThreadCard.displayName = 'ThreadCard';
@@ -1 +1 @@
1
- {"version":3,"names":["memo","useCallback","useMemo","KContainer","KImage","KLabel","KColors","AvatarSection","NamePrefixIcon","UnreadBadge","formatTimestamp","getLastMessageText","useConversation","useUserStore","jsx","_jsx","jsxs","_jsxs","ThreadCard","item","onPress","consversation","peerType","showName","faceURL","unreadCount","recvMsgOpt","isPinned","latestMsgSendTime","latestMsg","latestMsgData","result","JSON","parse","error","console","fullName","hasUnread","isMuted","timestamp","sendTime","currentUserId","s","user","userID","lastMessageText","handlePress","event","Touchable","row","alignItems","paddingH","paddingV","activeOpacity","children","avatar","View","flex","marginL","paddingB","Text","typo","numberOfLines","color","black","VisibleView","visible","VectorIcons","name","provider","size","palette","gray","w500","Boolean","w400","normal","count","displayName"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/ThreadCard.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["memo","useCallback","useMemo","ReanimatedSwipeable","KContainer","KImage","KLabel","KColors","AvatarSection","NamePrefixIcon","UnreadBadge","formatTimestamp","getLastMessageText","useConversation","useUserStore","MessageReceiveOptType","MuteThread","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ThreadCard","item","onPress","conversation","peerType","showName","faceURL","unreadCount","recvMsgOpt","Normal","isPinned","isNotInGroup","latestMsgSendTime","latestMsg","latestMsgData","result","JSON","parse","error","console","fullName","hasUnread","isMuted","timestamp","sendTime","currentUserId","s","user","userID","lastMessageText","handlePress","event","renderRightActions","_progress","_translation","swipeableMethods","children","VisibleView","visible","friction","rightThreshold","Touchable","row","alignItems","paddingH","paddingV","activeOpacity","background","white","avatar","View","flex","marginL","paddingB","Text","typo","numberOfLines","color","black","VectorIcons","name","provider","size","palette","gray","w500","Boolean","w400","normal","count","displayName"],"sourceRoot":"../../../../src","sources":["components/ThreadCard/ThreadCard.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ const MB = 1024 * 1024;
4
4
  export const UPLOAD_LIMITS = {
5
5
  image: 15 * MB,
6
6
  video: 200 * MB,
7
- file: 50 * MB
7
+ file: 20 * MB
8
8
  };
9
9
 
10
10
  // Max concurrent thumbnail generations and file uploads.
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ import { useCallback } from 'react';
4
+ import OpenIMSDK, { MessageReceiveOptType } from '@droppii/openim-rn-client-sdk';
5
+ import { useConversationStore } from "../store/index.js";
6
+ export function useMuteConversation() {
7
+ const muteConversation = useCallback(async conversation => {
8
+ if (conversation == null) return;
9
+ await OpenIMSDK.setConversationRecvMessageOpt({
10
+ conversationID: conversation.conversationID,
11
+ opt: MessageReceiveOptType.NotNotify
12
+ });
13
+ useConversationStore.getState().updateConversations([{
14
+ ...conversation,
15
+ recvMsgOpt: MessageReceiveOptType.NotNotify
16
+ }]);
17
+ }, []);
18
+ const unmuteConversation = useCallback(async conversation => {
19
+ if (conversation == null) return;
20
+ await OpenIMSDK.setConversationRecvMessageOpt({
21
+ conversationID: conversation.conversationID,
22
+ opt: MessageReceiveOptType.Normal
23
+ });
24
+ useConversationStore.getState().updateConversations([{
25
+ ...conversation,
26
+ recvMsgOpt: MessageReceiveOptType.Normal
27
+ }]);
28
+ }, []);
29
+ return {
30
+ muteConversation,
31
+ unmuteConversation
32
+ };
33
+ }
34
+ //# sourceMappingURL=useMuteConversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useCallback","OpenIMSDK","MessageReceiveOptType","useConversationStore","useMuteConversation","muteConversation","conversation","setConversationRecvMessageOpt","conversationID","opt","NotNotify","getState","updateConversations","recvMsgOpt","unmuteConversation","Normal"],"sourceRoot":"../../../src","sources":["hooks/useMuteConversation.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AACnC,OAAOC,SAAS,IACdC,qBAAqB,QAChB,+BAA+B;AAEtC,SAASC,oBAAoB,QAAQ,mBAAU;AAE/C,OAAO,SAASC,mBAAmBA,CAAA,EAAG;EACpC,MAAMC,gBAAgB,GAAGL,WAAW,CAClC,MAAOM,YAA+B,IAAK;IACzC,IAAIA,YAAY,IAAI,IAAI,EAAE;IAE1B,MAAML,SAAS,CAACM,6BAA6B,CAAC;MAC5CC,cAAc,EAAEF,YAAY,CAACE,cAAc;MAC3CC,GAAG,EAAEP,qBAAqB,CAACQ;IAC7B,CAAC,CAAC;IACFP,oBAAoB,CACjBQ,QAAQ,CAAC,CAAC,CACVC,mBAAmB,CAAC,CACnB;MAAE,GAAGN,YAAY;MAAEO,UAAU,EAAEX,qBAAqB,CAACQ;IAAU,CAAC,CACjE,CAAC;EACN,CAAC,EACD,EACF,CAAC;EAED,MAAMI,kBAAkB,GAAGd,WAAW,CACpC,MAAOM,YAA+B,IAAK;IACzC,IAAIA,YAAY,IAAI,IAAI,EAAE;IAE1B,MAAML,SAAS,CAACM,6BAA6B,CAAC;MAC5CC,cAAc,EAAEF,YAAY,CAACE,cAAc;MAC3CC,GAAG,EAAEP,qBAAqB,CAACa;IAC7B,CAAC,CAAC;IACFZ,oBAAoB,CACjBQ,QAAQ,CAAC,CAAC,CACVC,mBAAmB,CAAC,CACnB;MAAE,GAAGN,YAAY;MAAEO,UAAU,EAAEX,qBAAqB,CAACa;IAAO,CAAC,CAC9D,CAAC;EACN,CAAC,EACD,EACF,CAAC;EAED,OAAO;IAAEV,gBAAgB;IAAES;EAAmB,CAAC;AACjD","ignoreList":[]}
@@ -8,6 +8,7 @@ import { MessageToolboxItem } from "./MessageToolboxItem.js";
8
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  export const MessageToolboxMenu = /*#__PURE__*/memo(({
10
10
  showCopyMessage,
11
+ showCopyMessageLink,
11
12
  showRetryMessage,
12
13
  showRevokeMessage,
13
14
  onCopyMessage,
@@ -26,10 +27,8 @@ export const MessageToolboxMenu = /*#__PURE__*/memo(({
26
27
  }), /*#__PURE__*/_jsx(MessageToolboxItem, {
27
28
  icon: "link-o",
28
29
  color: KColors.gray.dark,
29
- label: trans('chat:copy_message_link')
30
- // visible={showCopyMessageLink}
31
- ,
32
- visible: false,
30
+ label: trans('chat:copy_message_link'),
31
+ visible: showCopyMessageLink,
33
32
  onPress: onCopyMessageLink
34
33
  }), /*#__PURE__*/_jsx(MessageToolboxItem, {
35
34
  icon: "arrow-reload-o",
@@ -1 +1 @@
1
- {"version":3,"names":["memo","StyleSheet","KContainer","KColors","KSpacingValue","trans","MessageToolboxItem","jsx","_jsx","jsxs","_jsxs","MessageToolboxMenu","showCopyMessage","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,gBAAgB;EAChBC,iBAAiB;EACjBC,aAAa;EACbC,iBAAiB;EACjBC,cAAc;EACdC;AACuB,CAAC,KAAK;EAC7B,oBACER,KAAA,CAACR,UAAU,CAACiB,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAC,QAAA,gBAClCf,IAAA,CAACF,kBAAkB;MACjBkB,IAAI,EAAC,QAAQ;MACbC,KAAK,EAAEtB,OAAO,CAACuB,IAAI,CAACC,IAAK;MACzBC,KAAK,EAAEvB,KAAK,CAAC,mBAAmB,CAAE;MAClCwB,OAAO,EAAEjB,eAAgB;MACzBkB,OAAO,EAAEf;IAAc,CACxB,CAAC,eAEFP,IAAA,CAACF,kBAAkB;MACjBkB,IAAI,EAAC,QAAQ;MACbC,KAAK,EAAEtB,OAAO,CAACuB,IAAI,CAACC,IAAK;MACzBC,KAAK,EAAEvB,KAAK,CAAC,wBAAwB;MACrC;MAAA;MACAwB,OAAO,EAAE,KAAM;MACfC,OAAO,EAAEd;IAAkB,CAC5B,CAAC,eAEFR,IAAA,CAACF,kBAAkB;MACjBkB,IAAI,EAAC,gBAAgB;MACrBC,KAAK,EAAEtB,OAAO,CAAC4B,MAAM,CAACC,MAAO;MAC7BJ,KAAK,EAAEvB,KAAK,CAAC,oBAAoB,CAAE;MACnCwB,OAAO,EAAEhB,gBAAiB;MAC1BiB,OAAO,EAAEb;IAAe,CACzB,CAAC,eAEFT,IAAA,CAACF,kBAAkB;MACjBkB,IAAI,EAAC,eAAe;MACpBC,KAAK,EAAEtB,OAAO,CAAC4B,MAAM,CAACC,MAAO;MAC7BJ,KAAK,EAAEvB,KAAK,CAAC,qBAAqB,CAAE;MACpCwB,OAAO,EAAEf,iBAAkB;MAC3BgB,OAAO,EAAEZ;IAAgB,CAC1B,CAAC;EAAA,CACa,CAAC;AAEtB,CACF,CAAC;AAEDP,kBAAkB,CAACsB,WAAW,GAAG,oBAAoB;AAErD,MAAMZ,MAAM,GAAGpB,UAAU,CAACiC,MAAM,CAAC;EAC/BZ,IAAI,EAAE;IACJa,QAAQ,EAAE,GAAG;IACbC,eAAe,EAAEhC,aAAa,CAAC,QAAQ,CAAC;IACxCiC,YAAY,EAAEjC,aAAa,CAAC,MAAM,CAAC;IACnCkC,eAAe,EAAEnC,OAAO,CAACoC,KAAK;IAC9BC,WAAW,EAAErC,OAAO,CAACsC,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,EAAE/C,aAAa,CAAC,MAAM,CAAC;IACxCgC,eAAe,EAAEhC,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","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":[]}
@@ -13,7 +13,9 @@ const isEligibleForToolbox = message => isMessageSucceeded(message) && !isMessag
13
13
  const isCopyMessageSupported = message => isEligibleForToolbox(message) && COPYABLE_TEXT_TYPES.includes(message.contentType);
14
14
 
15
15
  // All message types are supported, as long as the message is eligible.
16
- const isCopyMessageLinkSupported = message => isEligibleForToolbox(message);
16
+ // const isCopyMessageLinkSupported = (message: DMessageItem): boolean =>
17
+ // isEligibleForToolbox(message);
18
+
17
19
  const isRetrySupported = message => message.status === MessageStatus.Failed;
18
20
 
19
21
  // Revoke is only available within 24h of a successful send.
@@ -33,12 +35,12 @@ export const getMessageToolboxItems = (message, currentUserId) => {
33
35
  return {};
34
36
  }
35
37
  const showCopyMessage = isCopyMessageSupported(message);
36
- const showCopyMessageLink = isCopyMessageLinkSupported(message);
38
+ // const showCopyMessageLink = isCopyMessageLinkSupported(message);
37
39
  const showRetryMessage = isRetrySupported(message);
38
40
  const showRevokeMessage = isRevokeMessageSupported(message, currentUserId);
39
41
  return {
40
42
  showCopyMessage,
41
- showCopyMessageLink,
43
+ // showCopyMessageLink,
42
44
  showRetryMessage,
43
45
  showRevokeMessage
44
46
  };
@@ -1 +1 @@
1
- {"version":3,"names":["MessageStatus","MessageType","getMessageText","isMessageRevoked","COPYABLE_TEXT_TYPES","TextMessage","AtTextMessage","QuoteMessage","UrlTextMessage","isMessageSucceeded","message","status","Failed","Sending","isEligibleForToolbox","isCopyMessageSupported","includes","contentType","isCopyMessageLinkSupported","isRetrySupported","REVOKE_WINDOW_MS","isRevokeMessageSupported","currentUserId","sendID","Date","now","sendTime","createTime","getCopyableMessageText","urlTextElem","content","getMessageToolboxItems","showCopyMessage","showCopyMessageLink","showRetryMessage","showRevokeMessage"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/messageToolbox/messageToolbox.utils.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,WAAW,QAAQ,+BAA+B;AAE1E,SAASC,cAAc,QAAQ,qCAAkC;AACjE,SAASC,gBAAgB,QAAQ,gCAA6B;;AAE9D;AACA,MAAMC,mBAA6B,GAAG,CACpCH,WAAW,CAACI,WAAW,EACvBJ,WAAW,CAACK,aAAa,EACzBL,WAAW,CAACM,YAAY,EACxBN,WAAW,CAACO,cAAc,CAC3B;AAED,MAAMC,kBAAkB,GAAIC,OAAqB,IAC/CA,OAAO,CAACC,MAAM,KAAKX,aAAa,CAACY,MAAM,IACvCF,OAAO,CAACC,MAAM,KAAKX,aAAa,CAACa,OAAO;;AAE1C;AACA,MAAMC,oBAAoB,GAAIJ,OAAqB,IACjDD,kBAAkB,CAACC,OAAO,CAAC,IAAI,CAACP,gBAAgB,CAACO,OAAO,CAAC;AAE3D,MAAMK,sBAAsB,GAAIL,OAAqB,IACnDI,oBAAoB,CAACJ,OAAO,CAAC,IAC7BN,mBAAmB,CAACY,QAAQ,CAACN,OAAO,CAACO,WAAW,CAAC;;AAEnD;AACA,MAAMC,0BAA0B,GAAIR,OAAqB,IACvDI,oBAAoB,CAACJ,OAAO,CAAC;AAE/B,MAAMS,gBAAgB,GAAIT,OAAqB,IAC7CA,OAAO,CAACC,MAAM,KAAKX,aAAa,CAACY,MAAM;;AAEzC;AACA,MAAMQ,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;;AAE5C;AACA;AACA,MAAMC,wBAAwB,GAAGA,CAC/BX,OAAqB,EACrBY,aAAsB,KAEtBR,oBAAoB,CAACJ,OAAO,CAAC,IAC7B,CAAC,CAACY,aAAa,IACfZ,OAAO,CAACa,MAAM,KAAKD,aAAa,IAChCE,IAAI,CAACC,GAAG,CAAC,CAAC,IAAIf,OAAO,CAACgB,QAAQ,IAAIhB,OAAO,CAACiB,UAAU,IAAI,CAAC,CAAC,GAAGP,gBAAgB;AAE/E,OAAO,MAAMQ,sBAAsB,GAAIlB,OAAqB,IAAa;EACvE,IAAIA,OAAO,CAACO,WAAW,KAAKhB,WAAW,CAACO,cAAc,EAAE;IACtD,OAAOE,OAAO,CAACmB,WAAW,EAAEC,OAAO,IAAI,EAAE;EAC3C;EACA,OAAO5B,cAAc,CAACQ,OAAO,CAAC;AAChC,CAAC;AAED,OAAO,MAAMqB,sBAAsB,GAAGA,CACpCrB,OAAsB,EACtBY,aAAsB,KACnB;EACH,IAAIZ,OAAO,IAAI,IAAI,EAAE;IACnB,OAAO,CAAC,CAAC;EACX;EAEA,MAAMsB,eAAe,GAAGjB,sBAAsB,CAACL,OAAO,CAAC;EACvD,MAAMuB,mBAAmB,GAAGf,0BAA0B,CAACR,OAAO,CAAC;EAC/D,MAAMwB,gBAAgB,GAAGf,gBAAgB,CAACT,OAAO,CAAC;EAClD,MAAMyB,iBAAiB,GAAGd,wBAAwB,CAACX,OAAO,EAAEY,aAAa,CAAC;EAE1E,OAAO;IACLU,eAAe;IACfC,mBAAmB;IACnBC,gBAAgB;IAChBC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["MessageStatus","MessageType","getMessageText","isMessageRevoked","COPYABLE_TEXT_TYPES","TextMessage","AtTextMessage","QuoteMessage","UrlTextMessage","isMessageSucceeded","message","status","Failed","Sending","isEligibleForToolbox","isCopyMessageSupported","includes","contentType","isRetrySupported","REVOKE_WINDOW_MS","isRevokeMessageSupported","currentUserId","sendID","Date","now","sendTime","createTime","getCopyableMessageText","urlTextElem","content","getMessageToolboxItems","showCopyMessage","showRetryMessage","showRevokeMessage"],"sourceRoot":"../../../../../src","sources":["screens/chat-detail/messageToolbox/messageToolbox.utils.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,WAAW,QAAQ,+BAA+B;AAE1E,SAASC,cAAc,QAAQ,qCAAkC;AACjE,SAASC,gBAAgB,QAAQ,gCAA6B;;AAE9D;AACA,MAAMC,mBAA6B,GAAG,CACpCH,WAAW,CAACI,WAAW,EACvBJ,WAAW,CAACK,aAAa,EACzBL,WAAW,CAACM,YAAY,EACxBN,WAAW,CAACO,cAAc,CAC3B;AAED,MAAMC,kBAAkB,GAAIC,OAAqB,IAC/CA,OAAO,CAACC,MAAM,KAAKX,aAAa,CAACY,MAAM,IACvCF,OAAO,CAACC,MAAM,KAAKX,aAAa,CAACa,OAAO;;AAE1C;AACA,MAAMC,oBAAoB,GAAIJ,OAAqB,IACjDD,kBAAkB,CAACC,OAAO,CAAC,IAAI,CAACP,gBAAgB,CAACO,OAAO,CAAC;AAE3D,MAAMK,sBAAsB,GAAIL,OAAqB,IACnDI,oBAAoB,CAACJ,OAAO,CAAC,IAC7BN,mBAAmB,CAACY,QAAQ,CAACN,OAAO,CAACO,WAAW,CAAC;;AAEnD;AACA;AACA;;AAEA,MAAMC,gBAAgB,GAAIR,OAAqB,IAC7CA,OAAO,CAACC,MAAM,KAAKX,aAAa,CAACY,MAAM;;AAEzC;AACA,MAAMO,gBAAgB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;;AAE5C;AACA;AACA,MAAMC,wBAAwB,GAAGA,CAC/BV,OAAqB,EACrBW,aAAsB,KAEtBP,oBAAoB,CAACJ,OAAO,CAAC,IAC7B,CAAC,CAACW,aAAa,IACfX,OAAO,CAACY,MAAM,KAAKD,aAAa,IAChCE,IAAI,CAACC,GAAG,CAAC,CAAC,IAAId,OAAO,CAACe,QAAQ,IAAIf,OAAO,CAACgB,UAAU,IAAI,CAAC,CAAC,GAAGP,gBAAgB;AAE/E,OAAO,MAAMQ,sBAAsB,GAAIjB,OAAqB,IAAa;EACvE,IAAIA,OAAO,CAACO,WAAW,KAAKhB,WAAW,CAACO,cAAc,EAAE;IACtD,OAAOE,OAAO,CAACkB,WAAW,EAAEC,OAAO,IAAI,EAAE;EAC3C;EACA,OAAO3B,cAAc,CAACQ,OAAO,CAAC;AAChC,CAAC;AAED,OAAO,MAAMoB,sBAAsB,GAAGA,CACpCpB,OAAsB,EACtBW,aAAsB,KACnB;EACH,IAAIX,OAAO,IAAI,IAAI,EAAE;IACnB,OAAO,CAAC,CAAC;EACX;EAEA,MAAMqB,eAAe,GAAGhB,sBAAsB,CAACL,OAAO,CAAC;EACvD;EACA,MAAMsB,gBAAgB,GAAGd,gBAAgB,CAACR,OAAO,CAAC;EAClD,MAAMuB,iBAAiB,GAAGb,wBAAwB,CAACV,OAAO,EAAEW,aAAa,CAAC;EAE1E,OAAO;IACLU,eAAe;IACf;IACAC,gBAAgB;IAChBC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
@@ -41,6 +41,14 @@ const i18nKey = {
41
41
  'msg_type_link': '[Liên kết]',
42
42
  'msg_type_revoke': 'Đã thu hồi tin nhắn',
43
43
  'chat:revoked_by_sender': '{{sender}} đã thu hồi tin nhắn',
44
+ 'chat:mute_action': 'Tắt thông báo',
45
+ 'chat:unmute_action': 'Bật thông báo',
46
+ 'chat:mute_confirm_title': 'Tắt thông báo',
47
+ 'chat:mute_confirm_desc': 'Bạn có thể bỏ lỡ tin nhắn quan trọng nếu tắt thông báo! Bạn có chắc chắn muốn tắt thông báo?',
48
+ 'chat:mute_confirm_primary': 'Tắt thông báo',
49
+ 'chat:mute_confirm_secondary': 'Quay lại',
50
+ 'chat:mute_toast_success': 'Đã tắt thông báo',
51
+ 'chat:unmute_toast_success': 'Đã bật thông báo',
44
52
  'start': 'Bắt đầu',
45
53
  'restart': 'Bắt đầu lại'
46
54
  };
@@ -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,EAAE,0BAA0B;EACjD,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,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,OAAO,EAAE,SAAS;EAClB,SAAS,EAAE;AACb,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,EAAE,0BAA0B;EACjD,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,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,8FAA8F;EAChG,2BAA2B,EAAE,eAAe;EAC5C,6BAA6B,EAAE,UAAU;EACzC,yBAAyB,EAAE,kBAAkB;EAC7C,2BAA2B,EAAE,kBAAkB;EAC/C,OAAO,EAAE,SAAS;EAClB,SAAS,EAAE;AACb,CAAC;AAED,eAAe;EACbC,EAAE,EAAED;AACN,CAAC","ignoreList":[]}
@@ -36,7 +36,7 @@ const DeviceUtils = {
36
36
  const result = await ImagePicker.openPicker({
37
37
  // cropping: true,
38
38
  mediaType: 'any',
39
- compressImageQuality: 0.8,
39
+ compressImageQuality: 1,
40
40
  multiple,
41
41
  forceJpg: true
42
42
  });
@@ -1 +1 @@
1
- {"version":3,"names":["ImagePicker","pick","pickDocument","types","documentTypes","isErrorWithCode","errorCodes","keepLocalCopy","check","request","openSettings","PERMISSIONS","RESULTS","Alert","Platform","PHOTO_PERMISSION","select","ios","IOS","PHOTO_LIBRARY","android","Number","Version","ANDROID","READ_MEDIA_IMAGES","READ_EXTERNAL_STORAGE","default","checkPhotoPermission","result","GRANTED","LIMITED","DENIED","req","BLOCKED","UNAVAILABLE","alert","text","style","onPress","DeviceUtils","openImagePicker","multiple","hasPermission","openPicker","mediaType","compressImageQuality","forceJpg","images","Array","isArray","console","log","count","length","map","img","filename","size","width","height","error","code","openVideoPicker","videos","vid","duration","openFilePicker","results","allowMultiSelection","type","allFiles","mode","copies","files","r","uri","fileName","name","destination","i","decodeURIComponent","status","localUri","mimeType","OPERATION_CANCELED"],"sourceRoot":"../../../src","sources":["utils/device.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ImagePicker","pick","pickDocument","types","documentTypes","isErrorWithCode","errorCodes","keepLocalCopy","check","request","openSettings","PERMISSIONS","RESULTS","Alert","Platform","PHOTO_PERMISSION","select","ios","IOS","PHOTO_LIBRARY","android","Number","Version","ANDROID","READ_MEDIA_IMAGES","READ_EXTERNAL_STORAGE","default","checkPhotoPermission","result","GRANTED","LIMITED","DENIED","req","BLOCKED","UNAVAILABLE","alert","text","style","onPress","DeviceUtils","openImagePicker","multiple","hasPermission","openPicker","mediaType","compressImageQuality","forceJpg","images","Array","isArray","console","log","count","length","map","img","filename","size","width","height","error","code","openVideoPicker","videos","vid","duration","openFilePicker","results","allowMultiSelection","type","allFiles","mode","copies","files","r","uri","fileName","name","destination","i","decodeURIComponent","status","localUri","mimeType","OPERATION_CANCELED"],"sourceRoot":"../../../src","sources":["utils/device.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import type { SwipeableMethods } from 'react-native-gesture-handler/ReanimatedSwipeable';
2
+ import { type ConversationItem } from '@droppii/openim-rn-client-sdk';
3
+ interface MuteThreadProps {
4
+ isMuted: boolean;
5
+ conversation?: ConversationItem;
6
+ swipeableMethods: SwipeableMethods;
7
+ }
8
+ export declare const MuteThread: import("react").MemoExoticComponent<({ isMuted, conversation, swipeableMethods }: MuteThreadProps) => import("react").JSX.Element>;
9
+ export {};
10
+ //# sourceMappingURL=MuteThread.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MuteThread.d.ts","sourceRoot":"","sources":["../../../../../src/components/ThreadCard/MuteThread.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kDAAkD,CAAC;AAKzF,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,eAAO,MAAM,UAAU,oFACyB,eAAe,iCAkF9D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ThreadCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/ThreadCard/ThreadCard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAU1D,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,qBAAqB,CAAA;KAAE,KAAK,IAAI,CAAC;CAC5E;AAED,QAAA,MAAM,UAAU,0DAA4B,eAAe,iCAsHzD,CAAC;AAIH,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"ThreadCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/ThreadCard/ThreadCard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAgB1D,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,qBAAqB,CAAA;KAAE,KAAK,IAAI,CAAC;CAC5E;AAED,QAAA,MAAM,UAAU,0DAA4B,eAAe,iCAiJzD,CAAC;AAIH,eAAe,UAAU,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ConversationItem } from '@droppii/openim-rn-client-sdk';
2
+ export declare function useMuteConversation(): {
3
+ muteConversation: (conversation?: ConversationItem) => Promise<void>;
4
+ unmuteConversation: (conversation?: ConversationItem) => Promise<void>;
5
+ };
6
+ //# sourceMappingURL=useMuteConversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMuteConversation.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useMuteConversation.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,wBAAgB,mBAAmB;sCAET,gBAAgB;wCAiBhB,gBAAgB;EAiBzC"}
@@ -8,6 +8,6 @@ interface MessageToolboxMenuProps {
8
8
  onRetryMessage: () => void;
9
9
  onRevokeMessage: () => void;
10
10
  }
11
- export declare const MessageToolboxMenu: import("react").MemoExoticComponent<({ showCopyMessage, showRetryMessage, showRevokeMessage, onCopyMessage, onCopyMessageLink, onRetryMessage, onRevokeMessage, }: MessageToolboxMenuProps) => import("react").JSX.Element>;
11
+ export declare const MessageToolboxMenu: import("react").MemoExoticComponent<({ showCopyMessage, showCopyMessageLink, showRetryMessage, showRevokeMessage, onCopyMessage, onCopyMessageLink, onRetryMessage, onRevokeMessage, }: MessageToolboxMenuProps) => import("react").JSX.Element>;
12
12
  export {};
13
13
  //# sourceMappingURL=MessageToolboxMenu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MessageToolboxMenu.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/messageToolbox/MessageToolboxMenu.tsx"],"names":[],"mappings":"AAMA,UAAU,uBAAuB;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,kBAAkB,qKAS1B,uBAAuB,iCAsC3B,CAAC"}
1
+ {"version":3,"file":"MessageToolboxMenu.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/messageToolbox/MessageToolboxMenu.tsx"],"names":[],"mappings":"AAMA,UAAU,uBAAuB;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,kBAAkB,0LAU1B,uBAAuB,iCAqC3B,CAAC"}
@@ -2,12 +2,10 @@ import type { DMessageItem } from '../../../types/chat';
2
2
  export declare const getCopyableMessageText: (message: DMessageItem) => string;
3
3
  export declare const getMessageToolboxItems: (message?: DMessageItem, currentUserId?: string) => {
4
4
  showCopyMessage?: undefined;
5
- showCopyMessageLink?: undefined;
6
5
  showRetryMessage?: undefined;
7
6
  showRevokeMessage?: undefined;
8
7
  } | {
9
8
  showCopyMessage: boolean;
10
- showCopyMessageLink: boolean;
11
9
  showRetryMessage: boolean;
12
10
  showRevokeMessage: boolean;
13
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"messageToolbox.utils.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/messageToolbox/messageToolbox.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AA6CxD,eAAO,MAAM,sBAAsB,GAAI,SAAS,YAAY,KAAG,MAK9D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,YAAY,EACtB,gBAAgB,MAAM;;;;;;;;;;CAiBvB,CAAC"}
1
+ {"version":3,"file":"messageToolbox.utils.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/messageToolbox/messageToolbox.utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AA6CxD,eAAO,MAAM,sBAAsB,GAAI,SAAS,YAAY,KAAG,MAK9D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,YAAY,EACtB,gBAAgB,MAAM;;;;;;;;CAiBvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/translation/resources/i18n.ts"],"names":[],"mappings":";;;AA+CA,wBAEE"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../../src/translation/resources/i18n.ts"],"names":[],"mappings":";;;AAwDA,wBAEE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@droppii-org/chat-mobile",
3
- "version": "0.2.28",
3
+ "version": "0.2.29",
4
4
  "description": "Droppii chat mobile",
5
5
  "keywords": [
6
6
  "react-native",
@@ -0,0 +1,100 @@
1
+ import { memo, useCallback } from 'react';
2
+ import type { SwipeableMethods } from 'react-native-gesture-handler/ReanimatedSwipeable';
3
+ import { KContainer, KImage, KLabel, KColors } from '@droppii/libs';
4
+ import { useMuteConversation } from '../../hooks/useMuteConversation';
5
+ import { trans } from '../../translation';
6
+ import { UIUtils } from '../../utils/UIUtils';
7
+ import { type ConversationItem } from '@droppii/openim-rn-client-sdk';
8
+
9
+ interface MuteThreadProps {
10
+ isMuted: boolean;
11
+ conversation?: ConversationItem;
12
+ swipeableMethods: SwipeableMethods;
13
+ }
14
+
15
+ export const MuteThread = memo(
16
+ ({ isMuted, conversation, swipeableMethods }: MuteThreadProps) => {
17
+ const { muteConversation, unmuteConversation } = useMuteConversation();
18
+
19
+ const handleMutePress = useCallback(() => {
20
+ UIUtils.alert.open({
21
+ title: trans('chat:mute_confirm_title'),
22
+ message: trans('chat:mute_confirm_desc'),
23
+ primaryIndex: 0,
24
+ buttons: [
25
+ {
26
+ label: trans('chat:mute_confirm_primary'),
27
+ kind: 'danger',
28
+ onPress: async () => {
29
+ try {
30
+ await muteConversation(conversation);
31
+ UIUtils.toast.open({
32
+ title: trans('chat:mute_toast_success'),
33
+ theme: 'success',
34
+ });
35
+ } catch {
36
+ UIUtils.toast.open({
37
+ title: trans('chat:generic_error'),
38
+ theme: 'error',
39
+ });
40
+ } finally {
41
+ swipeableMethods.close();
42
+ }
43
+ },
44
+ },
45
+ {
46
+ label: trans('chat:mute_confirm_secondary'),
47
+ kind: 'gray',
48
+ onPress: () => swipeableMethods.close(),
49
+ },
50
+ ],
51
+ });
52
+ }, [swipeableMethods, conversation, muteConversation]);
53
+
54
+ const handleUnmutePress = useCallback(async () => {
55
+ try {
56
+ await unmuteConversation(conversation);
57
+ UIUtils.toast.open({
58
+ title: trans('chat:unmute_toast_success'),
59
+ theme: 'success',
60
+ });
61
+ } catch {
62
+ UIUtils.toast.open({
63
+ title: trans('chat:generic_error'),
64
+ theme: 'error',
65
+ });
66
+ } finally {
67
+ swipeableMethods.close();
68
+ }
69
+ }, [swipeableMethods, conversation, unmuteConversation]);
70
+
71
+ return (
72
+ <KContainer.Touchable
73
+ width={76}
74
+ alignItems="center"
75
+ justifyContent="center"
76
+ background={
77
+ isMuted ? KColors.palette.gray.w400 : KColors.palette.danger.w400
78
+ }
79
+ onPress={isMuted ? handleUnmutePress : handleMutePress}
80
+ >
81
+ <KImage.VectorIcons
82
+ name={isMuted ? 'bell-o' : 'bell-off-o'}
83
+ provider="DroppiiNew"
84
+ size={20}
85
+ color={KColors.white}
86
+ />
87
+ <KLabel.Text
88
+ typo="Text2XsMedium"
89
+ color={KColors.white}
90
+ marginT="0.25rem"
91
+ textAlign="center"
92
+ >
93
+ {isMuted ? trans('chat:unmute_action') : trans('chat:mute_action')}
94
+ </KLabel.Text>
95
+ </KContainer.Touchable>
96
+ );
97
+ }
98
+ );
99
+
100
+ MuteThread.displayName = 'MuteThread';
@@ -1,5 +1,7 @@
1
1
  import { memo, useCallback, useMemo } from 'react';
2
2
  import { type GestureResponderEvent } from 'react-native';
3
+ import ReanimatedSwipeable from 'react-native-gesture-handler/ReanimatedSwipeable';
4
+ import type { SwipeableMethods } from 'react-native-gesture-handler/ReanimatedSwipeable';
3
5
  import { KContainer, KImage, KLabel, KColors } from '@droppii/libs';
4
6
  import { AvatarSection } from './AvatarSection';
5
7
  import { NamePrefixIcon } from './NamePrefixIcon';
@@ -7,7 +9,11 @@ import { UnreadBadge } from './UnreadBadge';
7
9
  import { formatTimestamp } from '../../utils/dateTimeUtils';
8
10
  import { getLastMessageText } from '../../utils/messageUtils';
9
11
  import { useConversation, useUserStore } from '../../store';
10
- import type { MessageItem } from '@droppii/openim-rn-client-sdk';
12
+ import {
13
+ MessageReceiveOptType,
14
+ type MessageItem,
15
+ } from '@droppii/openim-rn-client-sdk';
16
+ import { MuteThread } from './MuteThread';
11
17
 
12
18
  interface ThreadCardProps {
13
19
  item: string;
@@ -15,18 +21,19 @@ interface ThreadCardProps {
15
21
  }
16
22
 
17
23
  const ThreadCard = memo(({ item, onPress }: ThreadCardProps) => {
18
- const consversation = useConversation(item);
24
+ const conversation = useConversation(item);
19
25
 
20
26
  const {
21
27
  peerType,
22
28
  showName,
23
29
  faceURL,
24
30
  unreadCount = 0,
25
- recvMsgOpt,
31
+ recvMsgOpt = MessageReceiveOptType.Normal,
26
32
  isPinned,
33
+ isNotInGroup,
27
34
  latestMsgSendTime,
28
35
  latestMsg,
29
- } = consversation || {};
36
+ } = conversation || {};
30
37
 
31
38
  const latestMsgData: MessageItem = useMemo(() => {
32
39
  let result = null;
@@ -40,7 +47,7 @@ const ThreadCard = memo(({ item, onPress }: ThreadCardProps) => {
40
47
 
41
48
  const fullName = showName ?? '';
42
49
  const hasUnread = unreadCount > 0;
43
- const isMuted = (recvMsgOpt ?? 0) !== 0;
50
+ const isMuted = recvMsgOpt !== MessageReceiveOptType.Normal;
44
51
  const timestamp = formatTimestamp(
45
52
  latestMsgSendTime ?? latestMsgData?.sendTime ?? null
46
53
  );
@@ -48,7 +55,7 @@ const ThreadCard = memo(({ item, onPress }: ThreadCardProps) => {
48
55
  const lastMessageText = getLastMessageText(
49
56
  latestMsgData,
50
57
  currentUserId,
51
- consversation
58
+ conversation
52
59
  );
53
60
 
54
61
  const handlePress = useCallback(
@@ -58,79 +65,105 @@ const ThreadCard = memo(({ item, onPress }: ThreadCardProps) => {
58
65
  [item, onPress]
59
66
  );
60
67
 
68
+ const renderRightActions = useCallback(
69
+ (
70
+ _progress: unknown,
71
+ _translation: unknown,
72
+ swipeableMethods: SwipeableMethods
73
+ ) => (
74
+ <>
75
+ <KContainer.VisibleView visible={!isNotInGroup}>
76
+ <MuteThread
77
+ conversation={conversation}
78
+ isMuted={isMuted}
79
+ swipeableMethods={swipeableMethods}
80
+ />
81
+ </KContainer.VisibleView>
82
+ </>
83
+ ),
84
+ [isMuted, conversation, isNotInGroup]
85
+ );
86
+
61
87
  return (
62
- <KContainer.Touchable
63
- row
64
- alignItems="center"
65
- paddingH="0.75rem"
66
- paddingV="0.75rem"
67
- onPress={handlePress}
68
- activeOpacity={0.7}
88
+ <ReanimatedSwipeable
89
+ friction={2}
90
+ rightThreshold={40}
91
+ renderRightActions={renderRightActions}
69
92
  >
70
- <AvatarSection
71
- avatar={faceURL ?? null}
72
- fullName={fullName}
73
- peerType={peerType}
74
- />
93
+ <KContainer.Touchable
94
+ row
95
+ alignItems="center"
96
+ paddingH="0.75rem"
97
+ paddingV="0.75rem"
98
+ onPress={handlePress}
99
+ activeOpacity={1}
100
+ background={KColors.white}
101
+ >
102
+ <AvatarSection
103
+ avatar={faceURL ?? null}
104
+ fullName={fullName}
105
+ peerType={peerType}
106
+ />
75
107
 
76
- {/* Chat-Content */}
77
- <KContainer.View flex marginL="0.5rem" paddingB={2}>
78
- {/* Row-Title */}
79
- <KContainer.View row alignItems="center">
80
- <NamePrefixIcon peerType={peerType} />
81
- <KLabel.Text
82
- typo={hasUnread ? 'TextMdBold' : 'TextMdNormal'}
83
- numberOfLines={1}
84
- color={KColors.black}
85
- flex
86
- >
87
- {fullName}
88
- </KLabel.Text>
89
- <KContainer.VisibleView visible={isMuted}>
90
- <KContainer.View marginL="0.25rem">
91
- <KImage.VectorIcons
92
- name="bell-off"
93
- provider="MaterialCommunityIcons"
94
- size={16}
95
- color={KColors.palette.gray.w500}
96
- />
97
- </KContainer.View>
98
- </KContainer.VisibleView>
99
- <KContainer.VisibleView visible={Boolean(timestamp)}>
108
+ {/* Chat-Content */}
109
+ <KContainer.View flex marginL="0.5rem" paddingB={2}>
110
+ {/* Row-Title */}
111
+ <KContainer.View row alignItems="center">
112
+ <NamePrefixIcon peerType={peerType} />
100
113
  <KLabel.Text
101
- typo="TextXsNormal"
102
- color={KColors.palette.gray.w400}
103
- marginL="0.25rem"
114
+ typo={hasUnread ? 'TextMdBold' : 'TextMdNormal'}
115
+ numberOfLines={1}
116
+ color={KColors.black}
117
+ flex
104
118
  >
105
- {timestamp}
119
+ {fullName}
106
120
  </KLabel.Text>
107
- </KContainer.VisibleView>
108
- </KContainer.View>
109
-
110
- {/* In-Text */}
111
- <KContainer.View row alignItems="center">
112
- <KLabel.Text
113
- typo={hasUnread ? 'TextNmMedium' : 'TextNmNormal'}
114
- color={hasUnread ? KColors.black : KColors.gray.normal}
115
- numberOfLines={1}
116
- flex
117
- >
118
- {lastMessageText}
119
- </KLabel.Text>
120
- <KContainer.VisibleView visible={Boolean(isPinned)}>
121
- <KContainer.View marginL="0.5rem">
122
- <KImage.VectorIcons
123
- name="pin-outline"
124
- provider="MaterialCommunityIcons"
125
- size={14}
121
+ <KContainer.VisibleView visible={isMuted}>
122
+ <KContainer.View marginL="0.25rem">
123
+ <KImage.VectorIcons
124
+ name="bell-off"
125
+ provider="MaterialCommunityIcons"
126
+ size={16}
127
+ color={KColors.palette.gray.w500}
128
+ />
129
+ </KContainer.View>
130
+ </KContainer.VisibleView>
131
+ <KContainer.VisibleView visible={Boolean(timestamp)}>
132
+ <KLabel.Text
133
+ typo="TextXsNormal"
126
134
  color={KColors.palette.gray.w400}
127
- />
128
- </KContainer.View>
129
- </KContainer.VisibleView>
130
- <UnreadBadge count={unreadCount} />
135
+ marginL="0.25rem"
136
+ >
137
+ {timestamp}
138
+ </KLabel.Text>
139
+ </KContainer.VisibleView>
140
+ </KContainer.View>
141
+
142
+ {/* In-Text */}
143
+ <KContainer.View row alignItems="center">
144
+ <KLabel.Text
145
+ typo={hasUnread ? 'TextNmMedium' : 'TextNmNormal'}
146
+ color={hasUnread ? KColors.black : KColors.gray.normal}
147
+ numberOfLines={1}
148
+ flex
149
+ >
150
+ {lastMessageText}
151
+ </KLabel.Text>
152
+ <KContainer.VisibleView visible={Boolean(isPinned)}>
153
+ <KContainer.View marginL="0.5rem">
154
+ <KImage.VectorIcons
155
+ name="pin-outline"
156
+ provider="MaterialCommunityIcons"
157
+ size={14}
158
+ color={KColors.palette.gray.w400}
159
+ />
160
+ </KContainer.View>
161
+ </KContainer.VisibleView>
162
+ <UnreadBadge count={unreadCount} />
163
+ </KContainer.View>
131
164
  </KContainer.View>
132
- </KContainer.View>
133
- </KContainer.Touchable>
165
+ </KContainer.Touchable>
166
+ </ReanimatedSwipeable>
134
167
  );
135
168
  });
136
169
 
@@ -3,7 +3,7 @@ const MB = 1024 * 1024;
3
3
  export const UPLOAD_LIMITS = {
4
4
  image: 15 * MB,
5
5
  video: 200 * MB,
6
- file: 50 * MB,
6
+ file: 20 * MB,
7
7
  } as const;
8
8
 
9
9
  // Max concurrent thumbnail generations and file uploads.
@@ -0,0 +1,44 @@
1
+ import { useCallback } from 'react';
2
+ import OpenIMSDK, {
3
+ MessageReceiveOptType,
4
+ } from '@droppii/openim-rn-client-sdk';
5
+ import type { ConversationItem } from '@droppii/openim-rn-client-sdk';
6
+ import { useConversationStore } from '../store';
7
+
8
+ export function useMuteConversation() {
9
+ const muteConversation = useCallback(
10
+ async (conversation?: ConversationItem) => {
11
+ if (conversation == null) return;
12
+
13
+ await OpenIMSDK.setConversationRecvMessageOpt({
14
+ conversationID: conversation.conversationID,
15
+ opt: MessageReceiveOptType.NotNotify,
16
+ });
17
+ useConversationStore
18
+ .getState()
19
+ .updateConversations([
20
+ { ...conversation, recvMsgOpt: MessageReceiveOptType.NotNotify },
21
+ ]);
22
+ },
23
+ []
24
+ );
25
+
26
+ const unmuteConversation = useCallback(
27
+ async (conversation?: ConversationItem) => {
28
+ if (conversation == null) return;
29
+
30
+ await OpenIMSDK.setConversationRecvMessageOpt({
31
+ conversationID: conversation.conversationID,
32
+ opt: MessageReceiveOptType.Normal,
33
+ });
34
+ useConversationStore
35
+ .getState()
36
+ .updateConversations([
37
+ { ...conversation, recvMsgOpt: MessageReceiveOptType.Normal },
38
+ ]);
39
+ },
40
+ []
41
+ );
42
+
43
+ return { muteConversation, unmuteConversation };
44
+ }
@@ -18,6 +18,7 @@ interface MessageToolboxMenuProps {
18
18
  export const MessageToolboxMenu = memo(
19
19
  ({
20
20
  showCopyMessage,
21
+ showCopyMessageLink,
21
22
  showRetryMessage,
22
23
  showRevokeMessage,
23
24
  onCopyMessage,
@@ -39,8 +40,7 @@ export const MessageToolboxMenu = memo(
39
40
  icon="link-o"
40
41
  color={KColors.gray.dark}
41
42
  label={trans('chat:copy_message_link')}
42
- // visible={showCopyMessageLink}
43
- visible={false}
43
+ visible={showCopyMessageLink}
44
44
  onPress={onCopyMessageLink}
45
45
  />
46
46
 
@@ -24,8 +24,8 @@ const isCopyMessageSupported = (message: DMessageItem): boolean =>
24
24
  COPYABLE_TEXT_TYPES.includes(message.contentType);
25
25
 
26
26
  // All message types are supported, as long as the message is eligible.
27
- const isCopyMessageLinkSupported = (message: DMessageItem): boolean =>
28
- isEligibleForToolbox(message);
27
+ // const isCopyMessageLinkSupported = (message: DMessageItem): boolean =>
28
+ // isEligibleForToolbox(message);
29
29
 
30
30
  const isRetrySupported = (message: DMessageItem): boolean =>
31
31
  message.status === MessageStatus.Failed;
@@ -60,13 +60,13 @@ export const getMessageToolboxItems = (
60
60
  }
61
61
 
62
62
  const showCopyMessage = isCopyMessageSupported(message);
63
- const showCopyMessageLink = isCopyMessageLinkSupported(message);
63
+ // const showCopyMessageLink = isCopyMessageLinkSupported(message);
64
64
  const showRetryMessage = isRetrySupported(message);
65
65
  const showRevokeMessage = isRevokeMessageSupported(message, currentUserId);
66
66
 
67
67
  return {
68
68
  showCopyMessage,
69
- showCopyMessageLink,
69
+ // showCopyMessageLink,
70
70
  showRetryMessage,
71
71
  showRevokeMessage,
72
72
  };
@@ -41,6 +41,15 @@ const i18nKey: Record<string, string> = {
41
41
  'msg_type_link': '[Liên kết]',
42
42
  'msg_type_revoke': 'Đã thu hồi tin nhắn',
43
43
  'chat:revoked_by_sender': '{{sender}} đã thu hồi tin nhắn',
44
+ 'chat:mute_action': 'Tắt thông báo',
45
+ 'chat:unmute_action': 'Bật thông báo',
46
+ 'chat:mute_confirm_title': 'Tắt thông báo',
47
+ 'chat:mute_confirm_desc':
48
+ 'Bạn có thể bỏ lỡ tin nhắn quan trọng nếu tắt thông báo! Bạn có chắc chắn muốn tắt thông báo?',
49
+ 'chat:mute_confirm_primary': 'Tắt thông báo',
50
+ 'chat:mute_confirm_secondary': 'Quay lại',
51
+ 'chat:mute_toast_success': 'Đã tắt thông báo',
52
+ 'chat:unmute_toast_success': 'Đã bật thông báo',
44
53
  'start': 'Bắt đầu',
45
54
  'restart': 'Bắt đầu lại',
46
55
  };
@@ -61,7 +61,7 @@ const DeviceUtils = {
61
61
  const result = await ImagePicker.openPicker({
62
62
  // cropping: true,
63
63
  mediaType: 'any',
64
- compressImageQuality: 0.8,
64
+ compressImageQuality: 1,
65
65
  multiple,
66
66
  forceJpg: true,
67
67
  });