@wordpress/components
Version:
UI components for WordPress.
75 lines (65 loc) • 1.84 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.FormToggle = FormToggle;
exports.noop = exports.default = void 0;
var _element = require("@wordpress/element");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _classnames = _interopRequireDefault(require("classnames"));
/**
* External dependencies
*/
const noop = () => {};
/**
* 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 ) }
* />
* );
* };
* ```
*/
exports.noop = noop;
function FormToggle(props) {
const {
className,
checked,
id,
disabled,
onChange = noop,
...additionalProps
} = props;
const wrapperClasses = (0, _classnames.default)('components-form-toggle', className, {
'is-checked': checked,
'is-disabled': disabled
});
return (0, _element.createElement)("span", {
className: wrapperClasses
}, (0, _element.createElement)("input", (0, _extends2.default)({
className: "components-form-toggle__input",
id: id,
type: "checkbox",
checked: checked,
onChange: onChange,
disabled: disabled
}, additionalProps)), (0, _element.createElement)("span", {
className: "components-form-toggle__track"
}), (0, _element.createElement)("span", {
className: "components-form-toggle__thumb"
}));
}
var _default = FormToggle;
exports.default = _default;
//# sourceMappingURL=index.js.map