complexes = GetAvailableComplexes(); $this->setStatus(DealStatus::UNIQUE); $this->updated(); } public function setStatus($status) { if (array_key_exists('status', $this->filter) && $this->filter['status'] === $status) { unset($this->filter['status']); return; } $this->filter['status'] = $status; } public function toggleComplex($complexId) { if (!array_key_exists('complexes', $this->filter)) { $this->filter['complexes'] = []; } $disabled = false; foreach ($this->filter['complexes'] as $selectedKey=>$selectedComplex) { if ($selectedComplex['id'] == $complexId) { unset($this->filter['complexes'][$selectedKey]); $disabled = true; } } if (!$disabled) { foreach ($this->complexes as $complex) { if($complex['id'] == $complexId) { $this->filter['complexes'][] = ['id' => $complexId, 'name' => $complex['name']]; } } } $this->filter['complexes'] = array_values($this->filter['complexes']); if (!count($this->filter['complexes'])) { unset($this->filter['complexes']); } $this->updated(); } public function updated() { $this->dispatch('clientsTableFilterUpdated', filter: $this->filter); } public function render() { return view('main::clients.livewire.search.input', [ 'statuses' => DealStatus::class ]); } }