preact-material-components
Version:
preact wrapper for "Material Components for the web"
61 lines (47 loc) • 1.72 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _Icon = _interopRequireDefault(require("../Icon/"));
var _MaterialComponent = _interopRequireDefault(require("../MaterialComponent"));
var _generateThemeClass = _interopRequireDefault(require("../themeUtils/generateThemeClass"));
var _preact = require("preact");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
/**
* @prop mini = false
* @prop exited = false
*/
class Fab extends _MaterialComponent.default {
constructor() {
super();
this.componentName = 'fab';
this._mdcProps = ['mini', 'exited'];
this.themeProps = ['primary', 'secondary'];
}
componentDidMount() {
super.attachRipple();
}
materialDom(props) {
let classNames = [];
this.themeProps.forEach(themeProp => {
if (themeProp in props && props[themeProp] !== false) classNames.push((0, _generateThemeClass.default)(themeProp));
});
let classNameString = classNames.join(' ');
return (0, _preact.h)("button", _extends({
ref: this.setControlRef
}, props, {
className: classNameString
}), props.children);
}
}
class FabIcon extends _Icon.default {
constructor() {
super();
this.componentName = 'fab__icon';
}
}
Fab.Icon = FabIcon;
var _default = Fab;
exports.default = _default;