react-base-guide
Version:
react ui components
25 lines • 2.62 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const styled_components_1 = __importDefault(require("styled-components"));
const input_1 = __importDefault(require("../input"));
const dropdown_menu_1 = __importDefault(require("../dropdown-menu"));
const add_custom_style_1 = require("../../utils/add-custom-style");
const dropdown_menu_keys_handler_1 = __importDefault(require("../../utils/dropdown-menu-keys-handler"));
const AutocompleteRoot = styled_components_1.default.div `
position: relative;
box-sizing: border-box;
${p => (0, add_custom_style_1.addCustomStyle)(p.$styled, "inline-block")}
`;
const AutoComplete = (props, ref) => {
var _a;
const [open, setOpen] = (0, react_1.useState)(false);
const rows = (_a = props.rows) === null || _a === void 0 ? void 0 : _a.filter(row => { var _a, _b, _c; return ((_a = row === null || row === void 0 ? void 0 : row.value) === null || _a === void 0 ? void 0 : _a.toLowerCase().indexOf((_c = (_b = props.value) === null || _b === void 0 ? void 0 : _b.toString()) === null || _c === void 0 ? void 0 : _c.toLowerCase())) > -1; });
return (0, jsx_runtime_1.jsxs)(AutocompleteRoot, Object.assign({ "$styled": props.styled }, { children: [(0, jsx_runtime_1.jsx)(input_1.default, { styled: { display: "block", width: "100%" }, label: props.label, message: props.message, type: props.type, placeholder: props.placeholder, maxLength: props.maxLength, value: props.value, onChange: props.onChange, ref: ref, id: props.id, name: props.name, tabIndex: props.tabIndex, max: props.max, min: props.min, disabled: props.disabled, readOnly: props.readOnly, autoComplete: props.autoComplete, autoFocus: props.autoFocus, onClick: props.onClick, onMouseUp: props.onMouseUp, onMouseDown: props.onMouseDown, onKeyUp: (e) => (0, dropdown_menu_keys_handler_1.default)({ e, setOpen, rows }), onKeyDown: props.onKeyDown, onKeyPress: props.onKeyPress, onFocus: () => setOpen(true), onBlur: e => { setOpen(false); props.onBlur && props.onBlur(e); }, error: props.error, warning: props.warning, success: props.success }), (0, jsx_runtime_1.jsx)(dropdown_menu_1.default, { rows: rows, open: open, menuWidth: props.menuWidth || "100%", menuHeight: props.menuHeight, right: props.right, up: props.up })] }));
};
exports.default = (0, react_1.forwardRef)(AutoComplete);
//# sourceMappingURL=index.js.map