samuelpereiramachado/tall-sweetalert
| Install | |
|---|---|
composer require samuelpereiramachado/tall-sweetalert |
|
| PHP: | ^8.1 |
| License: | MIT |
| Last Updated: | Feb 10, 2026 |
| Links: | GitHub · Packagist |
Tall Sweetalert for Laravel
Pacote Laravel que injeta automaticamente SweetAlert2 em toda resposta HTML. Instale com um comando. Sem configuração. Sem build tools. Funciona na hora.
🎯 Diferenciais
Este pacote é flexível e se adapta ao seu estilo de projeto:
⚡ Com Livewire (Experiência Completa)
- Macros Nativas: Use
$this->alert()e$this->confirm()direto do seu componente PHP. - Callbacks Automáticos: Confirmações chamam métodos do backend automaticamente.
- Integração Profunda: Sincronizado com o ciclo de vida do Livewire.
🌐 Sem Livewire (Laravel Puro)
- Zero Configuração: O SweetAlert2 é injetado e fica disponível globalmente (
window.Swal). - Assets Otimizados: Javascript servido com cache de 1 ano (
immutable). - Fácil Integração: Perfeito para usar com Flash Messages e Controllers padrão.
🚀 Instalação
composer require samuelpereiramachado/tall-sweetalert
É só isso. Não precisa publicar configs, rodar migrations, nem editar nenhum arquivo.
🔧 Uso com Livewire (Recomendado)
Se você tem o Livewire instalado, aproveite as macros para interagir com o usuário diretamente do seu backend PHP.
1. Disparar Alertas
// Sucesso
$this->alert('Salvo!', 'Registro criado com sucesso.', 'success');
// Erro
$this->alert('Erro!', 'Não foi possível salvar.', 'error');
// Aviso com timer
$this->alert('Aviso', 'Sessão expira em breve.', 'warning', [
'timer' => 3000,
'showConfirmButton' => false,
]);
2. Confirmação com Callback
O método $this->confirm() exibe uma pergunta e, se aceita, chama um método do seu componente automaticamente.
// No seu método de ação (ex: clique no botão excluir)
public function confirmarExclusao($id)
{
$this->confirm(
'Excluir usuário?',
['method' => 'excluir', 'params' => $id], // Método a ser chamado se confirmado
'Esta ação não pode ser desfeita.',
'warning'
);
}
// Método que será executado APENAS se o usuário confirmar
public function excluir($id)
{
User::findOrFail($id)->delete();
$this->alert('Excluído!', 'Usuário removido.', 'success');
}
🌐 Uso sem Livewire (Laravel Puro)
Se você não usa Livewire, o pacote ainda injeta o SweetAlert2 em todas as suas páginas.
1. Alertar via Controller (Flash Message)
Você pode usar a sessão do Laravel para enviar mensagens e exibi-las com um pequeno snippet no seu layout Blade:
No Controller:
public function store()
{
// ... lógica de salvar ...
return redirect()->route('home')->with('success', 'Registro criado com sucesso!');
}
No seu Layout Blade (ex: app.blade.php):
@if (session('success'))
<script>
document.addEventListener("DOMContentLoaded", function () {
Swal.fire("Sucesso!", "{{ session('success') }}", "success");
});
</script>
@endif
2. Uso direto no Javascript
Você pode usar a biblioteca globalmente Swal em qualquer lugar:
<script>
document.getElementById("meu-botao").addEventListener("click", () => {
Swal.fire("Olá!", "SweetAlert2 funcionando!", "info");
});
</script>
Nota: As macros $this->alert() e $this->confirm() são exclusivas do Livewire.
⚙️ Como funciona
- Middleware Global: O pacote registra um middleware que intercepta respostas HTML.
- Injeção de Script: Ele insere a tag
<script src="...">do SweetAlert2 antes de fechar o</body>. - Cache Inteligente: O arquivo JS é servido por uma rota interna com headers de cache agressivos (1 ano), garantindo performance máxima após o primeiro carregamento.
📋 Requisitos
| Dependência | Versão |
|---|---|
| PHP | >= 8.1 |
| Laravel | 10, 11 ou 12 |
| Livewire | (Opcional) |
📄 Licença
MIT — veja LICENSE para detalhes.
Autor: Samuel Pereira Machado