{{-- Toast global — Etapa 2A (infraestrutura de UX). Um único listener compartilhado para o evento `notificar`, incluído uma vez em admin-layout/vereador-layout/presidente-layout. Substitui os widgets de toast que antes eram copiados e colados em cada tela Livewire (ver histórico em painel-operador.blade.php, quorum-votacao.blade.php, presidente/painel.blade.php, vereador/painel-votacao.blade.php — a duplicata local foi removida desses 4 arquivos ao incluir este componente no layout). Uso a partir de um componente Livewire (já era o padrão do projeto): $this->dispatch('notificar', tipo: 'sucesso', mensagem: 'Matéria salva.'); Tipos suportados: sucesso, erro, aviso, info. Uso a partir de um controller tradicional (POST/redirect): return redirect()->back()->with('sucesso', 'Cadastro salvo.'); return redirect()->back()->with('erro', 'Não foi possível salvar.'); return redirect()->back()->with('aviso', 'Revise os dados antes de continuar.'); return redirect()->back()->with('info', 'Nenhuma alteração pendente.'); As 4 chaves de sessão são lidas automaticamente no carregamento da página — nada precisa ser passado como prop. --}} @php $flashInicial = []; foreach (['sucesso', 'erro', 'aviso', 'info'] as $tipoFlash) { if (session($tipoFlash)) { $flashInicial[] = ['tipo' => $tipoFlash, 'mensagem' => (string) session($tipoFlash)]; } } @endphp