import { h } from 'preact'; import { articlePropTypes } from '../../common-prop-types'; import { locale } from '../../utilities/locale'; export const ReactionsCount = ({ article }) => { const totalReactions = article.public_reactions_count || 0; if (totalReactions === 0) { return; } function buildIcons() { const reversable = article.public_reaction_categories; const reactionIcons = document.getElementById( 'reaction-category-resources', ); if (reversable === undefined) { return; } reversable.reverse(); const icons = reversable.map((category) => { const path = reactionIcons.querySelector( `img[data-slug=${category.slug}]`, ).src; const alt = category.name; return ( {alt} ); }); return ( {icons} ); } function buildCounter() { const reactionText = `${ totalReactions == 1 ? locale('core.reaction') : `${locale('core.reaction')}s` }`; return ( {totalReactions} {reactionText} ); } return (
{buildIcons()} {buildCounter()}
); }; ReactionsCount.propTypes = { article: articlePropTypes.isRequired, }; ReactionsCount.displayName = 'ReactionsCount';