Skip to content

Commit 9d407ce

Browse files
committed
Allow MenuItems to have submenus
1 parent bff79d7 commit 9d407ce

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

src/Menu/Items/MenuItem.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
namespace Native\Laravel\Menu\Items;
44

55
use Native\Laravel\Contracts\MenuItem as MenuItemContract;
6+
use Native\Laravel\Facades\Menu as MenuFacade;
7+
use Native\Laravel\Menu\Menu;
68

79
abstract class MenuItem implements MenuItemContract
810
{
@@ -18,6 +20,8 @@ abstract class MenuItem implements MenuItemContract
1820

1921
protected ?string $toolTip = null;
2022

23+
protected ?Menu $submenu = null;
24+
2125
protected bool $isEnabled = true;
2226

2327
protected bool $isVisible = true;
@@ -80,6 +84,13 @@ public function toolTip(string $toolTip): self
8084
return $this;
8185
}
8286

87+
public function submenu(MenuItemContract ...$items): self
88+
{
89+
$this->submenu = MenuFacade::make(...$items);
90+
91+
return $this;
92+
}
93+
8394
public function toArray(): array
8495
{
8596
return array_filter([
@@ -92,6 +103,7 @@ public function toArray(): array
92103
'checked' => $this->isChecked,
93104
'accelerator' => $this->accelerator,
94105
'icon' => $this->icon,
106+
'submenu' => $this->submenu?->toArray(),
95107
], fn ($value) => $value !== null);
96108
}
97109
}

0 commit comments

Comments
 (0)