in src/amo/pages/Addon/index.js [200:260]
renderRatingsCard() {
const { RatingManager, addon, i18n, location, currentVersion } = this.props;
let content;
let footerPropName = 'footerText';
let ratingManager;
if (addon && currentVersion) {
ratingManager = <RatingManager addon={addon} version={currentVersion} />;
} else {
ratingManager = (
<p className="Addon-no-rating-manager">
{i18n.gettext(`This add-on cannot be rated because no versions
have been published.`)}
</p>
);
}
if (!addon) {
content = <LoadingText width={100} />;
} else if (addon.ratings && addon.ratings.count) {
const { count } = addon.ratings;
const linkText = i18n.sprintf(
i18n.ngettext(
'Read %(count)s review',
'Read all %(count)s reviews',
count,
),
{ count: i18n.formatNumber(count) },
);
footerPropName = 'footerLink';
content = (
<Link
className="Addon-all-reviews-link"
to={reviewListURL({
addonSlug: addon.slug,
location,
})}
>
{linkText}
</Link>
);
} else {
content = i18n.gettext('No reviews yet');
}
const props = {
[footerPropName]: (
<div className="Addon-read-reviews-footer">{content}</div>
),
};
return (
<Card
header={i18n.gettext('Rate your experience')}
className="Addon-overall-rating"
{...props}
>
{ratingManager}
</Card>
);
}