rn-material-ui-textfield
Version:
84 lines (67 loc) • 2.32 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _reactNative = require("react-native");
var _field = _interopRequireDefault(require("../field"));
var _outline = _interopRequireDefault(require("../outline"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
class OutlinedTextField extends _field.default {
constructor(props) {
super(props);
this.onTextLayout = this.onTextLayout.bind(this);
this.state.labelWidth = new _reactNative.Animated.Value(0);
}
onTextLayout(_ref) {
let {
nativeEvent: {
lines
}
} = _ref;
let {
fontSize,
labelFontSize
} = this.props;
let {
labelWidth
} = this.state;
let scale = labelFontSize / fontSize;
labelWidth.setValue(lines[0].width * scale);
}
renderLabel(props) {
let {
onTextLayout
} = this;
return super.renderLabel({ ...props,
onTextLayout
});
}
renderLine(props) {
let {
labelWidth
} = this.state;
return /*#__PURE__*/_react.default.createElement(_outline.default, _extends({}, props, {
labelWidth: labelWidth
}));
}
}
exports.default = OutlinedTextField;
_defineProperty(OutlinedTextField, "contentInset", { ..._field.default.contentInset,
input: 16,
top: 0,
left: 12,
right: 12
});
_defineProperty(OutlinedTextField, "labelOffset", { ..._field.default.labelOffset,
y0: 0,
y1: -10
});
_defineProperty(OutlinedTextField, "defaultProps", { ..._field.default.defaultProps,
lineWidth: 1,
disabledLineWidth: _reactNative.StyleSheet.hairlineWidth
});
//# sourceMappingURL=index.js.map
;