From dfcf0a541d125043205a65e16b3deef35964fb47 Mon Sep 17 00:00:00 2001 From: Fedor Katurov Date: Mon, 17 Oct 2022 11:27:54 +0600 Subject: [PATCH] using lab icon on recent posts --- src/components/flow/FlowRecentItem/index.tsx | 9 +++-- src/components/node/NodeRelatedItem/index.tsx | 39 ++++++++++++++----- .../node/NodeRelatedItem/styles.module.scss | 14 +++++++ 3 files changed, 49 insertions(+), 13 deletions(-) diff --git a/src/components/flow/FlowRecentItem/index.tsx b/src/components/flow/FlowRecentItem/index.tsx index 968e645c..9c01f980 100644 --- a/src/components/flow/FlowRecentItem/index.tsx +++ b/src/components/flow/FlowRecentItem/index.tsx @@ -11,7 +11,6 @@ import { getPrettyDate } from '~/utils/dom'; import styles from './styles.module.scss'; - interface IProps { node: Partial; has_new?: boolean; @@ -20,7 +19,12 @@ interface IProps { const FlowRecentItem: FC = ({ node, has_new, onClick }) => { return ( - +
= ({ node, has_new, onClick }) => {
{node.title || '...'}
- {!node.is_promoted && } {getPrettyDate(node.created_at)}
diff --git a/src/components/node/NodeRelatedItem/index.tsx b/src/components/node/NodeRelatedItem/index.tsx index 4167acf0..be7186f1 100644 --- a/src/components/node/NodeRelatedItem/index.tsx +++ b/src/components/node/NodeRelatedItem/index.tsx @@ -4,6 +4,7 @@ import classNames from 'classnames'; import { ImageWithSSRLoad } from '~/components/common/ImageWithSSRLoad'; import { Square } from '~/components/common/Square'; +import { Icon } from '~/components/input/Icon'; import { ImagePresets } from '~/constants/urls'; import { useColorGradientFromString } from '~/hooks/color/useColorGradientFromString'; import { useGotoNode } from '~/hooks/node/useGotoNode'; @@ -26,7 +27,7 @@ const getTitleLetters = (title?: string): string => { return words.length > 1 ? words .slice(0, 2) - .map(word => word[0]) + .map((word) => word[0]) .join('') .toUpperCase() : words[0].substr(0, 2).toUpperCase(); @@ -39,8 +40,11 @@ const NodeRelatedItem: FC = memo(({ item }) => { const ref = useRef(null); const thumb = useMemo( - () => (item.thumbnail ? getURL({ url: item.thumbnail }, ImagePresets.avatar) : ''), - [item] + () => + item.thumbnail + ? getURL({ url: item.thumbnail }, ImagePresets.avatar) + : '', + [item], ); const background = useColorGradientFromString(!thumb ? item.title : ''); @@ -63,13 +67,16 @@ const NodeRelatedItem: FC = memo(({ item }) => { return 'small'; }, [width]); - const image = useMemo(() => getURL({ url: item.thumbnail }, ImagePresets.avatar), [ - item.thumbnail, - ]); + const image = useMemo( + () => getURL({ url: item.thumbnail }, ImagePresets.avatar), + [item.thumbnail], + ); return (
= memo(({ item }) => { + className={classNames(styles.thumb, { + [styles.is_loaded]: is_loaded, + })} + > + {!item.is_promoted && ( +
+ +
+ )} +
)} {!item.thumbnail && size === 'small' && ( @@ -94,7 +109,11 @@ const NodeRelatedItem: FC = memo(({ item }) => {
)} - setIsLoaded(true)} /> + setIsLoaded(true)} + /> ); }); diff --git a/src/components/node/NodeRelatedItem/styles.module.scss b/src/components/node/NodeRelatedItem/styles.module.scss index 3214b83a..fd2a0902 100644 --- a/src/components/node/NodeRelatedItem/styles.module.scss +++ b/src/components/node/NodeRelatedItem/styles.module.scss @@ -64,3 +64,17 @@ div.thumb { font: $font_12_bold; } } + +.suffix { + position: absolute; + bottom: 0; + right: 0; + background: var(--content_bg); + height: 16px; + width: 16px; + display: flex; + align-items: center; + justify-content: center; + border-radius: $cell_radius 0 $cell_radius 0; + fill: var(--gray_25); +}