review-panel-entry-indicator.tsx 823 B

123456789101112131415161718192021222324252627
  1. import { memo, MouseEventHandler } from 'react'
  2. import MaterialIcon from '@/shared/components/material-icon'
  3. export const EntryIndicator = memo<{
  4. handleMouseEnter?: MouseEventHandler<HTMLDivElement>
  5. handleMouseLeave?: MouseEventHandler<HTMLDivElement>
  6. handleMouseDown?: MouseEventHandler<HTMLDivElement>
  7. type: string
  8. }>(function EntryIndicator({
  9. handleMouseEnter,
  10. handleMouseLeave,
  11. handleMouseDown,
  12. type,
  13. }) {
  14. return (
  15. <div
  16. className="review-panel-entry-indicator"
  17. onMouseEnter={handleMouseEnter}
  18. onMouseLeave={handleMouseLeave}
  19. onMouseDown={handleMouseDown} // Using onMouseDown rather than onClick to guarantee that it fires before onFocus
  20. role="button"
  21. tabIndex={0}
  22. >
  23. <MaterialIcon type={type} className="review-panel-entry-icon" />
  24. </div>
  25. )
  26. })