diff --git a/src/Contracts/MenuPanel.php b/src/Contracts/MenuPanel.php index 4f0f42e..862584d 100644 --- a/src/Contracts/MenuPanel.php +++ b/src/Contracts/MenuPanel.php @@ -13,4 +13,16 @@ public function getName(): string; public function getItems(): array; public function getSort(): int; + + public function getDescription(): ?string; + + public function getIcon(): ?string; + + public function isCollapsible(): bool; + + public function isCollapsed(): bool; + + public function isPaginated(): bool; + + public function getPerPage(): int; } diff --git a/src/Livewire/MenuPanel.php b/src/Livewire/MenuPanel.php index b82f53d..7c0f990 100644 --- a/src/Livewire/MenuPanel.php +++ b/src/Livewire/MenuPanel.php @@ -77,7 +77,7 @@ public function add(): void $order = $this->menu->menuItems->max('order') ?? 0; $selectedItems = collect($this->items) - ->filter(fn ($item) => in_array($item['title'], $this->data)) + ->filter(fn ($item) => in_array($item['linkable_id'] ?? $item['title'], $this->data)) ->map(function ($item) use (&$order) { return [ ...$item, @@ -102,7 +102,7 @@ public function add(): void public function form(Form $form): Form { - $items = collect($this->getItems())->mapWithKeys(fn ($item) => [$item['title'] => $item['title']]); + $items = collect($this->getItems())->mapWithKeys(fn ($item) => [$item['linkable_id'] ?? $item['title'] => $item['title']]); return $form ->schema([