From 84e2fb96b269b692866546c53f798fe9fd018a9c Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Mon, 10 Aug 2026 21:28:32 +0200 Subject: [PATCH 1/2] fix: show subtitles on submenus Co-authored-by: codex --- ios/Shared/RCTMenuItem.swift | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ios/Shared/RCTMenuItem.swift b/ios/Shared/RCTMenuItem.swift index bb6bb2b7..d3334a24 100644 --- a/ios/Shared/RCTMenuItem.swift +++ b/ios/Shared/RCTMenuItem.swift @@ -103,10 +103,15 @@ class RCTMenuAction { subMenuActions.append(subaction.createUIMenuElement(handler)) } var menu: UIMenu; + let menuIdentifier = identifier.map { UIMenu.Identifier(rawValue: $0.rawValue) } if self.displayInline { - menu = UIMenu(title: title, image: image, options: .displayInline, children: subMenuActions) + menu = UIMenu(title: title, image: image, identifier: menuIdentifier, options: .displayInline, children: subMenuActions) } else { - menu = UIMenu(title: title, image: image, children: subMenuActions) + menu = UIMenu(title: title, image: image, identifier: menuIdentifier, children: subMenuActions) + } + + if #available(iOS 15.0, *) { + menu.subtitle = subtitle } if #available(iOS 16.0, *) { From d1fb163306e4baf43e31debe66eb4d6ff62b403a Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Mon, 10 Aug 2026 22:01:53 +0200 Subject: [PATCH 2/2] fix: keep inline menu sections stock Co-authored-by: codex --- ios/Shared/RCTMenuItem.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ios/Shared/RCTMenuItem.swift b/ios/Shared/RCTMenuItem.swift index d3334a24..2658a486 100644 --- a/ios/Shared/RCTMenuItem.swift +++ b/ios/Shared/RCTMenuItem.swift @@ -103,9 +103,13 @@ class RCTMenuAction { subMenuActions.append(subaction.createUIMenuElement(handler)) } var menu: UIMenu; + // Stable identifiers let updateVisibleMenu match submenu nodes in + // place, so a refresh while the menu is presented keeps the user's + // current submenu level instead of popping back to the root. + // Inline sections don't navigate, so they stay stock. let menuIdentifier = identifier.map { UIMenu.Identifier(rawValue: $0.rawValue) } if self.displayInline { - menu = UIMenu(title: title, image: image, identifier: menuIdentifier, options: .displayInline, children: subMenuActions) + menu = UIMenu(title: title, image: image, options: .displayInline, children: subMenuActions) } else { menu = UIMenu(title: title, image: image, identifier: menuIdentifier, children: subMenuActions) }