From ca65c04884d28ef8463b5ddecfd448d878d6c661 Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Thu, 6 May 2021 01:47:40 +0300 Subject: [PATCH] Composer / Web Page Preview: Add animation, fix links with `_`, do not show title --- src/components/middle/composer/Composer.tsx | 9 +++-- .../middle/composer/WebPagePreview.scss | 29 ++++++++++----- .../middle/composer/WebPagePreview.tsx | 35 +++++++++++++------ src/components/middle/message/WebPage.scss | 7 ++++ src/components/middle/message/WebPage.tsx | 9 ++--- src/hooks/usePrevForAnimation.ts | 2 +- 6 files changed, 64 insertions(+), 27 deletions(-) diff --git a/src/components/middle/composer/Composer.tsx b/src/components/middle/composer/Composer.tsx index 008a56268..fa95baed9 100644 --- a/src/components/middle/composer/Composer.tsx +++ b/src/components/middle/composer/Composer.tsx @@ -700,9 +700,12 @@ const Composer: FC = ({
- {allowedAttachmentOptions.canAttachEmbedLinks && ( - - )} +
{IS_MOBILE_SCREEN ? ( - +
+
+ + +
); }; diff --git a/src/components/middle/message/WebPage.scss b/src/components/middle/message/WebPage.scss index 0d22b40b6..346a2a6c4 100644 --- a/src/components/middle/message/WebPage.scss +++ b/src/components/middle/message/WebPage.scss @@ -19,6 +19,12 @@ border-radius: 2px; } + &-text { + display: flex; + flex-direction: column; + align-items: flex-start; + } + .media-inner { margin: 0 !important; margin-bottom: 0.375rem !important; @@ -77,6 +83,7 @@ .site-name { color: var(--accent-color); font-weight: 500; + margin-bottom: 0.125rem; } .site-title { diff --git a/src/components/middle/message/WebPage.tsx b/src/components/middle/message/WebPage.tsx index 6e100a98f..ea9a0dabd 100644 --- a/src/components/middle/message/WebPage.tsx +++ b/src/components/middle/message/WebPage.tsx @@ -1,12 +1,13 @@ import React, { FC, memo, useCallback } from '../../../lib/teact/teact'; import { ApiMessage } from '../../../api/types'; +import { ObserveFn } from '../../../hooks/useIntersectionObserver'; import { getMessageWebPage } from '../../../modules/helpers'; import { calculateMediaDimensions } from './helpers/mediaDimensions'; import renderText from '../../common/helpers/renderText'; import trimText from '../../../util/trimText'; -import { ObserveFn } from '../../../hooks/useIntersectionObserver'; +import buildClassName from '../../../util/buildClassName'; import SafeLink from '../../common/SafeLink'; import Photo from './Photo'; @@ -63,12 +64,12 @@ const WebPage: FC = ({ const truncatedDescription = trimText(description, MAX_TEXT_LENGTH); - const className = [ + const className = buildClassName( 'WebPage', photo ? (isSquarePhoto && 'with-square-photo') : (!inPreview && 'without-photo'), - ].filter(Boolean).join(' '); + ); return (
= ({ )}
- {title && ( + {!inPreview && title && (

{renderText(title)}

)} {truncatedDescription && ( diff --git a/src/hooks/usePrevForAnimation.ts b/src/hooks/usePrevForAnimation.ts index ca640c1a5..b0a752f04 100644 --- a/src/hooks/usePrevForAnimation.ts +++ b/src/hooks/usePrevForAnimation.ts @@ -26,5 +26,5 @@ export default function usePrevForAnimation(current: any, duration?: number) { } }, [current]); - return !timeoutRef.current || !duration || isCurrentPresent ? current : prev; + return isCurrentPresent || (duration && !timeoutRef.current) ? current : prev; }