Skip to content

Commit

Permalink
Merge pull request #734 from Infomaniak/is-compact
Browse files Browse the repository at this point in the history
refactor: Use isCompactWindow where possible
  • Loading branch information
Ambrdctr authored May 4, 2023
2 parents 977e45c + 9027fa4 commit 203b1b4
Show file tree
Hide file tree
Showing 8 changed files with 51 additions and 83 deletions.
19 changes: 7 additions & 12 deletions Mail/Views/Menu Drawer/Folders/FolderCell.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ struct FolderCell: View {
case link, indicator
}

@Environment(\.folderCellType) var cellType
@Environment(\.folderCellType) private var cellType
@Environment(\.isCompactWindow) private var isCompactWindow

@EnvironmentObject var splitViewManager: SplitViewManager
@EnvironmentObject var navigationDrawerState: NavigationDrawerState
Expand All @@ -48,7 +49,6 @@ struct FolderCell: View {
var level = 0

var currentFolderId: String?
var isCompact = true

var matomoCategory: MatomoUtils.EventCategory?

Expand All @@ -62,13 +62,13 @@ struct FolderCell: View {

var body: some View {
Group {
if cellType == .indicator || isCompact {
if cellType == .indicator || isCompactWindow {
Button(action: didTapButton) {
FolderCellContent(folder: folder.content, level: level, isCurrentFolder: isCurrentFolder)
}
} else {
NavigationLink(isActive: $shouldTransit) {
ThreadListManagerView(isCompact: isCompact)
ThreadListManagerView()
} label: {
Button {
if let matomoCategory {
Expand All @@ -89,7 +89,6 @@ struct FolderCell: View {
folder: child,
level: level + 1,
currentFolderId: currentFolderId,
isCompact: isCompact,
customCompletion: customCompletion
)
}
Expand Down Expand Up @@ -180,12 +179,8 @@ struct FolderCellContent: View {

struct FolderCellView_Previews: PreviewProvider {
static var previews: some View {
FolderCell(
folder: NestableFolder(content: PreviewHelper.sampleFolder, children: []),
currentFolderId: nil,
isCompact: false
)
.environmentObject(PreviewHelper.sampleMailboxManager)
.environmentObject(NavigationDrawerState())
FolderCell(folder: NestableFolder(content: PreviewHelper.sampleFolder, children: []), currentFolderId: nil)
.environmentObject(PreviewHelper.sampleMailboxManager)
.environmentObject(NavigationDrawerState())
}
}
5 changes: 1 addition & 4 deletions Mail/Views/Menu Drawer/Folders/RoleFoldersListView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,13 @@ import SwiftUI
struct RoleFoldersListView: View {
@EnvironmentObject var splitViewManager: SplitViewManager

var folders: [NestableFolder]

var isCompact: Bool
let folders: [NestableFolder]

var body: some View {
VStack(spacing: 0) {
ForEach(folders) { folder in
FolderCell(folder: folder,
currentFolderId: splitViewManager.selectedFolder?.id,
isCompact: isCompact,
matomoCategory: .menuDrawer)
}
}
Expand Down
11 changes: 4 additions & 7 deletions Mail/Views/Menu Drawer/Folders/UserFoldersListView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,14 @@ import SwiftUI
import UIKit

struct UserFoldersListView: View {
var folders: [NestableFolder]

@State private var isExpanded = true
@State private var isShowingCreateFolderAlert = false
@LazyInjectService private var matomo: MatomoUtils

@EnvironmentObject private var splitViewManager: SplitViewManager

let isCompact: Bool
@State private var isExpanded = true
@State private var isShowingCreateFolderAlert = false

@LazyInjectService var matomo: MatomoUtils
let folders: [NestableFolder]

var body: some View {
VStack(spacing: 0) {
Expand Down Expand Up @@ -82,7 +80,6 @@ struct UserFoldersListView: View {
ForEach(folders) { folder in
FolderCell(folder: folder,
currentFolderId: splitViewManager.selectedFolder?.id,
isCompact: isCompact,
matomoCategory: .menuDrawer)
}
}
Expand Down
30 changes: 12 additions & 18 deletions Mail/Views/Menu Drawer/MenuDrawerView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -95,13 +95,10 @@ struct NavigationDrawer: View {

GeometryReader { geometryProxy in
HStack {
MenuDrawerView(
mailboxManager: mailboxManager,
isCompact: true
)
.frame(maxWidth: maxWidth)
.padding(.trailing, spacing)
.offset(x: navigationDrawerState.isOpen ? offsetWidth : -geometryProxy.size.width)
MenuDrawerView(mailboxManager: mailboxManager)
.frame(maxWidth: maxWidth)
.padding(.trailing, spacing)
.offset(x: navigationDrawerState.isOpen ? offsetWidth : -geometryProxy.size.width)
Spacer()
}
}
Expand All @@ -128,20 +125,17 @@ struct NavigationDrawer: View {
}

struct MenuDrawerView: View {
@EnvironmentObject var splitViewManager: SplitViewManager

@StateObject var viewModel: MenuDrawerViewModel

@LazyInjectService private var matomo: MatomoUtils

var mailboxManager: MailboxManager
@EnvironmentObject private var splitViewManager: SplitViewManager

@StateObject private var viewModel: MenuDrawerViewModel

var isCompact: Bool
let mailboxManager: MailboxManager

init(mailboxManager: MailboxManager, isCompact: Bool) {
init(mailboxManager: MailboxManager) {
_viewModel = StateObject(wrappedValue: MenuDrawerViewModel(mailboxManager: mailboxManager))
self.mailboxManager = mailboxManager
self.isCompact = isCompact
}

var body: some View {
Expand All @@ -156,11 +150,11 @@ struct MenuDrawerView: View {

IKDivider(hasVerticalPadding: true, horizontalPadding: UIConstants.menuDrawerHorizontalPadding)

RoleFoldersListView(folders: viewModel.roleFolders, isCompact: isCompact)
RoleFoldersListView(folders: viewModel.roleFolders)

IKDivider(hasVerticalPadding: true, horizontalPadding: UIConstants.menuDrawerHorizontalPadding)

UserFoldersListView(folders: viewModel.userFolders, isCompact: isCompact)
UserFoldersListView(folders: viewModel.userFolders)

IKDivider(hasVerticalPadding: true, horizontalPadding: UIConstants.menuDrawerHorizontalPadding)
}
Expand Down Expand Up @@ -213,7 +207,7 @@ struct AppVersionView: View {

struct MenuDrawerView_Previews: PreviewProvider {
static var previews: some View {
MenuDrawerView(mailboxManager: PreviewHelper.sampleMailboxManager, isCompact: false)
MenuDrawerView(mailboxManager: PreviewHelper.sampleMailboxManager)
.environmentObject(NavigationDrawerState())
}
}
19 changes: 7 additions & 12 deletions Mail/Views/Search/SearchView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,21 +23,17 @@ import RealmSwift
import SwiftUI

struct SearchView: View {
@EnvironmentObject var splitViewManager: SplitViewManager
@Environment(\.isCompactWindow) private var isCompactWindow

@StateObject var viewModel: SearchViewModel
@EnvironmentObject private var splitViewManager: SplitViewManager

@Binding private var editedMessageDraft: Draft?
@StateObject private var viewModel: SearchViewModel

let isCompact: Bool
@Binding private var editedMessageDraft: Draft?

init(mailboxManager: MailboxManager,
folder: Folder,
editedMessageDraft: Binding<Draft?>,
isCompact: Bool) {
init(mailboxManager: MailboxManager, folder: Folder, editedMessageDraft: Binding<Draft?>) {
_editedMessageDraft = editedMessageDraft
_viewModel = StateObject(wrappedValue: SearchViewModel(mailboxManager: mailboxManager, folder: folder))
self.isCompact = isCompact
}

var body: some View {
Expand Down Expand Up @@ -103,7 +99,7 @@ struct SearchView: View {
Constants.globallyResignFirstResponder()
splitViewManager.showSearch = false
} label: {
Image(isCompact ? MailResourcesAsset.arrowLeft.name : MailResourcesAsset.closeBig.name)
Image(isCompactWindow ? MailResourcesAsset.arrowLeft.name : MailResourcesAsset.closeBig.name)
}
.accessibilityLabel(MailResourcesStrings.Localizable.contentDescriptionButtonBack)
}
Expand All @@ -127,7 +123,6 @@ struct SearchView_Previews: PreviewProvider {
static var previews: some View {
SearchView(mailboxManager: PreviewHelper.sampleMailboxManager,
folder: PreviewHelper.sampleFolder,
editedMessageDraft: .constant(nil),
isCompact: true)
editedMessageDraft: .constant(nil))
}
}
11 changes: 4 additions & 7 deletions Mail/Views/SplitView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ struct SplitView: View {
if isCompact {
ZStack {
NBNavigationStack(path: $navigationStore.threadPath) {
ThreadListManagerView(isCompact: isCompact)
ThreadListManagerView()
.accessibilityHidden(navigationDrawerController.isOpen)
.nbNavigationDestination(for: Thread.self) { thread in
ThreadView(thread: thread)
Expand All @@ -76,13 +76,10 @@ struct SplitView: View {
}
} else {
NavigationView {
MenuDrawerView(
mailboxManager: mailboxManager,
isCompact: isCompact
)
.navigationBarHidden(true)
MenuDrawerView(mailboxManager: mailboxManager)
.navigationBarHidden(true)

ThreadListManagerView(isCompact: isCompact)
ThreadListManagerView()

if let thread = navigationStore.threadPath.last {
ThreadView(thread: thread)
Expand Down
22 changes: 9 additions & 13 deletions Mail/Views/Thread List/ThreadListView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,6 @@ struct ThreadListView: View {

@LazyInjectService private var matomo: MatomoUtils

let isCompact: Bool

private var shouldDisplayEmptyView: Bool {
viewModel.folder.lastUpdate != nil && viewModel.sections.isEmpty && !viewModel.isLoadingPage
}
Expand All @@ -78,7 +76,6 @@ struct ThreadListView: View {
isCompact: isCompact))
_multipleSelectionViewModel =
StateObject(wrappedValue: ThreadListMultipleSelectionViewModel(mailboxManager: mailboxManager))
self.isCompact = isCompact

UITableViewCell.appearance().focusEffect = .none
}
Expand Down Expand Up @@ -177,8 +174,7 @@ struct ThreadListView: View {
isRefreshing = false
}
}
.modifier(ThreadListToolbar(isCompact: isCompact,
flushAlert: $flushAlert,
.modifier(ThreadListToolbar(flushAlert: $flushAlert,
viewModel: viewModel,
multipleSelectionViewModel: multipleSelectionViewModel) {
withAnimation(.default.speed(2)) {
Expand Down Expand Up @@ -249,20 +245,20 @@ struct ThreadListView: View {
}

private struct ThreadListToolbar: ViewModifier {
var isCompact: Bool
@LazyInjectService private var matomo: MatomoUtils

@Binding var flushAlert: FlushAlertState?
@Environment(\.isCompactWindow) var isCompactWindow

@ObservedObject var viewModel: ThreadListViewModel
@ObservedObject var multipleSelectionViewModel: ThreadListMultipleSelectionViewModel
@EnvironmentObject private var splitViewManager: SplitViewManager
@EnvironmentObject private var navigationDrawerState: NavigationDrawerState

@State private var isShowingSwitchAccount = false
@State private var multipleSelectionActionsTarget: ActionsTarget?

@EnvironmentObject var splitViewManager: SplitViewManager
@EnvironmentObject var navigationDrawerState: NavigationDrawerState
@Binding var flushAlert: FlushAlertState?

@LazyInjectService private var matomo: MatomoUtils
@ObservedObject var viewModel: ThreadListViewModel
@ObservedObject var multipleSelectionViewModel: ThreadListMultipleSelectionViewModel

var selectAll: () -> Void

Expand All @@ -278,7 +274,7 @@ private struct ThreadListToolbar: ViewModifier {
}
}
} else {
if isCompact {
if isCompactWindow {
Button {
matomo.track(eventWithCategory: .menuDrawer, name: "openByButton")
navigationDrawerState.open()
Expand Down
17 changes: 7 additions & 10 deletions Mail/Views/ThreadListManagerView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,33 +22,32 @@ import MailResources
import SwiftUI

struct ThreadListManagerView: View {
@EnvironmentObject var splitViewManager: SplitViewManager
@EnvironmentObject var mailboxManager: MailboxManager
@Environment(\.isCompactWindow) private var isCompactWindow

@EnvironmentObject private var splitViewManager: SplitViewManager
@EnvironmentObject private var mailboxManager: MailboxManager

@State private var shouldNavigateToNotificationThread = false
@State private var tappedNotificationThread: Thread?
@State private var editedMessageDraft: Draft?
@State private var messageReply: MessageReply?

let isCompact: Bool

var body: some View {
Group {
if let selectedFolder = splitViewManager.selectedFolder {
if splitViewManager.showSearch {
SearchView(
mailboxManager: mailboxManager,
folder: selectedFolder,
editedMessageDraft: $editedMessageDraft,
isCompact: isCompact
editedMessageDraft: $editedMessageDraft
)
} else {
ThreadListView(
mailboxManager: mailboxManager,
folder: selectedFolder,
editedMessageDraft: $editedMessageDraft,
messageReply: $messageReply,
isCompact: isCompact
isCompact: isCompactWindow
)
}
}
Expand All @@ -62,9 +61,7 @@ struct ThreadListManagerView: View {

struct ThreadListManagerView_Previews: PreviewProvider {
static var previews: some View {
ThreadListManagerView(
isCompact: false
)
ThreadListManagerView()
.environmentObject(PreviewHelper.sampleMailboxManager)
}
}

0 comments on commit 203b1b4

Please sign in to comment.