diff options
| author | Armand Philippot <git@armandphilippot.com> | 2022-03-01 22:08:56 +0100 | 
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2022-03-01 22:08:56 +0100 | 
| commit | 80d54805e26a6a6971c5ad214b02456dcc226628 (patch) | |
| tree | 9b81e0cd3ff881b2cbeb81f9f96b52b510d67646 /src/components/MetaItems/CommentsCount | |
| parent | 99ae0a9d3a923ca1e998dc9b504dad607fdfd768 (diff) | |
| parent | 8bd9784acdee6871ad70e86d0d7120299bf76969 (diff) | |
refactor: various refactoring
Improve maintenance (meta splitting) and try to
improve performance (dynamic imports).
Diffstat (limited to 'src/components/MetaItems/CommentsCount')
| -rw-r--r-- | src/components/MetaItems/CommentsCount/CommentsCount.tsx | 41 | 
1 files changed, 41 insertions, 0 deletions
| diff --git a/src/components/MetaItems/CommentsCount/CommentsCount.tsx b/src/components/MetaItems/CommentsCount/CommentsCount.tsx new file mode 100644 index 0000000..bd1990d --- /dev/null +++ b/src/components/MetaItems/CommentsCount/CommentsCount.tsx @@ -0,0 +1,41 @@ +import { MetaKind } from '@ts/types/app'; +import { useRouter } from 'next/router'; +import { useIntl } from 'react-intl'; +import { MetaItem } from '..'; + +const CommentsCount = ({ total, kind }: { total: number; kind: MetaKind }) => { +  const intl = useIntl(); +  const { asPath } = useRouter(); + +  const isArticle = () => asPath.includes('/article/'); + +  const getCommentsCount = () => { +    return intl.formatMessage( +      { +        defaultMessage: +          '{total, plural, =0 {No comments} one {# comment} other {# comments}}', +        description: 'CommentsCount: comment count value', +      }, +      { total } +    ); +  }; + +  return ( +    <MetaItem +      title={intl.formatMessage({ +        defaultMessage: 'Comments:', +        description: 'CommentsCount: comment count meta label', +      })} +      value={ +        isArticle() ? ( +          <a href="#comments">{getCommentsCount()}</a> +        ) : ( +          getCommentsCount() +        ) +      } +      kind={kind} +    /> +  ); +}; + +export default CommentsCount; | 
