import { useRosettaColors } from "@/app/hooks/useRosettaColors"; import { useReplyMessages } from "@/app/providers/DialogProvider/useReplyMessages"; import { Button, Flex, Modal, Text } from "@mantine/core"; import { useDisclosure, useHotkeys } from "@mantine/hooks"; import { IconCornerUpLeft, IconCornerUpRightDouble, IconTrash, IconX } from "@tabler/icons-react"; import classes from "./ReplyHeader.module.css"; import { DialogsList } from "../DialogsList/DialogsList"; import { useNavigate } from "react-router-dom"; import { useDialog } from "@/app/providers/DialogProvider/useDialog"; import { modals } from "@mantine/modals"; export function ReplyHeader() { const colors = useRosettaColors(); const {replyMessages, deselectAllMessages, translateMessagesToDialogInput, dialog, isSelectionInCurrentDialog} = useReplyMessages(); const [opened, { open, close }] = useDisclosure(false); const navigate = useNavigate(); const {deleteSelectedMessages} = useDialog(); useHotkeys([ ['Esc', deselectAllMessages] ], [], true); const onClickForward = () => { open(); } const selectDialogToForward = (publicKey: string) => { translateMessagesToDialogInput(publicKey); close(); navigate(`/main/chat/${publicKey}`); } const onClickReply = () => { translateMessagesToDialogInput(dialog); } const onClickDelete = async () => { modals.openConfirmModal({ title: 'Delete messages', children: ( Are you sure you want to delete {replyMessages.messages.length} message{replyMessages.messages.length > 1 && 's'}? This action cannot be undone. ), labels: { confirm: 'Delete', cancel: 'Cancel' }, confirmProps: { color: 'red' }, centered: true, onConfirm: async () => { const messageIds = replyMessages.messages.map(m => m.message_id); await deleteSelectedMessages(messageIds); deselectAllMessages(); }, }); } const onCancel = () => { deselectAllMessages(); close(); } return ( <> Select to forward {replyMessages.messages.length} message{replyMessages.messages.length > 1 ? "s" : ""} selected {isSelectionInCurrentDialog() && } {isSelectionInCurrentDialog() && } ); }