refactor: implementa novo dispatch de um evento notify para exibição de toasts

This commit is contained in:
lukibeg 2025-11-08 19:55:39 -03:00
parent 6d6749964e
commit 42bb548599
1 changed files with 4 additions and 5 deletions

View File

@ -19,7 +19,7 @@ class CreateUser extends Component
// Nota: Adicionei 'same:password' para garantir que as senhas batem.
protected $rules = [
'name' => 'required|string|max:255',
'email' => 'required|email',
'email' => 'required|email|unique:users,email',
'password' => 'required|string|min:8',
'password_confirm' => 'required|string|same:password', // <-- Regra importante!
'permission_level' => 'required|boolean' // ou 'required|in:0,1'
@ -28,6 +28,7 @@ class CreateUser extends Component
protected $messages = [
'name' => 'Nome precisa ser informado.',
'email' => 'O email precisa ser informado.',
'email.unique' => 'O email informado já foi cadastrado anteriormente.',
'password' => 'A senha precisa ter 8 ou mais caracteres.',
'password_confirm' => 'As senhas não coincidem.',
'permission_level' => 'Defina o nível de autorização do usuário.'
@ -59,7 +60,8 @@ public function createUser(UserService $userService)
$this->dispatch('user-created');
// Envia a mesma mensagem de sucesso do seu controller
session()->flash('message', 'Usuário cadastrado com sucesso!');
$this->dispatch('notify', message: 'Usuário cadastrado com sucesso!');
// (Opcional) Se sua tabela de usuários for outro componente Livewire,
// você pode mandar ela atualizar assim:
@ -70,9 +72,6 @@ public function createUser(UserService $userService)
// 7. O "Erro" (Tradução do Redirect de Erro)
// Em vez de redirecionar, adicionamos o erro ao formulário
// para que o usuário veja na tela, sem refresh.
if ($e->getMessage() == 'O e-mail já está cadastrado.') {
$this->addError('email', $e->getMessage());
}
$this->addError('general', $e->getMessage());
}