MadToast
Factory de toasts: success, danger, warning, info.
Mad\Ui\MadToast é a factory de toasts (notificações transitórias) do MAD — cada
método estático devolve um MadResponse já com a op toast
adicionada, pronto para retornar ou encadear com outras ops.
API
use Mad\Ui\MadToast;
return MadToast::success('Salvo!');
return MadToast::danger('Falha ao salvar.');
return MadToast::warning('Corrija os erros antes de continuar.');
return MadToast::info('Nova versão disponível.');
// Com título
return MadToast::success('Pedido aprovado!', 'Sucesso');
// Posição — 3o parametro (default 'top-right')
return MadToast::danger('Falha ao salvar.', 'Erro', 'top-center');
| Método | Assinatura | Cor |
|---|---|---|
success($message, $title = '', $position = 'top-right') | static MadResponse | Verde |
danger($message, $title = '', $position = 'top-right') | static MadResponse | Vermelho |
warning($message, $title = '', $position = 'top-right') | static MadResponse | Laranja |
info($message, $title = '', $position = 'top-right') | static MadResponse | Azul |
Posições aceitas no terceiro argumento:
| top-left | top-center | top-right (padrão) |
|---|---|---|
| bottom-left | bottom-center | bottom-right |
Encadeamento
// MadToast::*() retorna MadResponse — encadeia com qualquer outra op
return MadToast::success('Salvo!')
->closeDrawer()
->removeRow($id, MinhaListagem::class);
MadToast vs MadResponse->toast()
Ambos geram exatamente a mesma op — MadToast é só açúcar sintático mais
conciso para quando a resposta inteira é só o toast:
// Equivalentes — MadToast é só um atalho mais legível
return MadToast::success('Salvo!');
return (new MadResponse())->toast('Salvo!', 'success');
Combinando com erros de campo
Como o retorno é MadResponse, encadeia normalmente com
fieldError() e qualquer outra op — ver
MadResponse — todas as ops:
// toast + erros de campo, no mesmo MadResponse — fieldError() é da própria
// MadResponse (ver Reactivity > MadResponse — todas as ops)
return MadToast::warning('Corrija os erros antes de continuar.')
->fieldError('nome', 'Nome é obrigatório.')
->fieldError('email', 'E-mail inválido.');
Toast vs modal — quando usar cada um
| Situação | Use |
|---|---|
| Confirmação rápida de sucesso, não bloqueante | MadToast::success() |
| Aviso que não exige reconhecimento do usuário | MadToast::warning() |
| Erro fatal que precisa ser reconhecido (modal) | MadMessage::error() |
| Erro de validação por campo | MadValidationException::asModal() / asInline() |
| Confirmação destrutiva antes de uma ação | MadMessage::confirm(...)->build() (ver MadConfirm) |
Não monte o script() de um toast na mão — use sempre a op nativa.
echo/print direto de uma mensagem de sucesso também não
funciona dentro do ciclo de uma action de MadComponent: a resposta
esperada é JSON serializado pelo handler, não saída direta.