import { ComponentProps, ReactNode, useState } from 'react';
import classnames from 'classnames';
import styles from './VRInternalTextField.css';
import { ENTER, SPACE, TAB } from '../keyCodes';
import Pog from '../Pog';
import TapArea from '../TapArea';
import Tooltip from '../Tooltip';
function MaybeTooltip({
children,
tooltipText,
}: {
children: ReactNode;
tooltipText: string | null | undefined;
}) {
return tooltipText ? (
{children}
) : (
children
);
}
type Props = {
accessibilityChecked?: boolean;
accessibilityHidden?: boolean;
accessibilityLabel?: string;
hoverStyle?: 'default' | 'none';
icon: 'arrow-down' | 'cancel' | 'eye' | 'eye-hide';
onClick: () => void;
pogPadding?: 1 | 2;
role?: 'switch';
size?: 'sm' | 'md' | 'lg';
tapStyle?: ComponentProps['tapStyle'];
tooltipText?: string;
};
export default function IconButtonEnd({
accessibilityChecked,
accessibilityHidden,
accessibilityLabel,
hoverStyle = 'default',
icon,
onClick,
pogPadding = 1,
role,
tapStyle,
tooltipText,
size,
}: Props) {
const [focused, setFocused] = useState(false);
const isSM = size === 'sm';
const isMD = size === 'md';
const isLG = size === 'lg';
return (
setFocused(false)}
onFocus={() => setFocused(true)}
onKeyDown={({ event }) => {
if ([ENTER, SPACE].includes(event.keyCode)) onClick();
if (event.keyCode !== TAB) event.preventDefault();
}}
onMouseEnter={() => setFocused(true)}
onMouseLeave={() => setFocused(false)}
onTap={onClick}
role={role}
rounding={1}
tabIndex={accessibilityHidden ? -1 : 0}
tapStyle={tapStyle}
>
);
}