mirror of
https://github.com/lordmathis/lemma.git
synced 2025-11-05 23:44:22 +00:00
53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
import React from 'react';
|
|
import { Modal, Text, Button, Group } from '@mantine/core';
|
|
import { useModalContext } from '../../../contexts/ModalContext';
|
|
|
|
interface DeleteFileModalProps {
|
|
onDeleteFile: (fileName: string) => Promise<void>;
|
|
selectedFile: string | null;
|
|
}
|
|
|
|
const DeleteFileModal: React.FC<DeleteFileModalProps> = ({
|
|
onDeleteFile,
|
|
selectedFile,
|
|
}) => {
|
|
const { deleteFileModalVisible, setDeleteFileModalVisible } =
|
|
useModalContext();
|
|
|
|
const handleConfirm = async (): Promise<void> => {
|
|
if (!selectedFile) return;
|
|
|
|
await onDeleteFile(selectedFile);
|
|
setDeleteFileModalVisible(false);
|
|
};
|
|
|
|
return (
|
|
<Modal
|
|
opened={deleteFileModalVisible}
|
|
onClose={() => setDeleteFileModalVisible(false)}
|
|
title="Delete File"
|
|
centered
|
|
>
|
|
<Text>Are you sure you want to delete "{selectedFile}"?</Text>
|
|
<Group justify="flex-end" mt="xl">
|
|
<Button
|
|
variant="default"
|
|
onClick={() => setDeleteFileModalVisible(false)}
|
|
data-testid="cancel-delete-button"
|
|
>
|
|
Cancel
|
|
</Button>
|
|
<Button
|
|
color="red"
|
|
onClick={() => void handleConfirm()}
|
|
data-testid="confirm-delete-button"
|
|
>
|
|
Delete
|
|
</Button>
|
|
</Group>
|
|
</Modal>
|
|
);
|
|
};
|
|
|
|
export default DeleteFileModal;
|