Changeset View
Changeset View
Standalone View
Standalone View
lib/shared/message-utils.js
// @flow | // @flow | ||||
import invariant from 'invariant'; | import invariant from 'invariant'; | ||||
import _maxBy from 'lodash/fp/maxBy.js'; | import _maxBy from 'lodash/fp/maxBy.js'; | ||||
import _orderBy from 'lodash/fp/orderBy.js'; | import _orderBy from 'lodash/fp/orderBy.js'; | ||||
import * as React from 'react'; | import * as React from 'react'; | ||||
import { codeBlockRegex, type ParserRules } from './markdown.js'; | import { codeBlockRegex, type ParserRules } from './markdown.js'; | ||||
import type { CreationSideEffectsFunc } from './messages/message-spec.js'; | import type { CreationSideEffectsFunc } from './messages/message-spec.js'; | ||||
import { messageSpecs } from './messages/message-specs.js'; | import { messageSpecs } from './messages/message-specs.js'; | ||||
import { threadIsGroupChat } from './thread-utils.js'; | import { threadIsGroupChat } from './thread-utils.js'; | ||||
import { useStringForUser } from '../hooks/ens-cache.js'; | import { useStringForUser } from '../hooks/ens-cache.js'; | ||||
import { contentStringForMediaArray } from '../media/media-utils.js'; | import { contentStringForMediaArray } from '../media/media-utils.js'; | ||||
import type { ChatMessageInfoItem } from '../selectors/chat-selectors.js'; | |||||
import { userIDsToRelativeUserInfos } from '../selectors/user-selectors.js'; | import { userIDsToRelativeUserInfos } from '../selectors/user-selectors.js'; | ||||
import { type PlatformDetails, isWebPlatform } from '../types/device-types.js'; | import { type PlatformDetails, isWebPlatform } from '../types/device-types.js'; | ||||
import type { Media } from '../types/media-types.js'; | import type { Media } from '../types/media-types.js'; | ||||
import { messageTypes } from '../types/message-types-enum.js'; | import { messageTypes } from '../types/message-types-enum.js'; | ||||
import { | import { | ||||
type MessageInfo, | type MessageInfo, | ||||
type RawMessageInfo, | type RawMessageInfo, | ||||
type RobotextMessageInfo, | type RobotextMessageInfo, | ||||
▲ Show 20 Lines • Show All 575 Lines • ▼ Show 20 Lines | ) { | ||||
pinnedContent = contentStringForMediaArray(targetMessage.media); | pinnedContent = contentStringForMediaArray(targetMessage.media); | ||||
} else { | } else { | ||||
pinnedContent = 'a message'; | pinnedContent = 'a message'; | ||||
} | } | ||||
return pinnedContent; | return pinnedContent; | ||||
} | } | ||||
function modifyItemForResultScreen( | |||||
item: ChatMessageInfoItem, | |||||
): ChatMessageInfoItem { | |||||
if (item.messageInfoType === 'composable') { | |||||
return { | |||||
...item, | |||||
startsConversation: false, | |||||
startsCluster: true, | |||||
endsCluster: true, | |||||
messageInfo: { | |||||
...item.messageInfo, | |||||
creator: { | |||||
...item.messageInfo.creator, | |||||
isViewer: false, | |||||
}, | |||||
}, | |||||
}; | |||||
} | |||||
return item; | |||||
} | |||||
export { | export { | ||||
localIDPrefix, | localIDPrefix, | ||||
messageKey, | messageKey, | ||||
messageID, | messageID, | ||||
robotextForMessageInfo, | robotextForMessageInfo, | ||||
createMessageInfo, | createMessageInfo, | ||||
sortMessageInfoList, | sortMessageInfoList, | ||||
sortMessageIDs, | sortMessageIDs, | ||||
Show All 10 Lines | export { | ||||
createMessageReply, | createMessageReply, | ||||
getMostRecentNonLocalMessageID, | getMostRecentNonLocalMessageID, | ||||
getOldestNonLocalMessageID, | getOldestNonLocalMessageID, | ||||
getMessageTitle, | getMessageTitle, | ||||
mergeThreadMessageInfos, | mergeThreadMessageInfos, | ||||
useMessagePreview, | useMessagePreview, | ||||
useMessageCreationSideEffectsFunc, | useMessageCreationSideEffectsFunc, | ||||
getPinnedContentFromMessage, | getPinnedContentFromMessage, | ||||
modifyItemForResultScreen, | |||||
}; | }; |