@engie-group/fluid-design-system-react
Version:
Fluid Design System React
22 lines (19 loc) • 1.08 kB
JavaScript
import { jsx } from 'react/jsx-runtime';
import React__default, { useCallback } from 'react';
import { useStateControl } from '../../../utils/hook.js';
import { Utils } from '../../../utils/util.js';
import { NJSidebarContext } from '../NJSidebarContext.js';
const NJSidebarRoot = React__default.forwardRef((props, forwardedRef) => {
const { children, className, onCollapse: onCollapse, initialCollapsed, collapsed: controlledCollapsed, ...htmlProps } = props;
const [collapsed, setCollapsed] = useStateControl(initialCollapsed, controlledCollapsed);
const toggleCollapse = useCallback(() => {
setCollapsed(!collapsed);
onCollapse?.(!collapsed);
}, [onCollapse, collapsed]);
const classes = Utils.classNames('nj-sidebar', className, {
'nj-sidebar--collapsed': collapsed
});
return (jsx("div", { ref: forwardedRef, ...htmlProps, className: classes, children: jsx(NJSidebarContext.Provider, { value: { collapsed, toggleCollapse }, children: children }) }));
});
NJSidebarRoot.displayName = 'NJSidebarRoot';
export { NJSidebarRoot };