'required|string|max:255', ]; public function render(): View { $users = User::where('planner_id', auth()->id()) ->orderBy('name') ->paginate(10); return view('livewire.users.users-list', [ 'users' => $users ]); } public function create(): void { $this->reset(['name']); $this->resetValidation(); $this->showCreateModal = true; } public function store(): void { $this->validate(); User::create([ 'name' => $this->name, 'planner_id' => auth()->id(), ]); $this->showCreateModal = false; $this->reset(['name']); session()->flash('success', 'User created successfully.'); } public function edit(User $user): void { $this->editingUser = $user; $this->name = $user->name; $this->resetValidation(); $this->showEditModal = true; } public function update(): void { $this->validate(); try { (new EditUserAction())->execute($this->editingUser, ['name' => $this->name]); $this->showEditModal = false; $this->reset(['name', 'editingUser']); session()->flash('success', 'User updated successfully.'); // Force component to re-render with fresh data $this->resetPage(); } catch (Exception $e) { session()->flash('error', 'Failed to update user: ' . $e->getMessage()); } } public function confirmDelete(User $user): void { $this->deletingUser = $user; $this->showDeleteModal = true; } public function delete(): void { $this->deletingUser->delete(); $this->showDeleteModal = false; $this->deletingUser = null; session()->flash('success', 'User deleted successfully.'); } public function cancel(): void { $this->showCreateModal = false; $this->showEditModal = false; $this->showDeleteModal = false; $this->reset(['name', 'editingUser', 'deletingUser']); } }