Changeset View
Changeset View
Standalone View
Standalone View
lib/shared/thread-utils.js
Show All 35 Lines | |||||
import { | import { | ||||
threadInfoSelector, | threadInfoSelector, | ||||
pendingToRealizedThreadIDsSelector, | pendingToRealizedThreadIDsSelector, | ||||
} from '../selectors/thread-selectors.js'; | } from '../selectors/thread-selectors.js'; | ||||
import { | import { | ||||
getRelativeMemberInfos, | getRelativeMemberInfos, | ||||
usersWithPersonalThreadSelector, | usersWithPersonalThreadSelector, | ||||
} from '../selectors/user-selectors.js'; | } from '../selectors/user-selectors.js'; | ||||
import { getUserAvatarForThread } from '../shared/avatar-utils.js'; | |||||
import type { CalendarQuery } from '../types/entry-types.js'; | import type { CalendarQuery } from '../types/entry-types.js'; | ||||
import { | import { | ||||
type RobotextMessageInfo, | type RobotextMessageInfo, | ||||
type ComposableMessageInfo, | type ComposableMessageInfo, | ||||
messageTypes, | messageTypes, | ||||
} from '../types/message-types.js'; | } from '../types/message-types.js'; | ||||
import { userRelationshipStatus } from '../types/relationship-types.js'; | import { userRelationshipStatus } from '../types/relationship-types.js'; | ||||
import { | import { | ||||
▲ Show 20 Lines • Show All 810 Lines • ▼ Show 20 Lines | let threadInfo: ThreadInfo = { | ||||
roles: rawThreadInfo.roles, | roles: rawThreadInfo.roles, | ||||
currentUser: getCurrentUser(rawThreadInfo, viewerID, userInfos), | currentUser: getCurrentUser(rawThreadInfo, viewerID, userInfos), | ||||
repliesCount: rawThreadInfo.repliesCount, | repliesCount: rawThreadInfo.repliesCount, | ||||
}; | }; | ||||
threadInfo = { | threadInfo = { | ||||
...threadInfo, | ...threadInfo, | ||||
uiName: threadUIName(threadInfo), | uiName: threadUIName(threadInfo), | ||||
}; | }; | ||||
const { sourceMessageID } = rawThreadInfo; | const { sourceMessageID, avatar } = rawThreadInfo; | ||||
if (sourceMessageID) { | if (sourceMessageID) { | ||||
threadInfo = { ...threadInfo, sourceMessageID }; | threadInfo = { ...threadInfo, sourceMessageID }; | ||||
} | } | ||||
if (avatar) { | |||||
threadInfo = { ...threadInfo, avatar }; | |||||
} else if ( | |||||
rawThreadInfo.type === threadTypes.PERSONAL || | |||||
rawThreadInfo.type === threadTypes.PRIVATE | |||||
) { | |||||
threadInfo = { | |||||
...threadInfo, | |||||
avatar: getUserAvatarForThread(rawThreadInfo, viewerID, userInfos), | |||||
}; | |||||
} | |||||
return threadInfo; | return threadInfo; | ||||
} | } | ||||
function getCurrentUser( | function getCurrentUser( | ||||
threadInfo: RawThreadInfo | ThreadInfo, | threadInfo: RawThreadInfo | ThreadInfo, | ||||
viewerID: ?string, | viewerID: ?string, | ||||
userInfos: UserInfos, | userInfos: UserInfos, | ||||
): ThreadCurrentUserInfo { | ): ThreadCurrentUserInfo { | ||||
▲ Show 20 Lines • Show All 733 Lines • Show Last 20 Lines |