diff --git a/app/Livewire/Studio/Master/User/Index.php b/app/Livewire/Studio/Master/User/Index.php index b2c63a6..00ab40a 100644 --- a/app/Livewire/Studio/Master/User/Index.php +++ b/app/Livewire/Studio/Master/User/Index.php @@ -2,7 +2,6 @@ namespace App\Livewire\Studio\Master\User; -use App\Enums\UserStatus; use App\Models\Employee; use App\Models\User; use App\Traits\WithConfirmation; @@ -18,18 +17,24 @@ class Index extends Component public array $employees = []; + public string $search = ''; + public array $status = []; public function mount() { $this->loadEmployees(); - - $this->status = UserStatus::cases(); } protected function loadEmployees() { $this->employees = Employee::with(['user', 'user.referralCode', 'user.outlets']) + ->when(! empty($this->search), function ($query) { + return $query->where('full_name', 'like', '%'.$this->search.'%') + ->orWhere('code', 'like', '%'.$this->search.'%') + ->orWhereHas('user', fn ($q) => $q->where('email', 'like', '%'.$this->search.'%')) + ->orWhereHas('user', fn ($q) => $q->where('username', 'like', '%'.$this->search.'%')); + }) ->when(! empty($this->status), fn ($query) => $query->whereHas('user', fn ($q) => $q->whereIn('status', $this->status))) ->latest() ->get() @@ -64,14 +69,15 @@ protected function loadEmployees() ->toArray(); } + public function updatedSearch(string $value) + { + $this->search = $value; + + $this->loadEmployees(); + } + public function updatedStatus() { - if (empty($this->status)) { - $this->employees = []; - - return; - } - $this->loadEmployees(); } diff --git a/resources/views/livewire/studio/master/user/index.blade.php b/resources/views/livewire/studio/master/user/index.blade.php index e8a8227..d491e6e 100644 --- a/resources/views/livewire/studio/master/user/index.blade.php +++ b/resources/views/livewire/studio/master/user/index.blade.php @@ -16,16 +16,8 @@ class="text-sm">
-
- Status: - @foreach (\App\Enums\UserStatus::cases() as $status) -
- - {{ $status->label() }} - -
- @endforeach -
+