diff --git a/Mail/Views/Menu Drawer/Folders/UserFoldersListView.swift b/Mail/Views/Menu Drawer/Folders/UserFoldersListView.swift index d238062c3..99fbc0fab 100644 --- a/Mail/Views/Menu Drawer/Folders/UserFoldersListView.swift +++ b/Mail/Views/Menu Drawer/Folders/UserFoldersListView.swift @@ -29,9 +29,9 @@ struct UserFoldersListView: View { var folders: [NestableFolder] @State private var isExpanded = true + @State private var isShowingCreateFolderAlert = false @EnvironmentObject var splitViewManager: SplitViewManager - @EnvironmentObject var globalAlert: GlobalAlert let isCompact: Bool @@ -58,13 +58,16 @@ struct UserFoldersListView: View { Button { matomo.track(eventWithCategory: .createFolder, name: "fromMenuDrawer") - globalAlert.state = .createNewFolder(mode: .create) + isShowingCreateFolderAlert.toggle() } label: { MailResourcesAsset.addCircle.swiftUIImage .resizable() .frame(width: 16, height: 16) } .accessibilityLabel(MailResourcesStrings.Localizable.newFolderDialogTitle) + .customAlert(isPresented: $isShowingCreateFolderAlert) { + CreateFolderView(mode: .create) + } } .padding(.horizontal, UIConstants.menuDrawerHorizontalPadding) .padding(.vertical, UIConstants.menuDrawerVerticalPadding) diff --git a/Mail/Views/SheetView.swift b/Mail/Views/SheetView.swift index 2d93466c5..b45a42a7c 100644 --- a/Mail/Views/SheetView.swift +++ b/Mail/Views/SheetView.swift @@ -42,8 +42,6 @@ struct SheetView: View where Content: View { } .customAlert(isPresented: $alert.isShowing) { switch alert.state { - case let .createNewFolder(mode): - CreateFolderView(mode: mode) case let .reportPhishing(message): ReportPhishingView(message: message) case let .reportDisplayProblem(message): diff --git a/Mail/Views/SplitView.swift b/Mail/Views/SplitView.swift index 255fa594d..70fa00756 100644 --- a/Mail/Views/SplitView.swift +++ b/Mail/Views/SplitView.swift @@ -34,7 +34,6 @@ class GlobalBottomSheet: DisplayedFloatingPanelState { class GlobalAlert: SheetState { enum State { - case createNewFolder(mode: CreateFolderView.Mode) case reportPhishing(message: Message) case reportDisplayProblem(message: Message) } @@ -150,8 +149,6 @@ struct SplitView: View { } .customAlert(isPresented: $alert.isShowing) { switch alert.state { - case .createNewFolder(let mode): - CreateFolderView(mode: mode) case .reportPhishing(let message): ReportPhishingView(message: message) case .reportDisplayProblem(let message): diff --git a/Mail/Views/Thread/MoveEmailView.swift b/Mail/Views/Thread/MoveEmailView.swift index db2a0a221..f2384bd2b 100644 --- a/Mail/Views/Thread/MoveEmailView.swift +++ b/Mail/Views/Thread/MoveEmailView.swift @@ -27,11 +27,11 @@ import SwiftUI struct MoveEmailView: View { typealias MoveHandler = (Folder) -> Void - @EnvironmentObject private var alert: GlobalAlert @EnvironmentObject private var mailboxManager: MailboxManager // swiftlint:disable empty_count @ObservedResults(Folder.self, where: { $0.role != .draft && $0.parents.count == 0 && $0.toolType == nil }) var folders + @State private var isShowingCreateFolderAlert = false @LazyInjectService private var matomo: MatomoUtils @@ -54,7 +54,7 @@ struct MoveEmailView: View { ToolbarItem(placement: .navigationBarTrailing) { Button { matomo.track(eventWithCategory: .createFolder, name: "fromMove") - alert.state = .createNewFolder(mode: .move(moveHandler: moveHandler)) + isShowingCreateFolderAlert.toggle() } label: { MailResourcesAsset.folderAdd.swiftUIImage } @@ -62,6 +62,9 @@ struct MoveEmailView: View { } .environment(\.folderCellType, .indicator) .matomoView(view: ["MoveEmailView"]) + .customAlert(isPresented: $isShowingCreateFolderAlert) { + CreateFolderView(mode: .move(moveHandler: moveHandler)) + } } private func listOfFolders(nestableFolders: [NestableFolder]) -> some View {