@brizy/ui
Version:
React elements in Brizy style
23 lines (22 loc) • 1.67 kB
JavaScript
import React, { useCallback } from "react";
import { TypographyTitle, TypographyText, TypographyParagraph, TypographyLink } from "../Typography";
import { Space } from "../Space";
import { SmallRating } from "../SmallRating";
import { BRZ_PREFIX } from "../constants";
export const CardRating = ({ cover, title, subtitle, description, rating, ratingItems, action, onCoverClick, onTitleClick, }) => {
const _onCoverClick = useCallback(() => onCoverClick === null || onCoverClick === void 0 ? void 0 : onCoverClick(), [onCoverClick]);
const _onTitleClick = useCallback(() => onTitleClick === null || onTitleClick === void 0 ? void 0 : onTitleClick(), [onTitleClick]);
return (React.createElement("div", { className: `${BRZ_PREFIX}-card-rating` },
React.createElement("div", { className: `${BRZ_PREFIX}-card-rating__cover` },
React.createElement("img", { alt: title, src: cover, onClick: _onCoverClick })),
React.createElement("div", { className: `${BRZ_PREFIX}-card-rating__content` },
React.createElement(TypographyLink, { onClick: _onTitleClick },
React.createElement(TypographyTitle, { level: 4 }, title)),
React.createElement(TypographyText, null, subtitle),
React.createElement(Space, { spacing: 1 }),
React.createElement(TypographyParagraph, { strong: true }, description)),
React.createElement("div", { className: `${BRZ_PREFIX}-card-rating__action` },
rating && ratingItems && React.createElement(SmallRating, { rating: rating, ratingItems: ratingItems }),
action,
React.createElement(Space, { spacing: 3 }))));
};