52 lines
1.2 KiB
PHP
52 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Livewire\Pos;
|
|
|
|
use Livewire\Component;
|
|
use Livewire\WithPagination;
|
|
use Modules\Product\Entities\Product;
|
|
|
|
class ProductList extends Component
|
|
{
|
|
use WithPagination;
|
|
|
|
protected $paginationTheme = 'bootstrap';
|
|
|
|
protected $listeners = [
|
|
'selectedCategory' => 'categoryChanged',
|
|
'showCount' => 'showCountChanged'
|
|
];
|
|
|
|
public $categories;
|
|
public $category_id;
|
|
public $limit = 9;
|
|
|
|
public function mount($categories) {
|
|
$this->categories = $categories;
|
|
$this->category_id = '';
|
|
}
|
|
|
|
public function render() {
|
|
return view('livewire.pos.product-list', [
|
|
'products' => Product::when($this->category_id, function ($query) {
|
|
return $query->where('category_id', $this->category_id);
|
|
})
|
|
->paginate($this->limit)
|
|
]);
|
|
}
|
|
|
|
public function categoryChanged($category_id) {
|
|
$this->category_id = $category_id;
|
|
$this->resetPage();
|
|
}
|
|
|
|
public function showCountChanged($value) {
|
|
$this->limit = $value;
|
|
$this->resetPage();
|
|
}
|
|
|
|
public function selectProduct($product) {
|
|
$this->dispatch('productSelected', $product);
|
|
}
|
|
}
|