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() &&
}
>
);
}