Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

IconButton.tsx 772B

12345678910111213141516171819202122232425262728293031323334
  1. import React, { ReactNode, useRef } from 'react';
  2. interface IconButtonProps {
  3. children: ReactNode;
  4. onClick: () => void;
  5. className: string;
  6. }
  7. const IconButton: React.FC<IconButtonProps> = ({ children, onClick, className }) => {
  8. const buttonRef = useRef<HTMLButtonElement>(null);
  9. function handleClick() {
  10. if (buttonRef.current != null) {
  11. buttonRef.current.blur();
  12. }
  13. if (typeof onClick === 'function') {
  14. onClick();
  15. }
  16. }
  17. return (
  18. <button
  19. type="button"
  20. ref={buttonRef}
  21. onClick={handleClick}
  22. className={`c-icon-button ${className && className}`}
  23. >
  24. {children}
  25. </button>
  26. );
  27. };
  28. export default IconButton;