@yandex/ui
Version:
Yandex UI components
36 lines (35 loc) • 2.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.withViewMaterial = void 0;
var tslib_1 = require("tslib");
var core_1 = require("@bem-react/core");
var react_1 = tslib_1.__importStar(require("react"));
var Textinput_1 = require("../Textinput");
var withControl_1 = require("../../withControl/withControl");
var Textinput_Label_1 = require("../Label/Textinput-Label");
require("./Textinput_view_material.css");
exports.withViewMaterial = core_1.withBemMod(Textinput_1.cnTextinput(), { view: 'material' }, function (WrappedComponent) {
return withControl_1.withControl(function (_a) {
var hint = _a.hint, onChange = _a.onChange, className = _a.className, label = _a.label, variant = _a.variant, focused = _a.focused, addonBefore = _a.addonBefore, props = tslib_1.__rest(_a, ["hint", "onChange", "className", "label", "variant", "focused", "addonBefore"]);
var defaultValue = props.defaultValue, view = props.view, state = props.state;
var _b = tslib_1.__read(react_1.useState(defaultValue), 2), value = _b[0], setValue = _b[1];
var floated = Boolean(props.value) || Boolean(value) || focused;
var labeled = Boolean(label);
return (react_1.default.createElement(react_1.default.Fragment, null,
react_1.default.createElement(WrappedComponent, tslib_1.__assign({ className: Textinput_1.cnTextinput({
variant: variant,
}, [className]), addonBefore: react_1.default.createElement(react_1.default.Fragment, null,
addonBefore,
labeled && (react_1.default.createElement(Textinput_Label_1.Label, { floated: floated }, label))), onChange: function (event) {
setValue(event.target.value);
if (typeof onChange === 'function') {
onChange(event);
}
} }, props)),
hint && (react_1.default.createElement("div", { className: Textinput_1.cnTextinput('Hint', {
view: view,
state: state,
variant: variant,
}) }, hint))));
});
});