Message Context Menu: Display last edit time (#5176)
This commit is contained in:
parent
92ebef4f49
commit
516061a553
37
src/components/middle/message/LastEditTimeMenuItem.tsx
Normal file
37
src/components/middle/message/LastEditTimeMenuItem.tsx
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
import React, { memo } from '../../../lib/teact/teact';
|
||||||
|
|
||||||
|
import type { ApiMessage } from '../../../api/types';
|
||||||
|
|
||||||
|
import { formatDateAtTime } from '../../../util/dates/dateFormat';
|
||||||
|
|
||||||
|
import useOldLang from '../../../hooks/useOldLang';
|
||||||
|
|
||||||
|
import MenuItem from '../../ui/MenuItem';
|
||||||
|
import MenuSeparator from '../../ui/MenuSeparator';
|
||||||
|
import Skeleton from '../../ui/placeholder/Skeleton';
|
||||||
|
|
||||||
|
import styles from './TimeMenuItem.module.scss';
|
||||||
|
|
||||||
|
type OwnProps = {
|
||||||
|
message: ApiMessage;
|
||||||
|
};
|
||||||
|
|
||||||
|
function LastEditTimeMenuItem({
|
||||||
|
message,
|
||||||
|
}: OwnProps) {
|
||||||
|
const lang = useOldLang();
|
||||||
|
const { editDate } = message;
|
||||||
|
const shouldRenderSkeleton = !editDate;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<MenuSeparator size="thick" />
|
||||||
|
<MenuItem icon="edit" className={styles.item}>
|
||||||
|
{shouldRenderSkeleton ? <Skeleton className={styles.skeleton} /> : Boolean(editDate)
|
||||||
|
&& lang('Chat.PrivateMessageEditTimestamp.Date', formatDateAtTime(lang, editDate * 1000))}
|
||||||
|
</MenuItem>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default memo(LastEditTimeMenuItem);
|
||||||
@ -37,6 +37,7 @@ import Menu from '../../ui/Menu';
|
|||||||
import MenuItem from '../../ui/MenuItem';
|
import MenuItem from '../../ui/MenuItem';
|
||||||
import MenuSeparator from '../../ui/MenuSeparator';
|
import MenuSeparator from '../../ui/MenuSeparator';
|
||||||
import Skeleton from '../../ui/placeholder/Skeleton';
|
import Skeleton from '../../ui/placeholder/Skeleton';
|
||||||
|
import LastEditTimeMenuItem from './LastEditTimeMenuItem';
|
||||||
import ReactionSelector from './reactions/ReactionSelector';
|
import ReactionSelector from './reactions/ReactionSelector';
|
||||||
import ReadTimeMenuItem from './ReadTimeMenuItem';
|
import ReadTimeMenuItem from './ReadTimeMenuItem';
|
||||||
|
|
||||||
@ -234,6 +235,7 @@ const MessageContextMenu: FC<OwnProps> = ({
|
|||||||
const noReactions = !isPrivate && !enabledReactions;
|
const noReactions = !isPrivate && !enabledReactions;
|
||||||
const withReactions = canShowReactionList && !noReactions;
|
const withReactions = canShowReactionList && !noReactions;
|
||||||
const isSponsoredMessage = !('id' in message);
|
const isSponsoredMessage = !('id' in message);
|
||||||
|
const isEdited = ('isEdited' in message) && message.isEdited;
|
||||||
const messageId = !isSponsoredMessage ? message.id : '';
|
const messageId = !isSponsoredMessage ? message.id : '';
|
||||||
const seenByDates = !isSponsoredMessage ? message.seenByDates : undefined;
|
const seenByDates = !isSponsoredMessage ? message.seenByDates : undefined;
|
||||||
|
|
||||||
@ -481,6 +483,11 @@ const MessageContextMenu: FC<OwnProps> = ({
|
|||||||
<MenuItem icon="close-circle" onClick={onSponsoredHide}>{lang('HideAd')}</MenuItem>
|
<MenuItem icon="close-circle" onClick={onSponsoredHide}>{lang('HideAd')}</MenuItem>
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
{isEdited && (
|
||||||
|
<LastEditTimeMenuItem
|
||||||
|
message={message}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
{(canShowSeenBy || canShowReactionsCount) && !isSponsoredMessage && (
|
{(canShowSeenBy || canShowReactionsCount) && !isSponsoredMessage && (
|
||||||
<>
|
<>
|
||||||
<MenuSeparator size={hasCustomEmoji ? 'thin' : 'thick'} />
|
<MenuSeparator size={hasCustomEmoji ? 'thin' : 'thick'} />
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import MenuSeparator from '../../ui/MenuSeparator';
|
|||||||
import Skeleton from '../../ui/placeholder/Skeleton';
|
import Skeleton from '../../ui/placeholder/Skeleton';
|
||||||
import Transition from '../../ui/Transition';
|
import Transition from '../../ui/Transition';
|
||||||
|
|
||||||
import styles from './ReadTimeMenuItem.module.scss';
|
import styles from './TimeMenuItem.module.scss';
|
||||||
|
|
||||||
type OwnProps = {
|
type OwnProps = {
|
||||||
message: ApiMessage;
|
message: ApiMessage;
|
||||||
|
|||||||
@ -51,7 +51,7 @@ export const MEDIA_PROGRESSIVE_CACHE_DISABLED = false;
|
|||||||
export const MEDIA_PROGRESSIVE_CACHE_NAME = 'tt-media-progressive';
|
export const MEDIA_PROGRESSIVE_CACHE_NAME = 'tt-media-progressive';
|
||||||
export const MEDIA_CACHE_MAX_BYTES = 512 * 1024; // 512 KB
|
export const MEDIA_CACHE_MAX_BYTES = 512 * 1024; // 512 KB
|
||||||
export const CUSTOM_BG_CACHE_NAME = 'tt-custom-bg';
|
export const CUSTOM_BG_CACHE_NAME = 'tt-custom-bg';
|
||||||
export const LANG_CACHE_NAME = 'tt-lang-packs-v43';
|
export const LANG_CACHE_NAME = 'tt-lang-packs-v44';
|
||||||
export const ASSET_CACHE_NAME = 'tt-assets';
|
export const ASSET_CACHE_NAME = 'tt-assets';
|
||||||
export const AUTODOWNLOAD_FILESIZE_MB_LIMITS = [1, 5, 10, 50, 100, 500];
|
export const AUTODOWNLOAD_FILESIZE_MB_LIMITS = [1, 5, 10, 50, 100, 500];
|
||||||
export const DATA_BROADCAST_CHANNEL_NAME = 'tt-global';
|
export const DATA_BROADCAST_CHANNEL_NAME = 'tt-global';
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user