import React, { useState, useRef, useEffect } from 'react'; import PropTypes from 'prop-types'; import { PageStore } from '../../utils/stores/'; export function ReportForm(props) { const formActionsBottomRef = useRef(null); const reportMessageTextRef = useRef(null); const [maxFormContentHeight, setMaxFormContentHeight] = useState(null); function onWindowResize() { setMaxFormContentHeight(window.innerHeight - (56 + 2 * 24 + formActionsBottomRef.current.offsetHeight)); } function cancelReportForm(ev) { ev.preventDefault(); if (void 0 !== props.cancelReportForm) { props.cancelReportForm(); } } function submitReportForm(ev) { const descr = reportMessageTextRef.current.value.trim(); if ('' !== descr) { ev.preventDefault(); if (void 0 !== props.submitReportForm) { props.submitReportForm(descr); } } } useEffect(() => { onWindowResize(); PageStore.on('window_resize', onWindowResize); return () => { PageStore.removeListener('window_resize', onWindowResize); }; }, []); return (
); } ReportForm.propTypes = { mediaUrl: PropTypes.string.isRequired, cancelReportForm: PropTypes.func, submitReportForm: PropTypes.func, };