import { Icon, IconType } from '@/components/Icon'; import { Disclosure, DisclosureButton, DisclosurePanel, } from '@reach/disclosure'; import { FunctionComponent } from 'preact'; import { useState, useRef, useEffect, MouseEventHandler } from 'react'; const DisclosureIconButton: FunctionComponent<{ className?: string; icon: IconType; onMouseEnter?: MouseEventHandler; onMouseLeave?: MouseEventHandler; }> = ({ className = '', icon, onMouseEnter, onMouseLeave }) => ( ); /** * AuthAppInfoPopup is an info icon that shows a tooltip when clicked * Tooltip is dismissible by clicking outside * * Note: it can be generalized but more use cases are required * @returns */ export const AuthAppInfoTooltip: FunctionComponent = () => { const [isClicked, setClicked] = useState(false); const [isHover, setHover] = useState(false); const ref = useRef(null); useEffect(() => { const dismiss = () => setClicked(false); document.addEventListener('mousedown', dismiss); return () => { document.removeEventListener('mousedown', dismiss); }; }, [ref]); return ( setClicked(!isClicked)} >
setHover(true)} onMouseLeave={() => setHover(false)} />
Some apps, like Google Authenticator, do not back up and restore your secret keys if you lose your device or get a new one.
); };