@wordpress/components
Version:
UI components for WordPress.
62 lines (59 loc) • 1.46 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import { createElement } from "@wordpress/element";
/**
* External dependencies
*/
import classnames from 'classnames';
/**
* Internal dependencies
*/
export 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 ) }
* />
* );
* };
* ```
*/
export function FormToggle(props) {
const {
className,
checked,
id,
disabled,
onChange = noop,
...additionalProps
} = props;
const wrapperClasses = classnames('components-form-toggle', className, {
'is-checked': checked,
'is-disabled': disabled
});
return createElement("span", {
className: wrapperClasses
}, createElement("input", _extends({
className: "components-form-toggle__input",
id: id,
type: "checkbox",
checked: checked,
onChange: onChange,
disabled: disabled
}, additionalProps)), createElement("span", {
className: "components-form-toggle__track"
}), createElement("span", {
className: "components-form-toggle__thumb"
}));
}
export default FormToggle;
//# sourceMappingURL=index.js.map