gitscope
https://dev.kronoz.win/r/marzneshin.git
app/dashboard/src/pages/hosts/users/modals/delete-modal.tsx · v0.1.0
Source
1 6aab6f0 Mrdn 2y ago import {
2 6aab6f0 Mrdn 2y ago useToast,
3 6aab6f0 Mrdn 2y ago } from '@chakra-ui/react';
4 6aab6f0 Mrdn 2y ago import { FC, useState } from 'react';
5 6aab6f0 Mrdn 2y ago import { useTranslation } from 'react-i18next';
6 6aab6f0 Mrdn 2y ago import { useUsers } from 'stores';
7 6aab6f0 Mrdn 2y ago import { DeleteModal } from 'components/delete-modal';
8 6aab6f0 Mrdn 2y ago
9 6aab6f0 Mrdn 2y ago type DeleteUserModalProps = {
10 6aab6f0 Mrdn 2y ago deleteCallback?: () => void;
11 6aab6f0 Mrdn 2y ago };
12 6aab6f0 Mrdn 2y ago
13 6aab6f0 Mrdn 2y ago export const DeleteUserModal: FC<DeleteUserModalProps> = () => {
14 6aab6f0 Mrdn 2y ago const [loading, setLoading] = useState(false);
15 6aab6f0 Mrdn 2y ago const { deletingUser, onDeletingUser, deleteUser } = useUsers();
16 6aab6f0 Mrdn 2y ago const { t } = useTranslation();
17 6aab6f0 Mrdn 2y ago const toast = useToast();
18 6aab6f0 Mrdn 2y ago const onClose = () => {
19 6aab6f0 Mrdn 2y ago onDeletingUser(null);
20 6aab6f0 Mrdn 2y ago };
21 6aab6f0 Mrdn 2y ago const onDelete = () => {
22 6aab6f0 Mrdn 2y ago if (deletingUser) {
23 6aab6f0 Mrdn 2y ago setLoading(true);
24 6aab6f0 Mrdn 2y ago deleteUser(deletingUser)
25 6aab6f0 Mrdn 2y ago .then(() => {
26 6aab6f0 Mrdn 2y ago toast({
27 6aab6f0 Mrdn 2y ago title: t('deleteUser.deleteSuccess', { username: deletingUser.username }),
28 6aab6f0 Mrdn 2y ago status: 'success',
29 6aab6f0 Mrdn 2y ago isClosable: true,
30 6aab6f0 Mrdn 2y ago position: 'top',
31 6aab6f0 Mrdn 2y ago duration: 3000,
32 6aab6f0 Mrdn 2y ago });
33 6aab6f0 Mrdn 2y ago })
34 6aab6f0 Mrdn 2y ago .then(onClose)
35 6aab6f0 Mrdn 2y ago .finally(setLoading.bind(null, false));
36 6aab6f0 Mrdn 2y ago }
37 6aab6f0 Mrdn 2y ago };
38 6aab6f0 Mrdn 2y ago return (
39 6aab6f0 Mrdn 2y ago <DeleteModal
40 6aab6f0 Mrdn 2y ago onDelete={onDelete}
41 6aab6f0 Mrdn 2y ago loading={loading}
42 6aab6f0 Mrdn 2y ago isOpen={!!deletingUser}
43 6aab6f0 Mrdn 2y ago onClose={onClose}
44 6aab6f0 Mrdn 2y ago deletingObjectName={deletingUser?.username}
45 6aab6f0 Mrdn 2y ago deleteObjectPromptT={'deleteUser.prompt'}
46 6aab6f0 Mrdn 2y ago deleteObjectTitleT={'deleteUser.title'}
47 6aab6f0 Mrdn 2y ago />
48 6aab6f0 Mrdn 2y ago );
49 6aab6f0 Mrdn 2y ago };