Apresentar o SweetAlert2 para confirmar antes de excluir o registro no banco de dados com Laravel 11 e React
Neste tutorial, será apresentado como utilizar o SweetAlert2 para confirmar antes de excluir um registro no banco de dados com Laravel 11 e React.
Primeiramente, será demonstrado como instalar o SweetAlert2 no Laravel.
Em seguida, será explicado como exibir o SweetAlert2 para que o usuário confirme a exclusão do registro no banco de dados.
Por fim, será mostrado como apresentar a mensagem de sucesso no React usando o SweetAlert2.
Download do código fonte desenvolvido na aula: Download
PlayList sobre Laravel 11 + Breeze + React 11: Acessar
Receber as aulas gratuitas do curso de Laravel: Acessar
Para começar, é utilizado como base o projeto da aula "Como apagar registro do banco de dados com Laravel 11 e React".
O SweetAlert2 foi instalado para exibir a mensagem de confirmação.
npm install sweetalert2
Criado o componente "resources/js/Components/Delete/ConfirmDeleteButton.jsx", que exibe a mensagem de confirmação utilizando SweetAlert2.
import { useForm } from "@inertiajs/react";
import React from "react";
import DangerButton from "../Button/DangerButton";
import Swal from "sweetalert2";
function ConfirmDeleteButton({ id, routeName }) {
const { delete: destroy } = useForm();
const handleDelete = () => {
Swal.fire({
title: "Tem certeza?",
text: "Você não poderá reverter esta ação!",
icon: "warning",
showCancelButton: true,
confirmButtonColor: "#ef4444",
cancelButtonColor: "#3b82f6",
confirmButtonText: "Sim, excluir!",
cancelButtonText: "Cancelar"
}).then((result) => {
if (result.isConfirmed) {
destroy(route(routeName, id), {
onSuccess: () => {
Swal.fire({
title: "Excluído!",
text: "O registro foi excluído com sucesso!",
icon: "success"
});
},
onError: () => {
Swal.fire({
title: "Erro!",
text: "Ocorreu um erro ao tentar excluir o registro",
icon: "error"
});
}
});
}
});
}
return (
<DangerButton className="ms-1 text-sm" onClick={handleDelete}>
Apagar
</DangerButton>
);
}
export default ConfirmDeleteButton;
O componente criado acima é utilizado na página que contém a funcionalidade de listagem de registros: "resources/js/Pages/Users/UserIndex.js".
<ConfirmDeleteButton id={user.id} routeName="users.destroy" />
Baixar o código-fonte completo do projeto.
Bom, era isso. Espero que o tutorial tenha sido útil!