react-money-keyboard-simple
Version:
Lightweight and customizable React component that provides a virtual numeric keyboard designed specifically for money input fields.
67 lines (65 loc) • 2.72 kB
JavaScript
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var index_exports = {};
__export(index_exports, {
Keyboard: () => Keyboard_default
});
module.exports = __toCommonJS(index_exports);
// src/Keyboard.tsx
var import_react = require("react");
var import_jsx_runtime = require("react/jsx-runtime");
var Keyboard = (props) => {
const [activeKey, setActiveKey] = (0, import_react.useState)(null);
const {
handleSubmit,
handleNumberClick,
handleBackspace,
BackspaceIcon,
titleBtnEnter = "Done"
} = props;
const handleKeyDown = (value) => {
setActiveKey(value);
};
const handleKeyUp = () => {
setActiveKey(null);
};
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "grid grid-cols-4 grid-rows-4 gap-2 bg-[rgba(0,0,0,0.03)] p-2", children: [1, 2, 3, "\u232B", 4, 5, 6, titleBtnEnter, 7, 8, 9, 0, "."].map(
(value, index) => {
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
"button",
{
onClick: () => value === titleBtnEnter ? handleSubmit() : value === "\u232B" ? handleBackspace() : handleNumberClick(value.toString()),
onMouseDown: () => handleKeyDown(value),
onMouseUp: handleKeyUp,
onTouchStart: () => handleKeyDown(value),
onTouchEnd: handleKeyUp,
className: ` flex justify-center items-center rounded-lg text-[20px] font-semibold transition-all duration-100 md: cursor-pointer ${activeKey === value ? "bg-gray-300 scale-95" : "hover:bg-gray-200"} ${value === titleBtnEnter ? "row-span-3 h-auto bg-[#0abd52] text-white" : "bg-white h-[48px]"} ${value === 0 ? "col-span-2" : ""}`,
children: value === "\u232B" ? BackspaceIcon != null ? BackspaceIcon : "\u232B" : value
},
String(value) + index
);
}
) });
};
var Keyboard_default = Keyboard;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
Keyboard
});
//# sourceMappingURL=index.js.map