import React, { ElementType, ButtonHTMLAttributes, useEffect } from 'react';
import classNames from 'classnames';
import { NavbarToggler } from 'reactstrap';
import { SLIM, NAVBAR, useHeaderContext } from './HeaderContext';
export interface HeaderTogglerProps extends ButtonHTMLAttributes {
/** Tipo di elemento DOM da utilizzare: di default "a" per Header Slim, "button" per altri tipi di Header.
* Se fornito questo sovrascriverà il valore di default.
*/
tag?: ElementType;
/** Classi aggiuntive da usare per il componente HeaderToggler */
className?: string;
/** Indica l'attributo "type" sull'elemento DOM. Di default '' per Header Slim, "button" per altri tipi di Header.
* Se fornito questo sovrascriverà il valore di default.
*/
type?: 'button' | 'submit' | 'reset';
isOpen?: boolean;
testId?: string;
}
const BUTTON = 'button';
export const HeaderToggler = ({ className, tag, type, isOpen = false, testId, ...attributes }: HeaderTogglerProps) => {
const HeaderType = useHeaderContext();
const defaultTag = HeaderType === SLIM ? 'a' : BUTTON;
const defaultType = HeaderType === SLIM ? undefined : BUTTON;
const classes = classNames(
{
'it-opener d-lg-none': HeaderType === SLIM,
'custom-navbar-toggler': HeaderType === NAVBAR
},
className
);
const expanded = isOpen ? 'true' : 'false';
useEffect(() => {
document.querySelectorAll('.container-fluid').forEach((element) => {
element.classList.remove('container-fluid');
});
});
return (
);
};