@heycar-uikit/core
Version:
The React UI library from HeyCar
39 lines (32 loc) • 1.69 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
var React = require('react');
var cn = require('classnames');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
var cn__default = /*#__PURE__*/_interopDefaultLegacy(cn);
var styles = {"container":"switch__container_141qq","switch":"switch__switch_141qq"};
require('./styles/default.css');
var Switch = React__default["default"].forwardRef(function (_a, ref) {
var checked = _a.checked, onChange = _a.onChange, _b = _a.disabled, disabled = _b === void 0 ? false : _b, className = _a.className;
var classNames = cn__default["default"](styles.container, className);
var _c = React.useState(checked), isChecked = _c[0], setChecked = _c[1];
React.useEffect(function () {
setChecked(checked);
}, [checked]);
var handleSwitch = function () {
setChecked(!isChecked);
onChange();
};
var handleKeyDown = function (e) {
if ((e === null || e === void 0 ? void 0 : e.key) === 'Enter') {
handleSwitch();
onChange();
}
};
return (React__default["default"].createElement("label", { className: classNames },
React__default["default"].createElement("input", { checked: isChecked, disabled: disabled, onChange: function () { return handleSwitch(); }, ref: ref, type: "checkbox" }),
React__default["default"].createElement("span", { className: styles.switch, tabIndex: 0, onKeyDown: handleKeyDown })));
});
Switch.displayName = 'Switch';
exports.Switch = Switch;
exports["default"] = Switch;