Docs›Services›MadToast
Services

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étodoAssinaturaCor
success($message, $title = '', $position = 'top-right')static MadResponseVerde
danger($message, $title = '', $position = 'top-right')static MadResponseVermelho
warning($message, $title = '', $position = 'top-right')static MadResponseLaranja
info($message, $title = '', $position = 'top-right')static MadResponseAzul

Posições aceitas no terceiro argumento:

top-lefttop-centertop-right (padrão)
bottom-leftbottom-centerbottom-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çãoUse
Confirmação rápida de sucesso, não bloqueanteMadToast::success()
Aviso que não exige reconhecimento do usuárioMadToast::warning()
Erro fatal que precisa ser reconhecido (modal)MadMessage::error()
Erro de validação por campoMadValidationException::asModal() / asInline()
Confirmação destrutiva antes de uma açãoMadMessage::confirm(...)->build() (ver MadConfirm)
NUNCA fazer

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.

Próximos passos