refactor(brand): menambahkan return type

This commit is contained in:
Yoga Pangestu 2025-12-10 14:19:11 +07:00
parent ba27aa4048
commit 0c7ab27a78
3 changed files with 29 additions and 27 deletions

View File

@ -87,7 +87,6 @@ public function columns(): array
if (auth()->user()->can('delete brand')) { if (auth()->user()->can('delete brand')) {
$actions .= view('components.actions.table.delete', [ $actions .= view('components.actions.table.delete', [
'id' => $row->hash, 'id' => $row->hash,
'deleteRoute' => route('studio.catalog.brand.delete', $row->hash),
])->render(); ])->render();
} }

View File

@ -22,7 +22,7 @@ public function rules(): array
{ {
return [ return [
'name' => ['required', 'max:20', Rule::unique('brands', 'name')->whereNull('deleted_at')->ignore($this->brand)], 'name' => ['required', 'max:20', Rule::unique('brands', 'name')->whereNull('deleted_at')->ignore($this->brand)],
'image' => ['nullable', 'array'], 'image' => 'array',
]; ];
} }
@ -34,7 +34,7 @@ public function validationAttributes(): array
]; ];
} }
public function setBrand(Brand $brand) public function setBrand(Brand $brand): void
{ {
$this->brand = $brand; $this->brand = $brand;
@ -43,7 +43,7 @@ public function setBrand(Brand $brand)
$this->image = $this->mapMediaCollection($brand->getMedia('image')); $this->image = $this->mapMediaCollection($brand->getMedia('image'));
} }
public function store() public function store(): void
{ {
$this->validate(); $this->validate();
@ -57,7 +57,7 @@ public function store()
}); });
} }
public function update() public function update(): void
{ {
$this->validate(); $this->validate();
@ -71,7 +71,7 @@ public function update()
}); });
} }
public function delete() public function delete(): void
{ {
$this->brand->delete(); $this->brand->delete();
@ -83,7 +83,7 @@ public function delete()
}); });
} }
public function sortOrder(string $direction) public function sortOrder(string $direction): void
{ {
if (in_array($direction, ['up', 'down'])) { if (in_array($direction, ['up', 'down'])) {
$swap = null; $swap = null;
@ -112,7 +112,7 @@ public function sortOrder(string $direction)
} }
} }
protected function normalizeSortOrder() protected function normalizeSortOrder(): void
{ {
$categories = Brand::orderBy('sort_order')->get(); $categories = Brand::orderBy('sort_order')->get();
foreach ($categories as $index => $brand) { foreach ($categories as $index => $brand) {

View File

@ -11,6 +11,7 @@
use App\Traits\WithToast; use App\Traits\WithToast;
use App\Traits\WithUpdatedData; use App\Traits\WithUpdatedData;
use Flux\Flux; use Flux\Flux;
use Illuminate\Contracts\View\View;
use Livewire\Attributes\On; use Livewire\Attributes\On;
use Livewire\Attributes\Title; use Livewire\Attributes\Title;
use Livewire\Component; use Livewire\Component;
@ -26,21 +27,7 @@ class Brand extends Component
public string $modalTitle = ''; public string $modalTitle = '';
#[On('modal:open')] public function create(): void
public function openModal(string $method, string $modalTitle, ?string $id = null)
{
$this->resetValidation();
$this->resetErrorBag();
$this->method = $method;
$this->modalTitle = $modalTitle;
if ($id) {
$this->form->setBrand(BrandModel::byHashOrFail($id));
}
}
public function create()
{ {
$this->canOrAbort('create brand'); $this->canOrAbort('create brand');
@ -53,7 +40,7 @@ public function create()
Flux::modals()->close(); Flux::modals()->close();
} }
public function update() public function update(): void
{ {
$this->canOrAbort('update brand'); $this->canOrAbort('update brand');
@ -66,8 +53,10 @@ public function update()
Flux::modals()->close(); Flux::modals()->close();
} }
public function delete(BrandModel $brand) public function delete(BrandModel $brand): void
{ {
$this->canOrAbort('delete brand');
$this->form->brand = $brand; $this->form->brand = $brand;
$this->form->delete(); $this->form->delete();
@ -80,7 +69,7 @@ public function delete(BrandModel $brand)
} }
#[On('fn:sortOrder')] #[On('fn:sortOrder')]
public function sortOrder(BrandModel $brand, string $direction) public function sortOrder(BrandModel $brand, string $direction): void
{ {
$this->canOrAbort('update brand'); $this->canOrAbort('update brand');
@ -91,7 +80,21 @@ public function sortOrder(BrandModel $brand, string $direction)
$this->dispatch('refreshDatatable'); $this->dispatch('refreshDatatable');
} }
public function render() #[On('modal:open')]
public function openModal(string $method, string $modalTitle, ?string $id = null): void
{
$this->resetValidation();
$this->resetErrorBag();
$this->method = $method;
$this->modalTitle = $modalTitle;
if ($id) {
$this->form->setBrand(BrandModel::byHashOrFail($id));
}
}
public function render(): View
{ {
return view('livewire.studio.catalog.brands', [ return view('livewire.studio.catalog.brands', [
'pageTitle' => 'Merek', 'pageTitle' => 'Merek',