preact-material-components
Version:
preact wrapper for "Material Components for the web"
114 lines (92 loc) • 3.43 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.Snackbar = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _snackbar = require("@material/snackbar/");
var _preact = require("preact");
var _MaterialComponent2 = _interopRequireDefault(require("../Base/MaterialComponent"));
// TODO: Is that needed?
function shallowDiffers(a, b) {
for (var i in a) {
if (!(i in b)) {
return true;
}
}
for (var _i in b) {
// noinspection JSUnfilteredForInLoop
if (a[_i] !== b[_i]) {
return true;
}
}
return false;
}
var Snackbar =
/*#__PURE__*/
function (_MaterialComponent) {
(0, _inherits2.default)(Snackbar, _MaterialComponent);
function Snackbar() {
var _this;
(0, _classCallCheck2.default)(this, Snackbar);
_this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Snackbar).apply(this, arguments));
_this.componentName = 'snackbar';
_this.mdcProps = [];
return _this;
}
(0, _createClass2.default)(Snackbar, [{
key: "componentDidMount",
value: function componentDidMount() {
(0, _get2.default)((0, _getPrototypeOf2.default)(Snackbar.prototype), "componentDidMount", this).call(this);
if (this.control) {
this.MDComponent = new _snackbar.MDCSnackbar(this.control);
if (this.props.dismissesOnAction === undefined || this.props.dismissesOnAction === null) {
this.MDComponent.dismissesOnAction = true;
} else {
this.MDComponent.dismissesOnAction = this.props.dismissesOnAction;
}
}
}
}, {
key: "componentWillUnmount",
value: function componentWillUnmount() {
(0, _get2.default)((0, _getPrototypeOf2.default)(Snackbar.prototype), "componentWillUnmount", this).call(this);
if (this.MDComponent) {
this.MDComponent.destroy();
}
}
}, {
key: "shouldComponentUpdate",
value: function shouldComponentUpdate(props, state) {
return shallowDiffers(this.props, props) || shallowDiffers(this.state, state);
}
}, {
key: "materialDom",
value: function materialDom(props) {
return (0, _preact.h)("div", Object.assign({
"aria-live": "assertive",
"aria-atomic": "true",
"aria-hidden": "true",
ref: this.setControlRef
}, props), (0, _preact.h)("div", {
className: "mdc-snackbar__text"
}), (0, _preact.h)("div", {
className: "mdc-snackbar__action-wrapper"
}, (0, _preact.h)("button", {
type: "button",
className: "mdc-snackbar__action-button"
})));
}
}]);
return Snackbar;
}(_MaterialComponent2.default);
exports.Snackbar = Snackbar;
var _default = Snackbar;
exports.default = _default;
//# sourceMappingURL=index.js.map