UNPKG

ruffer-pattern-portfolio

Version:

This is the end result from https://dev.to/swyx/quick-guide-to-setup-your-react--typescript-storybook-design-system-1c51

69 lines (68 loc) 3.6 kB
"use strict"; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = mod; return result; }; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = __importStar(require("react")); var react_redux_1 = require("react-redux"); var react_bootstrap_1 = require("react-bootstrap"); var LoadingSection_1 = require("../LoadingSection/LoadingSection"); exports.Card = function (props) { var defaulHeader = { title: "Card - Title", subtitle: "Card - SubTitle", color: '' }; var defaultImage = { variant: "top", src: '' }; var loading = props.loading, _a = props.header, header = _a === void 0 ? defaulHeader : _a, _b = props.image, image = _b === void 0 ? defaultImage : _b, content = props.content, className = props.className, link = props.link, backgroundColor = props.backgroundColor, children = props.children; if (loading) { return (react_1.default.createElement(react_bootstrap_1.Card, { className: "shadow", style: { backgroundColor: backgroundColor } }, react_1.default.createElement(LoadingSection_1.LoadingSection, { className: "w-75" }), react_1.default.createElement(LoadingSection_1.LoadingSection, { className: "w-50 h-50" }), react_1.default.createElement(LoadingSection_1.LoadingSection, { className: "w-50 h-50" }), react_1.default.createElement(LoadingSection_1.LoadingSection, { className: "w-25 h-50" }))); } // TODO: Render this block in TypeScript var titleColor = '#9ae48f'; var cardTitle; var cardSubTitle; if (header) { if (header.title) { titleColor = header.color ? header.color : titleColor; cardTitle = (react_1.default.createElement(react_bootstrap_1.Card.Title, { style: { textTransform: 'uppercase', color: titleColor, textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap' } }, header.title)); } if (header.subtitle) { cardSubTitle = (react_1.default.createElement(react_bootstrap_1.Card.Subtitle, { className: "mb-2 text-muted", style: { textOverflow: 'ellipsis' } }, header.subtitle)); } } var cardBody; var cardBodyColor = '#000'; if (content) { cardBodyColor = content.color ? content.color : cardBodyColor; cardBody = (react_1.default.createElement(react_bootstrap_1.Card.Text, { style: { fontSize: '45px', color: cardBodyColor } }, content.text)); } var cardImg; if (image) { cardImg = (react_1.default.createElement(react_bootstrap_1.Card.Img, { src: image.src })); } var cardContent = (react_1.default.createElement(react_bootstrap_1.Card, { style: { backgroundColor: backgroundColor } }, react_1.default.createElement(react_bootstrap_1.Card.Body, null, cardImg, cardTitle, cardSubTitle, cardBody, children))); return (react_1.default.createElement(react_1.Fragment, null, link ? (react_1.default.createElement("a", { className: className, href: link, style: { textDecoration: 'none' } }, cardContent)) : (react_1.default.createElement("div", { className: className }, cardContent)))); }; exports.default = react_redux_1.connect()(exports.Card);