import React from 'react'; import PropTypes from 'prop-types'; import classNames from 'classnames'; import { defineMessages, injectIntl } from 'react-intl'; import IconButton from 'mastodon/components/icon_button'; import ImageLoader from './image_loader'; const messages = defineMessages({ close: { id: 'lightbox.close', defaultMessage: 'Close' }, }); export default @injectIntl class ImageModal extends React.PureComponent { static propTypes = { src: PropTypes.string.isRequired, alt: PropTypes.string.isRequired, onClose: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, }; state = { navigationHidden: false, }; toggleNavigation = () => { this.setState(prevState => ({ navigationHidden: !prevState.navigationHidden, })); }; render () { const { intl, src, alt, onClose } = this.props; const { navigationHidden } = this.state; const navigationClassName = classNames('media-modal__navigation', { 'media-modal__navigation--hidden': navigationHidden, }); return (