import { useCallback, useState } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import classNames from 'classnames'; import CloseIcon from '@/material-icons/400-24px/close.svg?react'; import { IconButton } from 'mastodon/components/icon_button'; import { ZoomableImage } from './zoomable_image'; const messages = defineMessages({ close: { id: 'lightbox.close', defaultMessage: 'Close' }, }); export const ImageModal: React.FC<{ src: string; alt: string; onClose: () => void; }> = ({ src, alt, onClose }) => { const intl = useIntl(); const [navigationHidden, setNavigationHidden] = useState(false); const toggleNavigation = useCallback(() => { setNavigationHidden((prevState) => !prevState); }, [setNavigationHidden]); const navigationClassName = classNames('media-modal__navigation', { 'media-modal__navigation--hidden': navigationHidden, }); return (