Composer: fix blinks for close animation (#4169)
This commit is contained in:
parent
ca130d49dd
commit
44a0c0a4fc
@ -20,6 +20,7 @@ import {
|
||||
isMessageTranslatable,
|
||||
} from '../../../global/helpers';
|
||||
import buildClassName from '../../../util/buildClassName';
|
||||
import freezeWhenClosed from '../../../util/hoc/freezeWhenClosed';
|
||||
import { getPictogramDimensions } from '../helpers/mediaDimensions';
|
||||
import { getPeerColorClass } from '../helpers/peerColor';
|
||||
import renderText from '../helpers/renderText';
|
||||
@ -54,6 +55,7 @@ type OwnProps = {
|
||||
isInComposer?: boolean;
|
||||
chatTranslations?: ChatTranslatedMessages;
|
||||
requestedChatTranslationLanguage?: string;
|
||||
isOpen?: boolean;
|
||||
observeIntersectionForLoading?: ObserveFn;
|
||||
observeIntersectionForPlaying?: ObserveFn;
|
||||
onClick: NoneToVoidFunction;
|
||||
@ -256,4 +258,6 @@ function renderPictogram(
|
||||
);
|
||||
}
|
||||
|
||||
export const ClosableEmbeddedMessage = freezeWhenClosed(EmbeddedMessage);
|
||||
|
||||
export default EmbeddedMessage;
|
||||
|
||||
@ -27,13 +27,14 @@ import captureEscKeyListener from '../../../util/captureEscKeyListener';
|
||||
import { getPeerColorClass } from '../../common/helpers/peerColor';
|
||||
|
||||
import useContextMenuHandlers from '../../../hooks/useContextMenuHandlers';
|
||||
import useCurrentOrPrev from '../../../hooks/useCurrentOrPrev';
|
||||
import useLang from '../../../hooks/useLang';
|
||||
import useLastCallback from '../../../hooks/useLastCallback';
|
||||
import useMenuPosition from '../../../hooks/useMenuPosition';
|
||||
import useShowTransition from '../../../hooks/useShowTransition';
|
||||
import useAsyncRendering from '../../right/hooks/useAsyncRendering';
|
||||
|
||||
import EmbeddedMessage from '../../common/embedded/EmbeddedMessage';
|
||||
import { ClosableEmbeddedMessage } from '../../common/embedded/EmbeddedMessage';
|
||||
import Icon from '../../common/Icon';
|
||||
import Button from '../../ui/Button';
|
||||
import Menu from '../../ui/Menu';
|
||||
@ -165,9 +166,10 @@ const ComposerEmbeddedMessage: FC<OwnProps & StateProps> = ({
|
||||
}, [handleContextMenuClose, shouldRender]);
|
||||
|
||||
const className = buildClassName('ComposerEmbeddedMessage', transitionClassNames);
|
||||
const renderingSender = useCurrentOrPrev(sender, true);
|
||||
const innerClassName = buildClassName(
|
||||
'ComposerEmbeddedMessage_inner',
|
||||
getPeerColorClass(sender),
|
||||
getPeerColorClass(renderingSender),
|
||||
);
|
||||
|
||||
const isShowingReply = replyInfo && !shouldForceShowEditing;
|
||||
@ -203,6 +205,8 @@ const ComposerEmbeddedMessage: FC<OwnProps & StateProps> = ({
|
||||
};
|
||||
}, [isCurrentUserPremium, isForwarding, message, noAuthors]);
|
||||
|
||||
const renderingLeftIcon = useCurrentOrPrev(leftIcon, true);
|
||||
|
||||
if (!shouldRender) {
|
||||
return undefined;
|
||||
}
|
||||
@ -211,12 +215,13 @@ const ComposerEmbeddedMessage: FC<OwnProps & StateProps> = ({
|
||||
<div className={className} ref={ref} onContextMenu={handleContextMenu} onClick={handleContextMenu}>
|
||||
<div className={innerClassName}>
|
||||
<div className="embedded-left-icon">
|
||||
{leftIcon && <Icon name={leftIcon} />}
|
||||
{renderingLeftIcon && <Icon name={renderingLeftIcon} />}
|
||||
{Boolean(replyInfo?.quoteText) && (
|
||||
<Icon name="quote" className="quote-reply" />
|
||||
)}
|
||||
</div>
|
||||
<EmbeddedMessage
|
||||
<ClosableEmbeddedMessage
|
||||
isOpen={isShown}
|
||||
className="inside-input"
|
||||
replyInfo={replyInfo}
|
||||
isInComposer
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user