periodicjs.ext.reactapp
Version:
88 lines (78 loc) • 2.65 kB
JavaScript
// eslint-disable-next-line
;
var _assign = require('babel-runtime/core-js/object/assign');
var _assign2 = _interopRequireDefault(_assign);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function getTitle(options) {
return options.title ? {
component: 'CardHeader',
children: [options.iconLeft ? {
component: 'CardHeaderIcon',
props: options.iconLeft
} : null, typeof options.title === 'string' ? {
component: 'CardHeaderTitle',
children: options.title
} : options.title, options.iconRight ? {
component: 'CardHeaderIcon',
props: options.iconRight
} : null]
} : null;
}
function getImage(options) {
return options.imageProps || options.iconProps ? {
component: 'CardImage',
children: [{
component: options.imageProps ? 'Image' : 'Icon',
props: options.imageProps || options.iconProps
}]
} : null;
}
function getContent(options) {
return options.content ? {
component: 'CardContent',
props: options.contentProps,
children: Array.isArray(options.content) ? options.content : [options.content]
} : null;
}
function getFooter(options) {
return options.footer ? {
component: 'CardFooter',
children: Array.isArray(options.footer) ? options.footer.map(function (footer) {
return {
component: 'CardFooterItem',
children: [footer]
};
}) : options.footer
} : null;
}
function getCard() {
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { props: {} };
var componentProps = options.componentProps,
responsive = options.responsive;
var _options$props$cardPr = options.props.cardProps,
cardProps = _options$props$cardPr === undefined ? {} : _options$props$cardPr;
var Image = getImage(options);
var Content = getContent(options);
var Footer = getFooter(options);
// console.log('getCard',{ options,cardProps });
return responsive ? (0, _assign2.default)({
component: 'ResponsiveCard',
props: (0, _assign2.default)({
cardTitle: options.title,
iconRight: options.iconRight,
iconLeft: options.iconLeft
}, cardProps),
children: [].concat(Image ? Image.children : []).concat(Content ? Content.children : []).concat(Footer ? Footer.children : [])
}, componentProps) : (0, _assign2.default)({
component: 'Card',
props: cardProps,
children: [getTitle(options), Image, Content, Footer]
}, componentProps);
}
module.exports = {
getTitle: getTitle,
getImage: getImage,
getContent: getContent,
getFooter: getFooter,
getCard: getCard
};