UNPKG

react-mdlite

Version:

React wrappers for Material Design Lite (MDL) components

66 lines (52 loc) 1.47 kB
'use strict'; var React = require('react'); function supportMdlShadow(spec) { var shadowPrefix = 'mdl-shadow'; return React.createClass({ displayName: spec.displayName, propTypes: { className: React.PropTypes.string, shadow: React.PropTypes.string }, getDefaultProps: function getDefaultProps() { return { className: '', shadow: null }; }, getShadowClassName: function getShadowClassName() { var shadow = this.props.shadow; if (shadow >= 1 && shadow <= 6) { var depth = 2; switch (shadow) { case '1': depth = 2;break; case '2': depth = 3;break; case '3': depth = 4;break; case '4': depth = 6;break; case '5': depth = 8;break; case '6': depth = 16;break; } return shadowPrefix + '--' + depth + 'dp'; } else if (shadow && shadow.replace('dp', '') > 0) { return shadowPrefix + '--' + shadow; } else { return ''; } }, render: function render() { var element = React.createElement(spec, this.props), classList = this.props.className.split(' '), shadowClass = this.getShadowClassName(); return React.cloneElement(element, { className: [shadowClass].concat(classList).join(' ') }); } }); } module.exports = supportMdlShadow;