@wordpress/components
Version:
UI components for WordPress.
56 lines (50 loc) • 1.47 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import { createElement } from "@wordpress/element";
/**
* Internal dependencies
*/
import { contextConnect } from '../context';
import { Grid } from '../grid';
import { View } from '../view';
import FormGroupContent from './form-group-content';
import { useFormGroup } from './use-form-group';
/**
* @param {import('../context').ViewOwnProps<import('./types').FormGroupProps, 'div'>} props
* @param {import('react').Ref<any>} forwardedRef
*/
function FormGroup(props, forwardedRef) {
const {
contentProps,
horizontal,
...otherProps
} = useFormGroup(props);
if (horizontal) {
return createElement(Grid, _extends({
templateColumns: "minmax(0, 1fr) 2fr"
}, otherProps, {
ref: forwardedRef
}), createElement(FormGroupContent, contentProps));
}
return createElement(View, _extends({}, otherProps, {
ref: forwardedRef
}), createElement(FormGroupContent, contentProps));
}
/**
* `FormGroup` is a form component that groups a label with a form element (e.g. `Switch` or `TextInput`).
*
* @example
* ```jsx
* import { FormGroup, TextInput } from `@wordpress/components/ui`;
*
* function Example() {
* return (
* <FormGroup label="First name">
* <TextInput />
* </FormGroup>
* );
* }
* ```
*/
const ConnectedFormGroup = contextConnect(FormGroup, 'FormGroup');
export default ConnectedFormGroup;
//# sourceMappingURL=form-group.js.map