UNPKG

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

Version:

Fluid Design System React

22 lines (19 loc) 1.08 kB
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 };