preact-material-components
Version:
preact wrapper for "Material Components for the web"
70 lines (56 loc) • 2.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _preact = require("preact");
var _MaterialComponent = _interopRequireDefault(require("../MaterialComponent"));
var _linearProgress = require("@material/linear-progress");
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 indeterminate = false
* @prop reversed = false
*/
class LinearProgress extends _MaterialComponent.default {
constructor() {
super();
this.componentName = 'linear-progress';
this._mdcProps = ['indeterminate', 'reversed'];
}
componentDidMount() {
this.MDComponent = new _linearProgress.MDCLinearProgress(this.control);
updateProgress(this.props, this.MDComponent);
}
componentWillUnmount() {
this.MDComponent.destroy && this.MDComponent.destroy();
}
componentWillUpdate(nextProps) {
updateProgress(nextProps, this.MDComponent);
}
materialDom(props) {
return (0, _preact.h)("div", _extends({
role: "progressbar"
}, props, {
ref: this.setControlRef
}), (0, _preact.h)("div", {
className: "mdc-linear-progress__buffering-dots"
}), (0, _preact.h)("div", {
className: "mdc-linear-progress__buffer"
}), (0, _preact.h)("div", {
className: "mdc-linear-progress__bar mdc-linear-progress__primary-bar"
}, (0, _preact.h)("span", {
className: "mdc-linear-progress__bar-inner"
})), (0, _preact.h)("div", {
className: "mdc-linear-progress__bar mdc-linear-progress__secondary-bar"
}, (0, _preact.h)("span", {
className: "mdc-linear-progress__bar-inner"
})));
}
}
exports.default = LinearProgress;
function updateProgress(props, progressBar) {
if (!props.indeterminate && props.progress) {
progressBar.progress = props.progress;
}
}