Skip to content

Commit

Permalink
refactor: Remove Spacer() from BottomBarView (#1515)
Browse files Browse the repository at this point in the history
  • Loading branch information
valentinperignon authored Aug 26, 2024
2 parents 2c322b5 + ddc13b5 commit 4cb6872
Show file tree
Hide file tree
Showing 5 changed files with 71 additions and 75 deletions.
58 changes: 28 additions & 30 deletions Mail/Views/Search/SearchModifiers.swift
Original file line number Diff line number Diff line change
Expand Up @@ -103,41 +103,39 @@ struct SearchToolbar: ViewModifier {
}
}
.bottomBar(isVisible: multipleSelectionViewModel.isEnabled) {
HStack(spacing: 0) {
ForEach(multipleSelectionViewModel.toolbarActions) { action in
ToolbarButton(
text: action.shortTitle ?? action.title,
icon: action.icon
) {
let allMessages = multipleSelectionViewModel.selectedItems.threads.flatMap(\.messages)
multipleSelectionViewModel.disable()
Task {
matomo.trackBulkEvent(
eventWithCategory: .threadActions,
name: action.matomoName.capitalized,
numberOfItems: multipleSelectionViewModel.selectedItems.count
)

try await actionsManager.performAction(
target: allMessages,
action: action,
origin: .multipleSelection(
originFolder: viewModel.frozenSearchFolder,
nearestMessagesToMoveSheet: $messagesToMove
)
ForEach(multipleSelectionViewModel.toolbarActions) { action in
ToolbarButton(
text: action.shortTitle ?? action.title,
icon: action.icon
) {
let allMessages = multipleSelectionViewModel.selectedItems.threads.flatMap(\.messages)
multipleSelectionViewModel.disable()
Task {
matomo.trackBulkEvent(
eventWithCategory: .threadActions,
name: action.matomoName.capitalized,
numberOfItems: multipleSelectionViewModel.selectedItems.count
)

try await actionsManager.performAction(
target: allMessages,
action: action,
origin: .multipleSelection(
originFolder: viewModel.frozenSearchFolder,
nearestMessagesToMoveSheet: $messagesToMove
)
)

viewModel.refreshSearchIfNeeded(action: action)
}
viewModel.refreshSearchIfNeeded(action: action)
}
}
}

ToolbarButton(
text: MailResourcesStrings.Localizable.buttonMore,
icon: MailResourcesAsset.plusActions.swiftUIImage
) {
multipleSelectedMessages = multipleSelectionViewModel.selectedItems.threads.flatMap(\.messages)
}
ToolbarButton(
text: MailResourcesStrings.Localizable.buttonMore,
icon: MailResourcesAsset.plusActions.swiftUIImage
) {
multipleSelectedMessages = multipleSelectionViewModel.selectedItems.threads.flatMap(\.messages)
}
}
.actionsPanel(
Expand Down
68 changes: 33 additions & 35 deletions Mail/Views/Thread List/ThreadListModifiers.swift
Original file line number Diff line number Diff line change
Expand Up @@ -112,46 +112,44 @@ struct ThreadListToolbar: ViewModifier {
}
}
.bottomBar(isVisible: multipleSelectionViewModel.isEnabled) {
HStack(spacing: 0) {
ForEach(multipleSelectionViewModel.toolbarActions) { action in
ToolbarButton(
text: action.shortTitle ?? action.title,
icon: action.icon
) {
let allMessages = multipleSelectionViewModel.selectedItems.threads.flatMap(\.messages)
multipleSelectionViewModel.disable()
let originFolder = viewModel.frozenFolder
Task {
matomo.trackBulkEvent(
eventWithCategory: .threadActions,
name: action.matomoName.capitalized,
numberOfItems: multipleSelectionViewModel.selectedItems.count
)

try await actionsManager.performAction(
target: allMessages,
action: action,
origin: .multipleSelection(
originFolder: originFolder,
nearestFlushAlert: $flushAlert,
nearestMessagesToMoveSheet: $messagesToMove
)
)
}
}
.accessibilityLabel(action.title)
.accessibilityAddTraits(.isButton)
}

ForEach(multipleSelectionViewModel.toolbarActions) { action in
ToolbarButton(
text: MailResourcesStrings.Localizable.buttonMore,
icon: MailResourcesAsset.plusActions.swiftUIImage
text: action.shortTitle ?? action.title,
icon: action.icon
) {
multipleSelectedMessages = multipleSelectionViewModel.selectedItems.threads.flatMap(\.messages)
let allMessages = multipleSelectionViewModel.selectedItems.threads.flatMap(\.messages)
multipleSelectionViewModel.disable()
let originFolder = viewModel.frozenFolder
Task {
matomo.trackBulkEvent(
eventWithCategory: .threadActions,
name: action.matomoName.capitalized,
numberOfItems: multipleSelectionViewModel.selectedItems.count
)

try await actionsManager.performAction(
target: allMessages,
action: action,
origin: .multipleSelection(
originFolder: originFolder,
nearestFlushAlert: $flushAlert,
nearestMessagesToMoveSheet: $messagesToMove
)
)
}
}
.accessibilityLabel(MailResourcesStrings.Localizable.buttonMore)
.accessibilityLabel(action.title)
.accessibilityAddTraits(.isButton)
}

ToolbarButton(
text: MailResourcesStrings.Localizable.buttonMore,
icon: MailResourcesAsset.plusActions.swiftUIImage
) {
multipleSelectedMessages = multipleSelectionViewModel.selectedItems.threads.flatMap(\.messages)
}
.accessibilityLabel(MailResourcesStrings.Localizable.buttonMore)
.accessibilityAddTraits(.isButton)
}
.actionsPanel(
messages: $multipleSelectedMessages,
Expand Down
2 changes: 0 additions & 2 deletions Mail/Views/Thread/ThreadView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -166,13 +166,11 @@ struct ThreadView: View {
.sheetViewStyle()
}
}
Spacer()
}
ActionsPanelButton(messages: thread.messages.toArray(), originFolder: thread.folder, panelSource: .messageList) {
ToolbarButtonLabel(text: MailResourcesStrings.Localizable.buttonMore,
icon: MailResourcesAsset.plusActions.swiftUIImage)
}
.frame(maxWidth: .infinity)
}
.customAlert(item: $nearestFlushAlert) { item in
FlushFolderAlertView(flushAlert: item)
Expand Down
17 changes: 10 additions & 7 deletions MailCoreUI/Components/BottomBarView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -47,23 +47,23 @@ public struct BottomBarView<Items: View>: View {
@State private var hasBottomSafeArea: Bool
@State private var snackBarAwareModifier: SnackBarAwareModifier

@ViewBuilder let items: () -> Items
private let items: Items

public init(
hasBottomSafeArea: Bool = true,
snackBarAwareModifier: SnackBarAwareModifier = SnackBarAwareModifier(inset: 0),
items: @escaping () -> Items
items: () -> Items
) {
self.hasBottomSafeArea = hasBottomSafeArea
self.snackBarAwareModifier = snackBarAwareModifier
self.items = items
self.items = items()
}

public var body: some View {
HStack {
Spacer(minLength: IKPadding.small)
items()
Spacer(minLength: IKPadding.small)
items
.padding(.horizontal, value: .small)
.frame(maxWidth: .infinity)
}
.modifier(snackBarAwareModifier)
.padding(.top, value: .small)
Expand Down Expand Up @@ -91,7 +91,10 @@ public struct BottomBarView<Items: View>: View {
}
.navigationTitle("Title")
.bottomBar {
Text("Coucou")
Text("C1")
Text("C2")
Text("C3")
Text("C4")
}
}
}
1 change: 0 additions & 1 deletion MailCoreUI/Components/ToolbarButton.swift
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ public struct ToolbarButton: View {
Button(action: action) {
ToolbarButtonLabel(text: text, icon: icon)
}
.frame(maxWidth: .infinity)
}
}

Expand Down

0 comments on commit 4cb6872

Please sign in to comment.