import {ReportProps} from 'common/report' import {capitalize} from 'lodash' import {useState} from 'react' import {toast} from 'react-hot-toast' import {Button} from 'web/components/buttons/button' import {Col} from 'web/components/layout/col' import {Modal} from 'web/components/layout/modal' import {Row} from 'web/components/layout/row' import {Title} from 'web/components/widgets/title' import {useUser} from 'web/hooks/use-user' import {report as reportContent} from 'web/lib/api' import {withTracking} from 'web/lib/service/analytics' export function ReportButton(props: {report: ReportProps}) { const {report} = props const {contentOwnerId, contentType} = report const currentUser = useUser() const [isModalOpen, setIsModalOpen] = useState(false) const label = contentType === 'contract' ? 'question' : contentType if (!currentUser || currentUser.id === contentOwnerId) return null return ( <> ) } export const ReportModal = (props: { isModalOpen: boolean setIsModalOpen: (isModalOpen: boolean) => void label: string report: ReportProps }) => { const {label, report, setIsModalOpen, isModalOpen} = props const [isReported, setIsReported] = useState(false) const onReport = async () => { await toast.promise(reportContent(report), { loading: 'Reporting...', success: `${capitalize(label)} reported! Admins will take a look within 24 hours.`, error: `Error reporting ${label}`, }) setIsReported(true) } return ( Report {label} {isReported ? `You've reported this ${label}. Our team will take a look within 24 hours.` : `Report this ${label} for objectionable content that violates our `} guidelines . {!isReported && ( )} ) }