samuelpereiramachado/tall-sweetalert

SweetAlert2 auto-injected for Laravel TALL Stack. Zero configuration.

Maintainers

Package info

github.com/samuelinux/tall-sweetalert

pkg:composer/samuelpereiramachado/tall-sweetalert

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main 2026-02-10 03:21 UTC

This package is auto-updated.

Last update: 2026-03-10 12:11:42 UTC


README

License: MIT PHP Laravel Livewire

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

  1. Middleware Global: O pacote registra um middleware que intercepta respostas HTML.
  2. Injeção de Script: Ele insere a tag <script src="..."> do SweetAlert2 antes de fechar o </body>.
  3. 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