UNPKG

@carbon/react

Version:

React components for the Carbon Design System

44 lines (42 loc) 1.76 kB
/** * Copyright IBM Corp. 2016, 2026 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ const require_runtime = require("../../_virtual/_rolldown/runtime.js"); const require_keys = require("../../internal/keyboard/keys.js"); const require_match = require("../../internal/keyboard/match.js"); const require_useEvent = require("../../internal/useEvent.js"); let react = require("react"); react = require_runtime.__toESM(react); let prop_types = require("prop-types"); prop_types = require_runtime.__toESM(prop_types); let react_jsx_runtime = require("react/jsx-runtime"); //#region src/components/UIShell/HeaderContainer.tsx /** * Copyright IBM Corp. 2016, 2023 * * This source code is licensed under the Apache-2.0 license found in the * LICENSE file in the root directory of this source tree. */ function HeaderContainer({ render: Children, isSideNavExpanded = false, ...rest }) { const [isSideNavExpandedState, setIsSideNavExpandedState] = (0, react.useState)(isSideNavExpanded); require_useEvent.useWindowEvent("keydown", (event) => { if (require_match.match(event, require_keys.Escape)) setIsSideNavExpandedState(false); }); const handleHeaderMenuButtonClick = (0, react.useCallback)(() => { setIsSideNavExpandedState((prevIsSideNavExpanded) => !prevIsSideNavExpanded); }, [setIsSideNavExpandedState]); return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Children, { ...rest, isSideNavExpanded: isSideNavExpandedState, onClickSideNavExpand: handleHeaderMenuButtonClick }); } HeaderContainer.propTypes = { isSideNavExpanded: prop_types.default.bool, render: prop_types.default.elementType.isRequired }; //#endregion exports.default = HeaderContainer;