import React, { type FC, useCallback, useContext, useEffect } from 'react'; import cn from 'classnames'; import { NavigationBarPrivate, type NavigationBarPrivateProps, } from '@alfalab/core-components-navigation-bar-private'; import { getDataTestId } from '@alfalab/core-components-shared'; import { ModalContext } from '../../Context'; import { ResponsiveContext } from '../../ResponsiveContext'; import { getSizeStyle } from '../../utils'; import desktopStyles from './desktop.module.css'; import styles from './index.module.css'; import mobileStyles from './mobile.module.css'; export type HeaderProps = Omit; export const Header: FC = ({ className, sticky, title, children, contentClassName, hasCloser = true, onClose: onHeaderClose, ...restProps }) => { const { setHasHeader, headerHighlighted, parentRef, onClose } = useContext(ModalContext); const { view, size, dataTestId } = useContext(ResponsiveContext); const handleClose = useCallback>( (...params) => { if (onHeaderClose) { onHeaderClose(...params); } if (onClose) { onClose(...params); } }, [onHeaderClose, onClose], ); useEffect(() => { setHasHeader(true); }, [setHasHeader]); const hasContent = Boolean(title || children); return ( {children} ); };