import React, { useState } from 'react'; import { FormattedMessage } from 'react-intl'; import { Textarea, Form, Button, FormGroup, FormActions, Text } from 'soapbox/components/ui'; import { useOwnAccount } from 'soapbox/hooks'; import { captureSentryFeedback } from 'soapbox/sentry'; interface ISentryFeedbackForm { eventId: string; } /** Accept feedback for the given Sentry event. */ const SentryFeedbackForm: React.FC = ({ eventId }) => { const { account } = useOwnAccount(); const [feedback, setFeedback] = useState(); const [isSubmitting, setIsSubmitting] = useState(false); const [isSubmitted, setIsSubmitted] = useState(false); const handleFeedbackChange: React.ChangeEventHandler = (e) => { setFeedback(e.target.value); }; const handleSubmitFeedback: React.FormEventHandler = async (_e) => { if (!feedback || !eventId) return; setIsSubmitting(true); await captureSentryFeedback({ name: account?.acct, event_id: eventId, comments: feedback, }).catch(console.error); setIsSubmitted(true); }; if (isSubmitted) { return ( ); } return (