UNPKG

@yandex/ui

Version:

Yandex UI components

36 lines (35 loc) 2.18 kB
"use strict"; 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)))); }); });