From c3046ac84e3f8fd1f2ef2eaaf8df152b374bb0a0 Mon Sep 17 00:00:00 2001 From: Kaede Akino Date: Fri, 2 Oct 2026 20:18:39 +0800 Subject: [PATCH] fix(ios): separate terminal upload and AutoFill menus --- TFI/Platform/MobileTerminalSurface.swift | 5 ++++- TFITests/MobileTerminalUploadMenuTests.swift | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/TFI/Platform/MobileTerminalSurface.swift b/TFI/Platform/MobileTerminalSurface.swift index 7ea283bd..4bdedd83 100644 --- a/TFI/Platform/MobileTerminalSurface.swift +++ b/TFI/Platform/MobileTerminalSurface.swift @@ -55,7 +55,10 @@ final class MobileTerminalView: TerminalView { action.title = String(localized: title) editingActions.append(action) } - let trailingItems = uploadMenuItems() + otherItems + let uploadItems = uploadMenuItems() + let uploadGroups: [UIMenuElement] = + uploadItems.isEmpty ? [] : [UIMenu(options: .displayInline, children: uploadItems)] + let trailingItems = uploadGroups + otherItems guard !editingActions.isEmpty else { return trailingItems } let editingMenu = UIMenu(options: .displayInline, children: editingActions) editingMenu.preferredElementSize = .medium diff --git a/TFITests/MobileTerminalUploadMenuTests.swift b/TFITests/MobileTerminalUploadMenuTests.swift index 8d496508..a0829241 100644 --- a/TFITests/MobileTerminalUploadMenuTests.swift +++ b/TFITests/MobileTerminalUploadMenuTests.swift @@ -35,7 +35,9 @@ struct MobileTerminalUploadMenuTests { + ["terminal.selectAll"] #expect(actions.map(\.identifier.rawValue) == expectedIDs) #expect(actions.last?.title == String(localized: AppStrings.Common.selectAll)) - let upload = try #require(items[1] as? UIMenu) + let uploadGroup = try #require(items[1] as? UIMenu) + #expect(uploadGroup.options.contains(.displayInline)) + let upload = try #require(uploadGroup.children.first as? UIMenu) #expect(upload.title == String(localized: AppStrings.Terminal.uploadFile)) let system = try #require(items[2] as? UIMenu) #expect(system.identifier == .autoFill)