2
2
mirror of https://github.com/Thream/website.git synced 2024-07-21 09:28:32 +02:00
website/components/Application/Messages/Message/MessageOptions/MessageOptions.tsx

45 lines
1.3 KiB
TypeScript

import useTranslation from "next-translate/useTranslation"
import { useAuthentication } from "../../../../../tools/authentication"
import { Emoji } from "../../../../Emoji"
import type { MessageProps } from "../Message"
interface MessageOptionsProps extends MessageProps {
handleEdit: () => void
editMode: ":white_check_mark:" | ":pencil2:"
}
export const MessageOptions: React.FC<
React.PropsWithChildren<MessageOptionsProps>
> = ({ handleEdit, editMode, message }) => {
const { t } = useTranslation()
const { authentication } = useAuthentication()
const handleDeleteMessage = async (): Promise<void> => {
try {
await authentication.api.delete(`/messages/${message.id}`)
} catch {}
}
return (
<div className="absolute -top-8 right-6 flex opacity-0 transition-opacity group-hover:opacity-100">
{message.type === "text" && (
<div
className="message-options rounded-l-lg border-l-slate-600"
title={t("application:edit")}
onClick={handleEdit}
>
<Emoji value={editMode} size={18} />
</div>
)}
<div
className="message-options rounded-r-lg border-r-slate-600"
title={t("application:delete")}
onClick={handleDeleteMessage}
>
<Emoji value=":wastebasket:" size={18} />
</div>
</div>
)
}