diff --git a/src/CliMenuBuilder.php b/src/CliMenuBuilder.php index 6a0c09a9..bf578997 100644 --- a/src/CliMenuBuilder.php +++ b/src/CliMenuBuilder.php @@ -150,12 +150,17 @@ public function addAsciiArt(string $art, string $position = AsciiArtItem::POSITI /** * Add a submenu with a string identifier */ - public function addSubMenu(string $id) : CliMenuBuilder + public function addSubMenu(string $id, CliMenuBuilder $subMenuBuilder = null) : CliMenuBuilder { $this->menuItems[] = $id; - $this->subMenuBuilders[$id] = new static($this); - - return $this->subMenuBuilders[$id]; + if (!empty($subMenuBuilder)) { + $subMenuBuilder->setParent($this); + $this->subMenuBuilders[$id] = $subMenuBuilder; + return $this; + } else { + $this->subMenuBuilders[$id] = new static($this); + return $this->subMenuBuilders[$id]; + } } /**