Files
readest/apps/readest-app/src/app/reader/components/annotator/AnnotationToolButton.tsx
T
Huang Xin fe9603ffb8 fix(a11y): updating progress info when navigating with screen readers (#3182)
Also add some missing button labels for screen readers
2026-02-06 08:43:03 +01:00

47 lines
1.1 KiB
TypeScript

import clsx from 'clsx';
import React, { useState } from 'react';
interface AnnotationToolButtonProps {
showTooltip: boolean;
tooltipText: string;
disabled?: boolean;
Icon: React.ElementType;
onClick: () => void;
}
const AnnotationToolButton: React.FC<AnnotationToolButtonProps> = ({
showTooltip,
tooltipText,
disabled,
Icon,
onClick,
}) => {
const [buttonClicked, setButtonClicked] = useState(false);
const handleClick = () => {
setButtonClicked(true);
onClick();
};
return (
<div
className='lg:tooltip lg:tooltip-bottom'
title={!buttonClicked && showTooltip ? tooltipText : undefined}
>
<button
onClick={handleClick}
aria-label={tooltipText}
className={clsx(
'flex h-8 min-h-8 w-8 items-center justify-center p-0',
disabled
? 'cursor-not-allowed opacity-50'
: 'not-eink:hover:bg-gray-500 eink:hover:border rounded-md',
)}
disabled={disabled}
>
<Icon />
</button>
</div>
);
};
export default AnnotationToolButton;