@wordpress/components
Version:
UI components for WordPress.
78 lines (73 loc) • 1.99 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.noop = exports.default = exports.FormToggle = void 0;
var _clsx = _interopRequireDefault(require("clsx"));
var _element = require("@wordpress/element");
var _jsxRuntime = require("react/jsx-runtime");
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const noop = () => {};
exports.noop = noop;
function UnforwardedFormToggle(props, ref) {
const {
className,
checked,
id,
disabled,
onChange = noop,
...additionalProps
} = props;
const wrapperClasses = (0, _clsx.default)('components-form-toggle', className, {
'is-checked': checked,
'is-disabled': disabled
});
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("span", {
className: wrapperClasses,
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("input", {
className: "components-form-toggle__input",
id: id,
type: "checkbox",
checked: checked,
onChange: onChange,
disabled: disabled,
...additionalProps,
ref: ref
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
className: "components-form-toggle__track"
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
className: "components-form-toggle__thumb"
})]
});
}
/**
* FormToggle switches a single setting on or off.
*
* ```jsx
* import { FormToggle } from '@wordpress/components';
* import { useState } from '@wordpress/element';
*
* const MyFormToggle = () => {
* const [ isChecked, setChecked ] = useState( true );
*
* return (
* <FormToggle
* checked={ isChecked }
* onChange={ () => setChecked( ( state ) => ! state ) }
* />
* );
* };
* ```
*/
const FormToggle = exports.FormToggle = (0, _element.forwardRef)(UnforwardedFormToggle);
var _default = exports.default = FormToggle;
//# sourceMappingURL=index.js.map