form->reset(); // Limpa o formulário de dados antigos $this->showModal = true; } /** * Fecha e limpa o modal. */ public function closeModal() { $this->showModal = false; $this->form->reset(); } /** * Método principal chamado pelo wire:submit="save". */ public function save() { // 3. Valida os dados usando as 'rules' do ClientForm.php $this->form->validate(); // 4. Pega todos os dados validados $data = $this->form->all(); // 5. Lida com o upload do arquivo de imagem if ($this->form->profile_image_path) { $path = $this->form->profile_image_path->store('client_logos', 'public'); $data['profile_image_path'] = $path; } // 6. Cria o cliente no banco de dados Client::create($data); // 7. Fecha o modal $this->closeModal(); // 8. Despacha um evento para atualizar outros componentes (ex: o grid de clientes) $this->dispatch('clientAdded'); // (Opcional) Envia uma notificação de sucesso // $this->dispatch('notify', 'Cliente adicionado com sucesso!'); } /** * Renderiza a view do modal. */ public function render() { return view('livewire.admin.add-client'); } }