UNPKG

@engie-group/fluid-design-system-react

Version:

Fluid Design System React

26 lines (23 loc) 1.1 kB
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 };