UNPKG

tandem-front-end

Version:

Visual editor for web components

63 lines 2.59 kB
"use strict"; var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0) t[p[i]] = s[p[i]]; return t; }; Object.defineProperty(exports, "__esModule", { value: true }); var React = require("react"); var ReactDOM = require("react-dom"); var recompose_1 = require("recompose"); exports.withInputHandlers = function () { return recompose_1.compose(recompose_1.withHandlers({ onKeyDown: function (_a) { var onChange = _a.onChange, onChangeComplete = _a.onChangeComplete; return function (event) { var nativeEvent = event.nativeEvent; setImmediate(function () { var key = nativeEvent.key, value = nativeEvent.target.value; if (onChange) { onChange(value || undefined); } if (key === "Enter" && onChangeComplete) { onChangeComplete(value || ""); } }); }; }, onBlur: function (_a) { var onChangeComplete = _a.onChangeComplete; return function (event) { if (onChangeComplete) { onChangeComplete(event.target.value); } }; } }), recompose_1.lifecycle({ componentDidUpdate: function (props) { if (props.value !== this.props.value) { var input = ReactDOM.findDOMNode(this); if (document.activeElement !== input) { input.value = this.props.value == null ? "" : this.props.value; } } } })); }; exports.default = recompose_1.compose(recompose_1.pure, exports.withInputHandlers(), function (Base) { return function (_a) { var value = _a.value, onChange = _a.onChange, rest = __rest(_a, ["value", "onChange"]); return React.createElement(Base, __assign({}, rest, { defaultValue: value })); }; }); //# sourceMappingURL=controller.js.map