@engie-group/fluid-design-system-react
Version:
Fluid Design System React
26 lines (23 loc) • 1.1 kB
JavaScript
import { jsx } from 'react/jsx-runtime';
import React__default from 'react';
import { useStateControl } from '../../utils/hook.js';
import { Utils } from '../../utils/util.js';
import { NJSegmentedControlContext } from './NJSegmentedControl.context.js';
const rootClass = 'nj-segmented-control';
const NJSegmentedControl = React__default.forwardRef(({ initialValue, value: controlledValue, scale, onChange, children, ...htmlProps }, forwardedRef) => {
if (!children) {
return null;
}
const [value, setValue] = useStateControl(initialValue, controlledValue, onChange);
const className = Utils.classNames(rootClass, {
[`${rootClass}--${scale}`]: scale
});
return (jsx(NJSegmentedControlContext.Provider, { value: {
selectedValue: value,
onOptionClicked: (buttonValue) => {
setValue(buttonValue);
}
}, children: jsx("div", { ref: forwardedRef, className: className, ...htmlProps, children: children }) }));
});
NJSegmentedControl.displayName = 'NJSegmentedControl';
export { NJSegmentedControl };