Unique Gift: Fix displayed sender (#5743)
This commit is contained in:
parent
d43c0e8f1f
commit
905124fe96
@ -10,6 +10,7 @@ import {
|
|||||||
selectCanPlayAnimatedEmojis,
|
selectCanPlayAnimatedEmojis,
|
||||||
selectPeer,
|
selectPeer,
|
||||||
selectSender,
|
selectSender,
|
||||||
|
selectUser,
|
||||||
} from '../../../../global/selectors';
|
} from '../../../../global/selectors';
|
||||||
import buildClassName from '../../../../util/buildClassName';
|
import buildClassName from '../../../../util/buildClassName';
|
||||||
import { formatStarsAsText } from '../../../../util/localization/format';
|
import { formatStarsAsText } from '../../../../util/localization/format';
|
||||||
@ -175,10 +176,11 @@ const StarGiftAction = ({
|
|||||||
|
|
||||||
export default memo(withGlobal<OwnProps>(
|
export default memo(withGlobal<OwnProps>(
|
||||||
(global, { message, action }): StateProps => {
|
(global, { message, action }): StateProps => {
|
||||||
|
const currentUser = selectUser(global, global.currentUserId!);
|
||||||
const canPlayAnimatedEmojis = selectCanPlayAnimatedEmojis(global);
|
const canPlayAnimatedEmojis = selectCanPlayAnimatedEmojis(global);
|
||||||
const messageSender = selectSender(global, message);
|
const messageSender = selectSender(global, message);
|
||||||
const giftSender = action.fromId ? selectPeer(global, action.fromId) : undefined;
|
const giftSender = action.fromId ? selectPeer(global, action.fromId) : undefined;
|
||||||
const messageRecipient = selectPeer(global, message.chatId);
|
const messageRecipient = message.isOutgoing ? selectPeer(global, message.chatId) : currentUser;
|
||||||
const giftRecipient = action.peerId ? selectPeer(global, action.peerId) : undefined;
|
const giftRecipient = action.peerId ? selectPeer(global, action.peerId) : undefined;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import {
|
|||||||
selectCanPlayAnimatedEmojis,
|
selectCanPlayAnimatedEmojis,
|
||||||
selectPeer,
|
selectPeer,
|
||||||
selectSender,
|
selectSender,
|
||||||
|
selectUser,
|
||||||
} from '../../../../global/selectors';
|
} from '../../../../global/selectors';
|
||||||
import buildClassName from '../../../../util/buildClassName';
|
import buildClassName from '../../../../util/buildClassName';
|
||||||
import buildStyle from '../../../../util/buildStyle';
|
import buildStyle from '../../../../util/buildStyle';
|
||||||
@ -72,7 +73,8 @@ const StarGiftAction = ({
|
|||||||
[lang('ActionStarGiftUniqueSymbol'), pattern.name],
|
[lang('ActionStarGiftUniqueSymbol'), pattern.name],
|
||||||
], [lang, model, pattern, backdrop]);
|
], [lang, model, pattern, backdrop]);
|
||||||
|
|
||||||
const peer = isOutgoing ? recipient : sender;
|
const shouldShowFrom = !isOutgoing || action.isUpgrade;
|
||||||
|
const peer = shouldShowFrom && !action.isUpgrade ? sender : recipient;
|
||||||
|
|
||||||
const fallbackPeerTitle = lang('ActionFallbackSomeone');
|
const fallbackPeerTitle = lang('ActionFallbackSomeone');
|
||||||
const peerTitle = peer && getPeerTitle(lang, peer);
|
const peerTitle = peer && getPeerTitle(lang, peer);
|
||||||
@ -117,7 +119,7 @@ const StarGiftAction = ({
|
|||||||
<div className={styles.info}>
|
<div className={styles.info}>
|
||||||
<h3 className={styles.title}>
|
<h3 className={styles.title}>
|
||||||
{isSelf ? lang('ActionStarGiftSelf') : lang(
|
{isSelf ? lang('ActionStarGiftSelf') : lang(
|
||||||
isOutgoing ? 'ActionStarGiftTo' : 'ActionStarGiftFrom',
|
shouldShowFrom ? 'ActionStarGiftFrom' : 'ActionStarGiftTo',
|
||||||
{
|
{
|
||||||
peer: renderPeerLink(peer?.id, peerTitle || fallbackPeerTitle),
|
peer: renderPeerLink(peer?.id, peerTitle || fallbackPeerTitle),
|
||||||
},
|
},
|
||||||
@ -144,10 +146,11 @@ const StarGiftAction = ({
|
|||||||
|
|
||||||
export default memo(withGlobal<OwnProps>(
|
export default memo(withGlobal<OwnProps>(
|
||||||
(global, { message, action }): StateProps => {
|
(global, { message, action }): StateProps => {
|
||||||
|
const currentUser = selectUser(global, global.currentUserId!);
|
||||||
const canPlayAnimatedEmojis = selectCanPlayAnimatedEmojis(global);
|
const canPlayAnimatedEmojis = selectCanPlayAnimatedEmojis(global);
|
||||||
const messageSender = selectSender(global, message);
|
const messageSender = selectSender(global, message);
|
||||||
const giftSender = action.fromId ? selectPeer(global, action.fromId) : undefined;
|
const giftSender = action.fromId ? selectPeer(global, action.fromId) : undefined;
|
||||||
const messageRecipient = selectPeer(global, message.chatId);
|
const messageRecipient = message.isOutgoing ? selectPeer(global, message.chatId) : currentUser;
|
||||||
const giftRecipient = action.peerId ? selectPeer(global, action.peerId) : undefined;
|
const giftRecipient = action.peerId ? selectPeer(global, action.peerId) : undefined;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@ -172,9 +172,10 @@ const GiftInfoModal = ({
|
|||||||
});
|
});
|
||||||
|
|
||||||
const handleFocusUpgraded = useLastCallback(() => {
|
const handleFocusUpgraded = useLastCallback(() => {
|
||||||
if (!savedGift?.upgradeMsgId || !renderingTargetPeer) return;
|
const giftChat = isSender ? renderingTargetPeer : renderingFromPeer;
|
||||||
|
if (!savedGift?.upgradeMsgId || !giftChat) return;
|
||||||
const { upgradeMsgId } = savedGift;
|
const { upgradeMsgId } = savedGift;
|
||||||
focusMessage({ chatId: renderingTargetPeer.id, messageId: upgradeMsgId! });
|
focusMessage({ chatId: giftChat.id, messageId: upgradeMsgId! });
|
||||||
handleClose();
|
handleClose();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -400,8 +400,9 @@ export function selectOutgoingStatus<T extends GlobalState>(
|
|||||||
export function selectSender<T extends GlobalState>(global: T, message: ApiMessage): ApiPeer | undefined {
|
export function selectSender<T extends GlobalState>(global: T, message: ApiMessage): ApiPeer | undefined {
|
||||||
const { senderId } = message;
|
const { senderId } = message;
|
||||||
const chat = selectChat(global, message.chatId);
|
const chat = selectChat(global, message.chatId);
|
||||||
|
const currentUser = selectUser(global, global.currentUserId!);
|
||||||
if (!senderId) {
|
if (!senderId) {
|
||||||
return chat;
|
return message.isOutgoing ? currentUser : chat;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (chat && isChatChannel(chat) && !chat.areProfilesShown) return chat;
|
if (chat && isChatChannel(chat) && !chat.areProfilesShown) return chat;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user