UNPKG

@wordpress/components

Version:
62 lines (59 loc) 1.46 kB
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