import React, { useRef, useEffect } from 'react'; import { Button, ButtonSize, ButtonVariants } from '../Button'; import { useDropdownContext } from './context'; export interface IDropdownToggleProps { as?: React.ReactNode | 'a' | 'span' | 'div'; children?: any; className?: string; variant?: ButtonVariants; size?: ButtonSize; onClick?(e: any): void; [x: string]: any; } export const DropdownToggle: React.FC = (props) => { const { as, children, className = '', variant, size, onClick, otherProps } = props; const { visible, setVisible, setToggleRef } = useDropdownContext(); const refToggle = useRef(null); const handleToggle = (e: React.MouseEvent) => { e.preventDefault(); setVisible(!visible); onClick && onClick(e); }; useEffect(() => { setToggleRef(refToggle); }, []); switch (as) { case 'a': { return ( {children} ); } case 'div': { return (
{children}
); } case 'span': { return ( {children} ); } default: { return ( ); } } };