@hitachivantara/uikit-react-core
Version:
Core React components for the NEXT Design System.
95 lines (94 loc) • 2.61 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const jsxRuntime = require("react/jsx-runtime");
const React = require("react");
const MuiSwitch = require("@mui/material/Switch");
const uikitReactUtils = require("@hitachivantara/uikit-react-utils");
const BaseSwitch_styles = require("./BaseSwitch.styles.cjs");
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
const MuiSwitch__default = /* @__PURE__ */ _interopDefault(MuiSwitch);
const HvBaseSwitch = React.forwardRef(
function HvBaseSwitch2(props, ref) {
const {
classes: classesProp,
className,
id,
name,
value = "on",
required = false,
readOnly = false,
disabled = false,
checked,
defaultChecked,
onChange,
inputProps,
onFocusVisible,
onBlur,
...others
} = uikitReactUtils.useDefaultProps("HvBaseSwitch", props);
const { classes, cx } = BaseSwitch_styles.useClasses(classesProp);
const [focusVisible, setFocusVisible] = React.useState(false);
const onFocusVisibleCallback = React.useCallback(
(evt) => {
setFocusVisible(true);
onFocusVisible?.(evt);
},
[onFocusVisible]
);
const onBlurCallback = React.useCallback(
(evt) => {
setFocusVisible(false);
onBlur?.(evt);
},
[onBlur]
);
const onLocalChange = React.useCallback(
(evt) => {
if (readOnly) {
return;
}
onChange?.(evt, evt.target.checked, value);
},
[onChange, readOnly, value]
);
return /* @__PURE__ */ jsxRuntime.jsx(
MuiSwitch__default.default,
{
ref,
id,
name,
className: cx(
classes.root,
{
[classes.disabled]: disabled,
[classes.readOnly]: readOnly,
[classes.focusVisible]: focusVisible
},
className
),
color: "default",
disabled,
required,
readOnly,
onChange: onLocalChange,
value,
checked,
defaultChecked,
classes: {
root: classes.switch,
switchBase: classes.switchBase,
checked: classes.checked,
track: classes.track,
thumb: classes.thumb,
disabled: classes.disabled
},
inputProps,
onFocusVisible: onFocusVisibleCallback,
onBlur: onBlurCallback,
...others
}
);
}
);
exports.baseSwitchClasses = BaseSwitch_styles.staticClasses;
exports.HvBaseSwitch = HvBaseSwitch;