umami/src/app/(main)/settings/users/UserDeleteButton.tsx

35 lines
933 B
TypeScript
Raw Normal View History

2023-09-29 12:29:22 +00:00
import { Button, Icon, Icons, Modal, ModalTrigger, Text } from 'react-basics';
import { useMessages, useLogin } from 'components/hooks';
2023-09-29 12:29:22 +00:00
import UserDeleteForm from './UserDeleteForm';
2023-12-03 11:07:03 +00:00
export function UserDeleteButton({
userId,
username,
onDelete,
}: {
userId: string;
username: string;
onDelete?: () => void;
}) {
2023-09-29 12:29:22 +00:00
const { formatMessage, labels } = useMessages();
const { user } = useLogin();
2023-09-29 12:29:22 +00:00
return (
<ModalTrigger disabled={userId === user?.id}>
<Button disabled={userId === user?.id} variant="quiet">
2023-09-29 12:29:22 +00:00
<Icon>
<Icons.Trash />
</Icon>
<Text>{formatMessage(labels.delete)}</Text>
</Button>
<Modal title={formatMessage(labels.deleteUser)}>
2023-12-06 03:22:14 +00:00
{(close: () => void) => (
2023-09-29 12:29:22 +00:00
<UserDeleteForm userId={userId} username={username} onSave={onDelete} onClose={close} />
)}
</Modal>
</ModalTrigger>
);
}
export default UserDeleteButton;