@wordpress/components
Version:
UI components for WordPress.
52 lines (49 loc) • 1.29 kB
JavaScript
/**
* WordPress dependencies
*/
import { forwardRef, useContext } from '@wordpress/element';
/**
* External dependencies
*/
import * as Ariakit from '@ariakit/react';
/**
* Internal dependencies
*/
import Button from '../button';
import { RadioGroupContext } from './context';
import { maybeWarnDeprecated36pxSize } from '../utils/deprecated-36px-size';
import { jsx as _jsx } from "react/jsx-runtime";
function UnforwardedRadio({
value,
children,
...props
}, ref) {
const {
store,
disabled
} = useContext(RadioGroupContext);
const selectedValue = Ariakit.useStoreState(store, 'value');
const isChecked = selectedValue !== undefined && selectedValue === value;
maybeWarnDeprecated36pxSize({
componentName: 'Radio',
size: undefined,
__next40pxDefaultSize: props.__next40pxDefaultSize
});
return /*#__PURE__*/_jsx(Ariakit.Radio, {
disabled: disabled,
store: store,
ref: ref,
value: value,
render: /*#__PURE__*/_jsx(Button, {
variant: isChecked ? 'primary' : 'secondary',
...props
}),
children: children || value
});
}
/**
* @deprecated Use `RadioControl` or `ToggleGroupControl` instead.
*/
export const Radio = forwardRef(UnforwardedRadio);
export default Radio;
//# sourceMappingURL=radio.js.map