import { Menu, Transition } from '@headlessui/react'; import { DotsVerticalIcon } from '@heroicons/react/solid'; import { Field, Form, Formik } from 'formik'; import React, { Fragment, useState } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import ReactMarkdown from 'react-markdown'; import { Permission, useUser } from '../../../hooks/useUser'; import Button from '../../Common/Button'; const messages = defineMessages({ description: 'Description', edit: 'Edit Description', cancel: 'Cancel', save: 'Save Changes', deleteissue: 'Delete Issue', }); interface IssueDescriptionProps { issueId: number; description: string; onEdit: (newDescription: string) => void; onDelete: () => void; } const IssueDescription: React.FC = ({ issueId, description, onEdit, onDelete, }) => { const intl = useIntl(); const { user, hasPermission } = useUser(); const [isEditing, setIsEditing] = useState(false); return (
{intl.formatMessage(messages.description)}
{(hasPermission(Permission.MANAGE_ISSUES) || user?.id === issueId) && ( {({ open }) => ( <>
Open options
{({ active }) => ( )} {({ active }) => ( )}
)}
)}
{isEditing ? ( { onEdit(values.newMessage); setIsEditing(false); }} > {() => { return (
); }}
) : (
{description}
)}
); }; export default IssueDescription;