react-base-guide
Version:
react ui components
37 lines • 1.38 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const dropdownMenuKeysHandler = ({ e, setOpen, rows }) => {
var _a, _b;
if (!rows) {
return;
}
if (e.key === "Enter" || e.key === "Escape") {
e.preventDefault();
setOpen(false);
return;
}
if (!(e.key === "ArrowUp" || e.key === "ArrowDown")) {
return;
}
if ((rows === null || rows === void 0 ? void 0 : rows.filter(r => r.selected).length) === 0 && e.key === "ArrowUp" || e.key === "ArrowDown") {
((_a = rows[0]) === null || _a === void 0 ? void 0 : _a.onClick) && ((_b = rows[0]) === null || _b === void 0 ? void 0 : _b.onClick(e));
}
for (let index = 0; index < rows.length; index++) {
let row = rows[index];
if (row.selected) {
if (e.key === "ArrowUp") {
e.preventDefault();
let prevRow = rows[index - 1] || row;
prevRow.onClick && prevRow.onClick(e);
}
if (e.key === "ArrowDown") {
e.preventDefault();
let nextRow = rows[index + 1] || row;
nextRow.onClick && nextRow.onClick(e);
}
break;
}
}
};
exports.default = dropdownMenuKeysHandler;
//# sourceMappingURL=dropdown-menu-keys-handler.js.map