Nexus-InglineSystems/app/Livewire/Admin/User/EditUser.php

51 lines
1.3 KiB
PHP

<?php
namespace App\Livewire\Admin\User;
use App\Livewire\Forms\UserForm;
use App\Models\User;
use Livewire\Component;
use Livewire\Attributes\On;
use App\Services\UserService;
class EditUser extends Component
{
public UserService $userService;
public User $user;
public UserForm $userForm;
#[On('update-user')]
public function loadUser($id)
{
try {
$this->user = User::find($id);
if ($this->user) {
$this->userForm->editUser($this->user);
}
} catch (\Exception $e) {
$this->dispatch('notify', message: 'Ocorreu um erro inesperado ao editar o usuário. ' . $e);
}
}
public function editUser(UserService $userService)
{
$data = $this->userForm->validate();
try {
if (!$userService->updateUser($this->user, $data)) {
throw new \Exception('O serviço não confirmou a atualização.');
}
$this->dispatch('user-updated');
$this->dispatch('notify', message: $this->userForm->name . ' atualizado com sucesso!');
} catch (\Exception $e) {
$this->dispatch('notify', message: 'Falha na edição: ' . $e->getMessage(), type: 'error');
}
}
public function render()
{
return view('livewire.admin.users.edit-user');
}
}