@droppii-org/chat-mobile 0.2.78 → 0.2.80
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.
- package/lib/module/components/messages/BubbleTail.js +31 -0
- package/lib/module/components/messages/BubbleTail.js.map +1 -0
- package/lib/module/components/messages/BubbleTailRow.js +46 -0
- package/lib/module/components/messages/BubbleTailRow.js.map +1 -0
- package/lib/module/components/messages/bubbleTail.utils.js +19 -0
- package/lib/module/components/messages/bubbleTail.utils.js.map +1 -0
- package/lib/module/components/messages/fileMessage/index.js +72 -65
- package/lib/module/components/messages/fileMessage/index.js.map +1 -1
- package/lib/module/components/messages/imageMessage/index.js +23 -17
- package/lib/module/components/messages/imageMessage/index.js.map +1 -1
- package/lib/module/components/messages/linkMessage/index.js +11 -23
- package/lib/module/components/messages/linkMessage/index.js.map +1 -1
- package/lib/module/components/messages/mergedMessage/index.js +14 -7
- package/lib/module/components/messages/mergedMessage/index.js.map +1 -1
- package/lib/module/components/messages/quotedMessage/index.js +11 -23
- package/lib/module/components/messages/quotedMessage/index.js.map +1 -1
- package/lib/module/components/messages/revokedMessage/index.js +14 -7
- package/lib/module/components/messages/revokedMessage/index.js.map +1 -1
- package/lib/module/components/messages/stickerMessage/index.js +13 -7
- package/lib/module/components/messages/stickerMessage/index.js.map +1 -1
- package/lib/module/components/messages/textMessage/index.js +11 -26
- package/lib/module/components/messages/textMessage/index.js.map +1 -1
- package/lib/module/components/messages/types.js.map +1 -1
- package/lib/module/components/messages/videoMessage/index.js +16 -8
- package/lib/module/components/messages/videoMessage/index.js.map +1 -1
- package/lib/module/core/useChatListener.js +11 -0
- package/lib/module/core/useChatListener.js.map +1 -1
- package/lib/module/hooks/groups/useDismissGroup.js +2 -1
- package/lib/module/hooks/groups/useDismissGroup.js.map +1 -1
- package/lib/module/hooks/groups/useGroupAccessGuard.js +145 -0
- package/lib/module/hooks/groups/useGroupAccessGuard.js.map +1 -0
- package/lib/module/screens/ChatInfo/ChatInfoDescriptionRow.js +4 -1
- package/lib/module/screens/ChatInfo/ChatInfoDescriptionRow.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatDetail.js +12 -10
- package/lib/module/screens/chat-detail/ChatDetail.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatDetailHeader.js +3 -9
- package/lib/module/screens/chat-detail/ChatDetailHeader.js.map +1 -1
- package/lib/module/screens/chat-detail/ChatListLegend.js +71 -21
- package/lib/module/screens/chat-detail/ChatListLegend.js.map +1 -1
- package/lib/module/screens/chat-detail/legend/LegendChatDay.js +8 -2
- package/lib/module/screens/chat-detail/legend/LegendChatDay.js.map +1 -1
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js +38 -13
- package/lib/module/screens/chat-detail/legend/LegendChatMessage.js.map +1 -1
- package/lib/module/screens/inbox/CommunityTab.js +5 -2
- package/lib/module/screens/inbox/CommunityTab.js.map +1 -1
- package/lib/module/screens/inbox/MessagesTab.js +2 -2
- package/lib/module/screens/inbox/MessagesTab.js.map +1 -1
- package/lib/module/store/conversation.js +18 -20
- package/lib/module/store/conversation.js.map +1 -1
- package/lib/module/translation/resources/i18n.js +4 -1
- package/lib/module/translation/resources/i18n.js.map +1 -1
- package/lib/module/utils/conversation.js +4 -1
- package/lib/module/utils/conversation.js.map +1 -1
- package/lib/module/utils/legendListMessage.js +86 -12
- package/lib/module/utils/legendListMessage.js.map +1 -1
- package/lib/module/utils/message.js +19 -1
- package/lib/module/utils/message.js.map +1 -1
- package/lib/module/utils/messageUtils.js +7 -1
- package/lib/module/utils/messageUtils.js.map +1 -1
- package/lib/typescript/src/components/messages/BubbleTail.d.ts +13 -0
- package/lib/typescript/src/components/messages/BubbleTail.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/BubbleTailRow.d.ts +25 -0
- package/lib/typescript/src/components/messages/BubbleTailRow.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/bubbleTail.utils.d.ts +11 -0
- package/lib/typescript/src/components/messages/bubbleTail.utils.d.ts.map +1 -0
- package/lib/typescript/src/components/messages/fileMessage/index.d.ts +1 -1
- package/lib/typescript/src/components/messages/fileMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/imageMessage/index.d.ts +1 -1
- package/lib/typescript/src/components/messages/imageMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/linkMessage/index.d.ts +1 -1
- package/lib/typescript/src/components/messages/linkMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/mergedMessage/index.d.ts +1 -1
- package/lib/typescript/src/components/messages/mergedMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/quotedMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/revokedMessage/index.d.ts +1 -1
- package/lib/typescript/src/components/messages/revokedMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/stickerMessage/index.d.ts +1 -1
- package/lib/typescript/src/components/messages/stickerMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/textMessage/index.d.ts +1 -1
- package/lib/typescript/src/components/messages/textMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/types.d.ts +3 -0
- package/lib/typescript/src/components/messages/types.d.ts.map +1 -1
- package/lib/typescript/src/components/messages/videoMessage/index.d.ts +1 -1
- package/lib/typescript/src/components/messages/videoMessage/index.d.ts.map +1 -1
- package/lib/typescript/src/core/useChatListener.d.ts.map +1 -1
- package/lib/typescript/src/hooks/groups/useDismissGroup.d.ts.map +1 -1
- package/lib/typescript/src/hooks/groups/useGroupAccessGuard.d.ts +10 -0
- package/lib/typescript/src/hooks/groups/useGroupAccessGuard.d.ts.map +1 -0
- package/lib/typescript/src/screens/ChatInfo/ChatInfoDescriptionRow.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetail.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatDetailHeader.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/ChatListLegend.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatDay.d.ts +6 -1
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatDay.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts +14 -1
- package/lib/typescript/src/screens/chat-detail/legend/LegendChatMessage.d.ts.map +1 -1
- package/lib/typescript/src/screens/chat-detail/types.d.ts +0 -1
- package/lib/typescript/src/screens/chat-detail/types.d.ts.map +1 -1
- package/lib/typescript/src/store/conversation.d.ts.map +1 -1
- package/lib/typescript/src/translation/resources/i18n.d.ts.map +1 -1
- package/lib/typescript/src/utils/conversation.d.ts.map +1 -1
- package/lib/typescript/src/utils/legendListMessage.d.ts +19 -4
- package/lib/typescript/src/utils/legendListMessage.d.ts.map +1 -1
- package/lib/typescript/src/utils/message.d.ts +17 -0
- package/lib/typescript/src/utils/message.d.ts.map +1 -1
- package/lib/typescript/src/utils/messageUtils.d.ts +1 -0
- package/lib/typescript/src/utils/messageUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/messages/BubbleTail.tsx +35 -0
- package/src/components/messages/BubbleTailRow.tsx +64 -0
- package/src/components/messages/bubbleTail.utils.ts +21 -0
- package/src/components/messages/fileMessage/index.tsx +90 -83
- package/src/components/messages/imageMessage/index.tsx +26 -23
- package/src/components/messages/linkMessage/index.tsx +6 -18
- package/src/components/messages/mergedMessage/index.tsx +27 -15
- package/src/components/messages/quotedMessage/index.tsx +7 -19
- package/src/components/messages/revokedMessage/index.tsx +23 -14
- package/src/components/messages/stickerMessage/index.tsx +16 -11
- package/src/components/messages/textMessage/index.tsx +6 -22
- package/src/components/messages/types.ts +3 -0
- package/src/components/messages/videoMessage/index.tsx +13 -10
- package/src/core/useChatListener.ts +14 -0
- package/src/hooks/groups/useDismissGroup.tsx +1 -0
- package/src/hooks/groups/useGroupAccessGuard.ts +182 -0
- package/src/screens/ChatInfo/ChatInfoDescriptionRow.tsx +5 -1
- package/src/screens/chat-detail/ChatDetail.tsx +11 -13
- package/src/screens/chat-detail/ChatDetailHeader.tsx +2 -6
- package/src/screens/chat-detail/ChatListLegend.tsx +97 -28
- package/src/screens/chat-detail/legend/LegendChatDay.tsx +25 -15
- package/src/screens/chat-detail/legend/LegendChatMessage.tsx +62 -12
- package/src/screens/chat-detail/types.ts +0 -1
- package/src/screens/inbox/CommunityTab.tsx +2 -2
- package/src/screens/inbox/MessagesTab.tsx +1 -1
- package/src/store/conversation.ts +14 -18
- package/src/translation/resources/i18n.ts +4 -0
- package/src/utils/conversation.ts +6 -3
- package/src/utils/legendListMessage.ts +123 -14
- package/src/utils/message.ts +19 -1
- package/src/utils/messageUtils.ts +9 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { MessageType } from '@droppii/openim-rn-client-sdk';
|
|
4
|
+
import { GROUP_NOTIFICATION_TYPES } from "./messageUtils.js";
|
|
5
|
+
import { getMessageRenderId, getMessageTime } from "./message.js";
|
|
4
6
|
|
|
5
7
|
/**
|
|
6
8
|
* Extract message text based on content type
|
|
@@ -40,26 +42,98 @@ export const getMessageText = message => {
|
|
|
40
42
|
return message.content || '';
|
|
41
43
|
}
|
|
42
44
|
};
|
|
45
|
+
|
|
46
|
+
/** Where a message sits inside its run of consecutive same-sender messages. */
|
|
47
|
+
|
|
48
|
+
/** Two messages further apart than this never share a cluster. */
|
|
49
|
+
const GROUP_TIME_GAP = 300_000; // 5 minutes
|
|
50
|
+
|
|
51
|
+
/** Virtual sender for bot conversations — see getGroupKey. */
|
|
52
|
+
const BOT_GROUP_KEY = '__bot__';
|
|
53
|
+
const startOfDay = timestamp => {
|
|
54
|
+
const date = new Date(timestamp);
|
|
55
|
+
date.setHours(0, 0, 0, 0);
|
|
56
|
+
return date.getTime();
|
|
57
|
+
};
|
|
58
|
+
|
|
43
59
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
60
|
+
* System banners (group created/renamed/member changes) and anything without a
|
|
61
|
+
* sender are not user-authored, so they never join a cluster and always break
|
|
62
|
+
* the runs on both sides of them.
|
|
63
|
+
*/
|
|
64
|
+
const isSystemMessage = message => GROUP_NOTIFICATION_TYPES.includes(message.contentType) || !message.sendID;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Identity two messages must share to cluster together. In a bot conversation
|
|
68
|
+
* every incoming message is treated as one virtual sender: replies come from
|
|
69
|
+
* the bot and from human agents under different sendIDs, but read as a single
|
|
70
|
+
* continuous voice.
|
|
71
|
+
*/
|
|
72
|
+
const getGroupKey = (message, isBotConversation, currentUserId) => {
|
|
73
|
+
const isOutgoing = message.sendID === currentUserId;
|
|
74
|
+
if (isBotConversation && !isOutgoing) return BOT_GROUP_KEY;
|
|
75
|
+
return message.sendID;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Precompute per-message render data (day dividers + cluster position) so
|
|
79
|
+
* renderItem stays allocation-free.
|
|
46
80
|
*
|
|
47
|
-
*
|
|
81
|
+
* Runs in two passes: day starts first, because cluster boundaries depend on
|
|
82
|
+
* them — a divider between two messages separates them however close in time
|
|
83
|
+
* they are.
|
|
48
84
|
*/
|
|
49
|
-
export const precomputeLegendListData = messages
|
|
85
|
+
export const precomputeLegendListData = (messages, {
|
|
86
|
+
isBotConversation = false,
|
|
87
|
+
currentUserId
|
|
88
|
+
} = {}) => {
|
|
50
89
|
const dataMap = new Map();
|
|
90
|
+
|
|
91
|
+
// Pass 1 — identity, timestamp, day divider.
|
|
92
|
+
const dayStarts = [];
|
|
93
|
+
const ids = [];
|
|
94
|
+
// Resolved timestamps, reused by pass 2. Shared with the list's sort key so
|
|
95
|
+
// cluster boundaries are computed over the same ordering that gets rendered.
|
|
96
|
+
const timestamps = [];
|
|
51
97
|
let lastDay = null;
|
|
52
98
|
messages.forEach((message, index) => {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
99
|
+
const messageId = getMessageRenderId(message, index);
|
|
100
|
+
|
|
101
|
+
// A message still in flight can reach us with no usable timestamp at all.
|
|
102
|
+
// Left as 0 it lands on the epoch, which reads as a different calendar day
|
|
103
|
+
// from its neighbours — that inserts a bogus divider AND splits the cluster,
|
|
104
|
+
// stranding a tail on the message before it. Anchor it to the previous
|
|
105
|
+
// message instead, which is where it belongs in both senses.
|
|
106
|
+
const rawCreatedAt = getMessageTime(message);
|
|
107
|
+
const createdAt = rawCreatedAt > 0 ? rawCreatedAt : timestamps[index - 1] ?? rawCreatedAt;
|
|
108
|
+
const day = startOfDay(createdAt);
|
|
109
|
+
const prevTimestamp = timestamps[index - 1];
|
|
110
|
+
ids[index] = messageId;
|
|
111
|
+
timestamps[index] = createdAt;
|
|
112
|
+
dayStarts[index] = lastDay !== day;
|
|
113
|
+
lastDay = day;
|
|
57
114
|
dataMap.set(messageId, {
|
|
58
115
|
messageId,
|
|
59
|
-
dayStart:
|
|
60
|
-
createdAt
|
|
116
|
+
dayStart: dayStarts[index],
|
|
117
|
+
timeBreak: prevTimestamp !== undefined && createdAt - prevTimestamp > GROUP_TIME_GAP,
|
|
118
|
+
createdAt,
|
|
119
|
+
groupPosition: 'solo'
|
|
61
120
|
});
|
|
62
|
-
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
// Pass 2 — cluster position, now that every day divider is known.
|
|
124
|
+
messages.forEach((message, index) => {
|
|
125
|
+
const entry = dataMap.get(ids[index]);
|
|
126
|
+
if (!entry) return;
|
|
127
|
+
if (isSystemMessage(message)) return; // stays 'solo'
|
|
128
|
+
|
|
129
|
+
const key = getGroupKey(message, isBotConversation, currentUserId);
|
|
130
|
+
const prev = messages[index - 1];
|
|
131
|
+
const next = messages[index + 1];
|
|
132
|
+
const joinsPrev = !!prev && !isSystemMessage(prev) && getGroupKey(prev, isBotConversation, currentUserId) === key && timestamps[index] - timestamps[index - 1] <= GROUP_TIME_GAP &&
|
|
133
|
+
// A divider above THIS message separates it from the one before it.
|
|
134
|
+
!dayStarts[index];
|
|
135
|
+
const joinsNext = !!next && !isSystemMessage(next) && getGroupKey(next, isBotConversation, currentUserId) === key && timestamps[index + 1] - timestamps[index] <= GROUP_TIME_GAP && !dayStarts[index + 1];
|
|
136
|
+
entry.groupPosition = joinsPrev ? joinsNext ? 'middle' : 'last' : joinsNext ? 'first' : 'solo';
|
|
63
137
|
});
|
|
64
138
|
return dataMap;
|
|
65
139
|
};
|
|
@@ -72,7 +146,7 @@ export const computeDayStarts = messages => {
|
|
|
72
146
|
const dayStartMap = new Map();
|
|
73
147
|
let lastDay = null;
|
|
74
148
|
messages.forEach(message => {
|
|
75
|
-
const day =
|
|
149
|
+
const day = startOfDay(getMessageTime(message));
|
|
76
150
|
const messageId = message.clientMsgID || message.serverMsgID || '';
|
|
77
151
|
dayStartMap.set(messageId, lastDay !== day);
|
|
78
152
|
lastDay = day;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MessageType","getMessageText","message","contentType","TextMessage","textElem","content","AtTextMessage","atTextElem","text","QuoteMessage","quoteElem","PictureMessage","VoiceMessage","soundElem","sourceUrl","VideoMessage","videoElem","videoUrl","FileMessage","fileElem","fileName","CardMessage","cardElem","nickname","LocationMessage","locationElem","description","CustomMessage","customElem","FaceMessage","notificationElem","detail","precomputeLegendListData","messages","dataMap","Map","lastDay","forEach","index","messageId","
|
|
1
|
+
{"version":3,"names":["MessageType","GROUP_NOTIFICATION_TYPES","getMessageRenderId","getMessageTime","getMessageText","message","contentType","TextMessage","textElem","content","AtTextMessage","atTextElem","text","QuoteMessage","quoteElem","PictureMessage","VoiceMessage","soundElem","sourceUrl","VideoMessage","videoElem","videoUrl","FileMessage","fileElem","fileName","CardMessage","cardElem","nickname","LocationMessage","locationElem","description","CustomMessage","customElem","FaceMessage","notificationElem","detail","GROUP_TIME_GAP","BOT_GROUP_KEY","startOfDay","timestamp","date","Date","setHours","getTime","isSystemMessage","includes","sendID","getGroupKey","isBotConversation","currentUserId","isOutgoing","precomputeLegendListData","messages","dataMap","Map","dayStarts","ids","timestamps","lastDay","forEach","index","messageId","rawCreatedAt","createdAt","day","prevTimestamp","set","dayStart","timeBreak","undefined","groupPosition","entry","get","key","prev","next","joinsPrev","joinsNext","computeDayStarts","dayStartMap","clientMsgID","serverMsgID"],"sourceRoot":"../../../src","sources":["utils/legendListMessage.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,8 +2,26 @@
|
|
|
2
2
|
|
|
3
3
|
import { PeerType, SessionType } from '@droppii/openim-rn-client-sdk';
|
|
4
4
|
import { getConversationID } from "./conversation.js";
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Canonical timestamp for a message. `sendTime` is 0 until the SDK stamps an
|
|
8
|
+
* outgoing message, so `createTime` covers the in-flight window. This is the
|
|
9
|
+
* key the list is sorted by — anything reasoning about message order must use
|
|
10
|
+
* it too, or it will disagree with the order actually rendered.
|
|
11
|
+
*/
|
|
12
|
+
export const getMessageTime = message => message.sendTime || message.createTime || 0;
|
|
6
13
|
const getMessageKey = message => message.clientMsgID || message.serverMsgID;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Stable id for a message inside a rendered list.
|
|
17
|
+
*
|
|
18
|
+
* A message that has not round-tripped through the server yet may carry
|
|
19
|
+
* neither id, so position and timestamp stand in. Every consumer that looks a
|
|
20
|
+
* message up by id must derive it the same way — the precompute map is keyed
|
|
21
|
+
* on this, so a divergent formula silently misses and the message renders
|
|
22
|
+
* without its day divider or cluster position.
|
|
23
|
+
*/
|
|
24
|
+
export const getMessageRenderId = (message, index) => getMessageKey(message) || `temp-${getMessageTime(message)}-${index}`;
|
|
7
25
|
export const mergeMessages = (current, incoming) => {
|
|
8
26
|
const map = new Map();
|
|
9
27
|
for (const message of [...current, ...incoming]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PeerType","SessionType","getConversationID","getMessageTime","message","sendTime","createTime","getMessageKey","clientMsgID","serverMsgID","mergeMessages","current","incoming","map","Map","key","set","Array","from","values","sort","a","b","normalizeCreatedMessage","normalized","JSON","parse","Error","resolveHistoryLastMinSeq","history","fallbackMessage","lastMinSeq","seq","getHistoryPaginationAnchor","messages","length","oldest","reduce","prev","curr","hasNewHistoryMessages","currentKeys","Set","filter","Boolean","some","has","belongsToConversation","conversationId","targetUserId","sessionType","Single","forwardId","sendID","recvID","reverseId","Group","groupID","getReceiverId","conversation","peerType","conversationID","slice","userID"],"sourceRoot":"../../../src","sources":["utils/message.ts"],"mappings":";;AAAA,SACEA,QAAQ,EACRC,WAAW,QAGN,+BAA+B;AACtC,SAASC,iBAAiB,QAAQ,mBAAgB;
|
|
1
|
+
{"version":3,"names":["PeerType","SessionType","getConversationID","getMessageTime","message","sendTime","createTime","getMessageKey","clientMsgID","serverMsgID","getMessageRenderId","index","mergeMessages","current","incoming","map","Map","key","set","Array","from","values","sort","a","b","normalizeCreatedMessage","normalized","JSON","parse","Error","resolveHistoryLastMinSeq","history","fallbackMessage","lastMinSeq","seq","getHistoryPaginationAnchor","messages","length","oldest","reduce","prev","curr","hasNewHistoryMessages","currentKeys","Set","filter","Boolean","some","has","belongsToConversation","conversationId","targetUserId","sessionType","Single","forwardId","sendID","recvID","reverseId","Group","groupID","getReceiverId","conversation","peerType","conversationID","slice","userID"],"sourceRoot":"../../../src","sources":["utils/message.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -82,6 +82,12 @@ export const GROUP_NOTIFICATION_TEXT = {
|
|
|
82
82
|
bySenderKey: 'chat:group_message_unpinned_by'
|
|
83
83
|
}
|
|
84
84
|
};
|
|
85
|
+
|
|
86
|
+
// The content types above, as a plain list. Both the chat list (to decide
|
|
87
|
+
// whether a message renders as a system banner) and the grouping precompute
|
|
88
|
+
// (system messages never join a sender cluster) need this, so it is derived
|
|
89
|
+
// once here rather than in each consumer.
|
|
90
|
+
export const GROUP_NOTIFICATION_TYPES = Object.keys(GROUP_NOTIFICATION_TEXT).map(Number);
|
|
85
91
|
const parseNotificationDetail = message => {
|
|
86
92
|
if (!message.notificationElem?.detail) return undefined;
|
|
87
93
|
try {
|
|
@@ -207,7 +213,7 @@ export const getMessagePreview = message => {
|
|
|
207
213
|
{
|
|
208
214
|
const fileName = message?.fileElem?.fileName;
|
|
209
215
|
if (fileName) {
|
|
210
|
-
return `[File] ${fileName}`;
|
|
216
|
+
return `[File] ${truncateMiddle(fileName, 20)}`;
|
|
211
217
|
}
|
|
212
218
|
return '[File]';
|
|
213
219
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["MessageType","PeerType","formatDuration","getFileIcon","getMimeType","trans","isMessageRevoked","message","contentType","RevokeMessage","GROUP_NOTIFICATION_TEXT","GroupCreated","previewKey","bySenderKey","GroupInfoUpdated","MemberQuit","GroupOwnerTransferred","MemberKicked","MemberInvited","MemberEnter","GroupDismissed","GroupMemberMuted","GroupMemberCancelMuted","GroupMuted","GroupCancelMuted","GroupAnnouncementUpdated","GroupNameUpdated","GroupMemberSetToAdmin","PinMsg","parseNotificationDetail","notificationElem","detail","undefined","JSON","parse","formatMemberNames","members","names","map","member","nickname","filter","length","join","resolveNotificationText","base","params","newGroupName","group","groupName","invitedUserList","kickedUserList","memberName","newGroupOwner","changedUser","isPinned","extractTextContent","textElem","content","parsed","text","description","getMessagePreview","TextMessage","PictureMessage","VideoMessage","videoData","videoElem","duration","durationStr","FileMessage","fileName","fileElem","MergeMessage","mergeData","mergeElem","multiMessage","imageCount","msg","UrlTextMessage","urlText","urlTextElem","urls","AtTextMessage","QuoteMessage","quoteElem","CustomMessage","customElem","StickerMessage","FriendAdded","OANotification","BurnMessageChange","resolved","getMessagePreviewTextProps","ellipsizeMode","getMessagePreviewParts","textProps","getImageUrl","pictureElem","snapshotPicture","url","bigPicture","sourcePicture","getUrlMetadata","ex","urlMetadata","getPinnedMessagePreview","thumbnailUrl","mediaType","subtitleKey","snapshotUrl","fileIcon","image","firstImage","find","getNotificationOpUserNickname","opUser","quitUser","getSenderName","currentUserId","conversation","sender","sendID","senderNickname","peerType","Bot","showName","getLastMessageText","hideSenderPrefixForDirectChat","preview","resolvedNotification","hideSenderPrefix","User","getReplySenderName","isSent","parseUrlMetadata","truncateMiddle","name","maxLength","dotIndex","lastIndexOf","baseName","slice","ext","headLen","Math","ceil","tailLen","floor"],"sourceRoot":"../../../src","sources":["utils/messageUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["MessageType","PeerType","formatDuration","getFileIcon","getMimeType","trans","isMessageRevoked","message","contentType","RevokeMessage","GROUP_NOTIFICATION_TEXT","GroupCreated","previewKey","bySenderKey","GroupInfoUpdated","MemberQuit","GroupOwnerTransferred","MemberKicked","MemberInvited","MemberEnter","GroupDismissed","GroupMemberMuted","GroupMemberCancelMuted","GroupMuted","GroupCancelMuted","GroupAnnouncementUpdated","GroupNameUpdated","GroupMemberSetToAdmin","PinMsg","GROUP_NOTIFICATION_TYPES","Object","keys","map","Number","parseNotificationDetail","notificationElem","detail","undefined","JSON","parse","formatMemberNames","members","names","member","nickname","filter","length","join","resolveNotificationText","base","params","newGroupName","group","groupName","invitedUserList","kickedUserList","memberName","newGroupOwner","changedUser","isPinned","extractTextContent","textElem","content","parsed","text","description","getMessagePreview","TextMessage","PictureMessage","VideoMessage","videoData","videoElem","duration","durationStr","FileMessage","fileName","fileElem","truncateMiddle","MergeMessage","mergeData","mergeElem","multiMessage","imageCount","msg","UrlTextMessage","urlText","urlTextElem","urls","AtTextMessage","QuoteMessage","quoteElem","CustomMessage","customElem","StickerMessage","FriendAdded","OANotification","BurnMessageChange","resolved","getMessagePreviewTextProps","ellipsizeMode","getMessagePreviewParts","textProps","getImageUrl","pictureElem","snapshotPicture","url","bigPicture","sourcePicture","getUrlMetadata","ex","urlMetadata","getPinnedMessagePreview","thumbnailUrl","mediaType","subtitleKey","snapshotUrl","fileIcon","image","firstImage","find","getNotificationOpUserNickname","opUser","quitUser","getSenderName","currentUserId","conversation","sender","sendID","senderNickname","peerType","Bot","showName","getLastMessageText","hideSenderPrefixForDirectChat","preview","resolvedNotification","hideSenderPrefix","User","getReplySenderName","isSent","parseUrlMetadata","name","maxLength","dotIndex","lastIndexOf","baseName","slice","ext","headLen","Math","ceil","tailLen","floor"],"sourceRoot":"../../../src","sources":["utils/messageUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const TAIL_WIDTH = 4;
|
|
2
|
+
export interface BubbleTailProps {
|
|
3
|
+
/**
|
|
4
|
+
* Solid bubble colour. The export carries fill-opacity 0.1, but
|
|
5
|
+
* CHAT_BUBBLE_COLORS is already flattened — reusing the translucent fill here
|
|
6
|
+
* would render the tail a different shade from the bubble it joins.
|
|
7
|
+
*/
|
|
8
|
+
color: string;
|
|
9
|
+
/** Side of the bubble the tail hangs off. */
|
|
10
|
+
side: 'left' | 'right';
|
|
11
|
+
}
|
|
12
|
+
export declare const BubbleTail: import("react").MemoExoticComponent<({ color, side }: BubbleTailProps) => import("react").JSX.Element>;
|
|
13
|
+
//# sourceMappingURL=BubbleTail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BubbleTail.d.ts","sourceRoot":"","sources":["../../../../../src/components/messages/BubbleTail.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,IAAI,CAAC;AAQ5B,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,UAAU,wDAA0B,eAAe,iCAU9D,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type PropsWithChildren } from 'react';
|
|
2
|
+
import type { GroupPosition } from '../../utils/legendListMessage';
|
|
3
|
+
export type BubbleTailRowProps = PropsWithChildren<{
|
|
4
|
+
isOutgoing: boolean;
|
|
5
|
+
groupPosition?: GroupPosition;
|
|
6
|
+
/**
|
|
7
|
+
* Set false for media bubbles, which carry no tail but still need the gutter
|
|
8
|
+
* so they line up with the text bubbles around them.
|
|
9
|
+
*/
|
|
10
|
+
withTail?: boolean;
|
|
11
|
+
}>;
|
|
12
|
+
/**
|
|
13
|
+
* Places the tail beside the bubble that closes a cluster.
|
|
14
|
+
*
|
|
15
|
+
* The gutter on the tail side is always TAIL_WIDTH wide, whether or not it
|
|
16
|
+
* actually holds a tail. That keeps every bubble in a cluster starting at the
|
|
17
|
+
* same offset while leaving the row's own padding intact — the tail occupies
|
|
18
|
+
* reserved space rather than overhanging into the margin.
|
|
19
|
+
*
|
|
20
|
+
* The tail is a real sibling rather than an absolutely positioned overlay: it
|
|
21
|
+
* sits outside the bubble's edge, and `overflow: visible` is unreliable on
|
|
22
|
+
* Android for views carrying elevation — which the neighbouring pin badge does.
|
|
23
|
+
*/
|
|
24
|
+
export declare const BubbleTailRow: import("react").MemoExoticComponent<({ isOutgoing, groupPosition, withTail, children, }: BubbleTailRowProps) => import("react").JSX.Element>;
|
|
25
|
+
//# sourceMappingURL=BubbleTailRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BubbleTailRow.d.ts","sourceRoot":"","sources":["../../../../../src/components/messages/BubbleTailRow.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAMrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;IACjD,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,2FAMrB,kBAAkB,iCAqBtB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ViewStyle } from 'react-native';
|
|
2
|
+
import type { GroupPosition } from '../../utils/legendListMessage';
|
|
3
|
+
/** Only the message closing a cluster carries a tail. */
|
|
4
|
+
export declare const hasBubbleTail: (position?: GroupPosition) => boolean;
|
|
5
|
+
/**
|
|
6
|
+
* The corner the tail hangs off must be square, otherwise the tail's straight
|
|
7
|
+
* 18px edge meets the bubble's rounded corner and leaves a visible notch.
|
|
8
|
+
* Every other corner keeps its normal radius.
|
|
9
|
+
*/
|
|
10
|
+
export declare const getTailCornerStyle: (isOutgoing: boolean, position?: GroupPosition) => ViewStyle | undefined;
|
|
11
|
+
//# sourceMappingURL=bubbleTail.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bubbleTail.utils.d.ts","sourceRoot":"","sources":["../../../../../src/components/messages/bubbleTail.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,yDAAyD;AACzD,eAAO,MAAM,aAAa,GAAI,WAAW,aAAa,KAAG,OACb,CAAC;AAE7C;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,YAAY,OAAO,EACnB,WAAW,aAAa,KACvB,SAAS,GAAG,SAKd,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { BaseLegendMessageProps } from '../types';
|
|
2
|
-
export declare const FileMessage: import("react").MemoExoticComponent<({ message, isOutgoing }: BaseLegendMessageProps) => import("react").JSX.Element>;
|
|
2
|
+
export declare const FileMessage: import("react").MemoExoticComponent<({ message, isOutgoing, groupPosition }: BaseLegendMessageProps) => import("react").JSX.Element>;
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/fileMessage/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/fileMessage/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAQvD,eAAO,MAAM,WAAW,+EACmB,sBAAsB,iCAuIhE,CAAC"}
|
|
@@ -11,5 +11,5 @@ export declare const resolveImageDisplayDims: (message: unknown, windowWidth: nu
|
|
|
11
11
|
width: number;
|
|
12
12
|
height: number;
|
|
13
13
|
};
|
|
14
|
-
export declare const ImageMessage: import("react").MemoExoticComponent<({ message, onMediaPress }: BaseLegendMessageProps) => import("react").JSX.Element>;
|
|
14
|
+
export declare const ImageMessage: import("react").MemoExoticComponent<({ message, isOutgoing, onMediaPress }: BaseLegendMessageProps) => import("react").JSX.Element>;
|
|
15
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/imageMessage/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/imageMessage/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAgCvD;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,OAAO,EAChB,aAAa,MAAM,KAClB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAuBjC,CAAC;AAEF,eAAO,MAAM,YAAY,8EACiB,sBAAsB,iCAoF/D,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { BaseLegendMessageProps } from '../types';
|
|
2
|
-
export declare const LinkMessage: import("react").MemoExoticComponent<({ message, isOutgoing,
|
|
2
|
+
export declare const LinkMessage: import("react").MemoExoticComponent<({ message, isOutgoing, onPressUrl, isHighlighted, groupPosition, }: BaseLegendMessageProps & {
|
|
3
3
|
onPressUrl?: (url: string) => void;
|
|
4
4
|
}) => import("react").JSX.Element>;
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/linkMessage/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/linkMessage/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAmDvD,eAAO,MAAM,WAAW,2GAOnB,sBAAsB,GAAG;IAAE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,iCAsEnE,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { BaseLegendMessageProps } from '../types';
|
|
2
|
-
export declare const MergedMessage: import("react").MemoExoticComponent<({ message, isOutgoing, onMediaPress }: BaseLegendMessageProps) => import("react").JSX.Element>;
|
|
2
|
+
export declare const MergedMessage: import("react").MemoExoticComponent<({ message, isOutgoing, onMediaPress, groupPosition, }: BaseLegendMessageProps) => import("react").JSX.Element>;
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/mergedMessage/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/mergedMessage/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACvD,eAAO,MAAM,aAAa,8FAMrB,sBAAsB,iCAkC1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/quotedMessage/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/quotedMessage/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAsBvD,UAAU,kBAAmB,SAAQ,sBAAsB;CAAG;AAE9D,QAAA,MAAM,aAAa,8CAAgB,kBAAkB,iCAyGnD,CAAC;AAIH,eAAe,aAAa,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { BaseLegendMessageProps } from '../types';
|
|
2
|
-
export declare const RevokedMessage: import("react").MemoExoticComponent<({ isOutgoing }: BaseLegendMessageProps) => import("react").JSX.Element>;
|
|
2
|
+
export declare const RevokedMessage: import("react").MemoExoticComponent<({ isOutgoing, groupPosition }: BaseLegendMessageProps) => import("react").JSX.Element>;
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/revokedMessage/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/revokedMessage/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEvD,eAAO,MAAM,cAAc,sEACO,sBAAsB,iCAmBvD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { BaseLegendMessageProps } from '../types';
|
|
2
2
|
export declare const STICKER_SIZE = 120;
|
|
3
|
-
export declare const StickerMessage: import("react").MemoExoticComponent<({ message }: BaseLegendMessageProps) => import("react").JSX.Element>;
|
|
3
|
+
export declare const StickerMessage: import("react").MemoExoticComponent<({ message, isOutgoing }: BaseLegendMessageProps) => import("react").JSX.Element>;
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/stickerMessage/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/stickerMessage/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAKvD,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,cAAc,gEACC,sBAAsB,iCAajD,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { BaseLegendMessageProps } from '../types';
|
|
2
|
-
export declare const TextMessage: import("react").MemoExoticComponent<({ message, isOutgoing,
|
|
2
|
+
export declare const TextMessage: import("react").MemoExoticComponent<({ message, isOutgoing, isHighlighted, groupPosition, }: BaseLegendMessageProps) => import("react").JSX.Element>;
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/textMessage/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/textMessage/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AACvD,eAAO,MAAM,WAAW,+FAMnB,sBAAsB,iCA0B1B,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import type { MediaItem } from '../../hooks/useMediaViewer';
|
|
2
2
|
import type { MessageItem } from '@droppii/openim-rn-client-sdk';
|
|
3
|
+
import type { GroupPosition } from '../../utils/legendListMessage';
|
|
3
4
|
export interface BaseLegendMessageProps {
|
|
4
5
|
message: MessageItem;
|
|
5
6
|
isOutgoing: boolean;
|
|
6
7
|
createdAtTime: number;
|
|
7
8
|
isHighlighted?: boolean;
|
|
9
|
+
/** Position within its same-sender cluster — drives the bubble tail. */
|
|
10
|
+
groupPosition?: GroupPosition;
|
|
8
11
|
onMediaPress?: (items: MediaItem[], index?: number) => void;
|
|
9
12
|
}
|
|
10
13
|
export declare const formatMessageTime: (createdAt: number) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/messages/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/messages/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wEAAwE;IACxE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7D;AAED,eAAO,MAAM,iBAAiB,GAAI,WAAW,MAAM,WAWlD,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { BaseLegendMessageProps } from '../types';
|
|
2
|
-
export declare const VideoMessage: import("react").MemoExoticComponent<({ message, onMediaPress }: BaseLegendMessageProps) => import("react").JSX.Element>;
|
|
2
|
+
export declare const VideoMessage: import("react").MemoExoticComponent<({ message, isOutgoing, onMediaPress }: BaseLegendMessageProps) => import("react").JSX.Element>;
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/videoMessage/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/messages/videoMessage/index.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAQvD,eAAO,MAAM,YAAY,8EACiB,sBAAsB,iCAsE/D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChatListener.d.ts","sourceRoot":"","sources":["../../../../src/core/useChatListener.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"useChatListener.d.ts","sourceRoot":"","sources":["../../../../src/core/useChatListener.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,eAAe,YAqZ3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDismissGroup.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/groups/useDismissGroup.tsx"],"names":[],"mappings":"AAMA,UAAU,oBAAoB;IAC5B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AACD,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"useDismissGroup.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/groups/useDismissGroup.tsx"],"names":[],"mappings":"AAMA,UAAU,oBAAoB;IAC5B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AACD,wBAAgB,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE,oBAAoB;6BA2C9C,MAAM;EA4B1B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type Params = {
|
|
2
|
+
groupID?: string;
|
|
3
|
+
/** Navigate away from the chat screen. Called once, after the block modal. */
|
|
4
|
+
onBlocked: () => void;
|
|
5
|
+
};
|
|
6
|
+
export declare const useGroupAccessGuard: ({ groupID, onBlocked }: Params) => {
|
|
7
|
+
isCheckingAccess: boolean;
|
|
8
|
+
};
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=useGroupAccessGuard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGroupAccessGuard.d.ts","sourceRoot":"","sources":["../../../../../src/hooks/groups/useGroupAccessGuard.ts"],"names":[],"mappings":"AA0CA,KAAK,MAAM,GAAG;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,wBAAwB,MAAM;;CAqIjE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatInfoDescriptionRow.d.ts","sourceRoot":"","sources":["../../../../../src/screens/ChatInfo/ChatInfoDescriptionRow.tsx"],"names":[],"mappings":"AAOA,UAAU,2BAA2B;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,QAAA,MAAM,sBAAsB,sDACV,2BAA2B,
|
|
1
|
+
{"version":3,"file":"ChatInfoDescriptionRow.d.ts","sourceRoot":"","sources":["../../../../../src/screens/ChatInfo/ChatInfoDescriptionRow.tsx"],"names":[],"mappings":"AAOA,UAAU,2BAA2B;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,QAAA,MAAM,sBAAsB,sDACV,2BAA2B,iCAiF5C,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatDetail.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatDetail.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatDetail.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatDetail.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAkB/C,QAAA,MAAM,UAAU,wQAgBX,eAAe,iCA2LnB,CAAC;AAIF,eAAe,UAAU,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { ChatDetailHeaderProps } from './types';
|
|
2
|
-
declare const ChatDetailHeader: import("react").MemoExoticComponent<({ showAddMember, conversationId, targetUserId, onBack, onPressSearch, onPressAddMember, onPressMenu, onPressAvatar,
|
|
2
|
+
declare const ChatDetailHeader: import("react").MemoExoticComponent<({ showAddMember, conversationId, targetUserId, onBack, onPressSearch, onPressAddMember, onPressMenu, onPressAvatar, }: ChatDetailHeaderProps) => import("react").JSX.Element>;
|
|
3
3
|
export default ChatDetailHeader;
|
|
4
4
|
//# sourceMappingURL=ChatDetailHeader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatDetailHeader.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatDetailHeader.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAMrD,QAAA,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"ChatDetailHeader.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatDetailHeader.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAMrD,QAAA,MAAM,gBAAgB,8JAUjB,qBAAqB,iCA4HzB,CAAC;AAIF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatListLegend.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatListLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AASf,OAAiB,EAKf,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatListLegend.d.ts","sourceRoot":"","sources":["../../../../../src/screens/chat-detail/ChatListLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AASf,OAAiB,EAKf,KAAK,WAAW,EACjB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAc9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA8C7C,UAAU,2BAA4B,SAAQ,aAAa;IACzD,OAAO,EAAE,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACzC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,kBAAkB,EAAE,CAAC,IAAI,EAAE;QACzB,QAAQ,EAAE,OAAO,CAAC;QAClB,aAAa,EAAE,OAAO,CAAC;KACxB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,cAAc,6RAmBtB,2BAA2B,iCA2gB/B,CAAC"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
interface LegendChatDayProps {
|
|
2
2
|
createdAt: number;
|
|
3
|
+
/**
|
|
4
|
+
* Render just the clock time, without the day. Used where a cluster broke on
|
|
5
|
+
* elapsed time inside a single day — the date is already on screen above.
|
|
6
|
+
*/
|
|
7
|
+
timeOnly?: boolean;
|
|
3
8
|
}
|
|
4
|
-
export declare const LegendChatDay: import("react").MemoExoticComponent<({ createdAt }: LegendChatDayProps) => import("react").JSX.Element>;
|
|
9
|
+
export declare const LegendChatDay: import("react").MemoExoticComponent<({ createdAt, timeOnly }: LegendChatDayProps) => import("react").JSX.Element>;
|
|
5
10
|
export {};
|
|
6
11
|
//# sourceMappingURL=LegendChatDay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LegendChatDay.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/legend/LegendChatDay.tsx"],"names":[],"mappings":"AA8CA,UAAU,kBAAkB;IAC1B,SAAS,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"LegendChatDay.d.ts","sourceRoot":"","sources":["../../../../../../src/screens/chat-detail/legend/LegendChatDay.tsx"],"names":[],"mappings":"AA8CA,UAAU,kBAAkB;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,gEACU,kBAAkB,iCAqBrD,CAAC"}
|