Skip to content

Commit fa6d33e

Browse files
[PM-10010] Move close/cancel buttons to upper-left (#758)
1 parent 5cddf01 commit fa6d33e

File tree

119 files changed

+106
-63
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+106
-63
lines changed

BitwardenShared/UI/Auth/Login/TwoFactorAuth/TwoFactorAuthView.swift

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,15 @@ struct TwoFactorAuthView: View {
4242
await store.perform(.listenForNFC)
4343
}
4444
.toolbar {
45-
ToolbarItemGroup(placement: .navigationBarTrailing) {
46-
authMethodsMenu
47-
45+
ToolbarItem(placement: .navigationBarLeading) {
4846
cancelToolbarButton {
4947
store.send(.dismiss)
5048
}
5149
}
50+
51+
ToolbarItem(placement: .navigationBarTrailing) {
52+
authMethodsMenu
53+
}
5254
}
5355
}
5456

BitwardenShared/UI/Auth/SetMasterPassword/SetMasterPasswordView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ struct SetMasterPasswordView: View {
8181
.navigationTitle(Localizations.setMasterPassword)
8282
.navigationBarTitleDisplayMode(.inline)
8383
.toolbar {
84-
ToolbarItem(placement: .topBarTrailing) {
84+
ToolbarItem(placement: .topBarLeading) {
8585
if !store.state.isPrivilegeElevation {
8686
cancelToolbarButton {
8787
Task {

BitwardenShared/UI/Platform/Application/Extensions/View+Toolbar.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ extension View {
125125
/// - Returns: A `ToolbarItem` with a dismiss button.
126126
///
127127
func cancelToolbarItem(_ action: @escaping () -> Void) -> some ToolbarContent {
128-
ToolbarItem(placement: .topBarTrailing) {
128+
ToolbarItem(placement: .topBarLeading) {
129129
cancelToolbarButton(action: action)
130130
}
131131
}

BitwardenShared/UI/Tools/Generator/Generator/GeneratorView.swift

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,19 +48,21 @@ struct GeneratorView: View {
4848
send: GeneratorAction.toastShown
4949
))
5050
.toolbar {
51-
ToolbarItemGroup(placement: .topBarTrailing) {
52-
optionsToolbarMenu {
53-
Button(Localizations.passwordHistory) {
54-
store.send(.showPasswordHistory)
55-
}
56-
}
57-
51+
ToolbarItem(placement: .topBarLeading) {
5852
if store.state.presentationMode.isDismissButtonVisible {
5953
cancelToolbarButton {
6054
store.send(.dismissPressed)
6155
}
6256
}
6357
}
58+
59+
ToolbarItem(placement: .topBarTrailing) {
60+
optionsToolbarMenu {
61+
Button(Localizations.passwordHistory) {
62+
store.send(.showPasswordHistory)
63+
}
64+
}
65+
}
6466
}
6567
}
6668

BitwardenShared/UI/Tools/PasswordHistory/PasswordHistoryList/PasswordHistoryListView.swift

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,13 @@ struct PasswordHistoryListView: View {
2828
send: PasswordHistoryListAction.toastShown
2929
))
3030
.toolbar {
31-
ToolbarItemGroup(placement: .navigationBarTrailing) {
31+
ToolbarItem(placement: .navigationBarLeading) {
32+
closeToolbarButton {
33+
store.send(.dismiss)
34+
}
35+
}
36+
37+
ToolbarItem(placement: .navigationBarTrailing) {
3238
if store.state.source == .generator {
3339
optionsToolbarMenu {
3440
AsyncButton(Localizations.clear) {
@@ -37,10 +43,6 @@ struct PasswordHistoryListView: View {
3743
.accessibilityIdentifier("ClearPasswordList")
3844
}
3945
}
40-
41-
closeToolbarButton {
42-
store.send(.dismiss)
43-
}
4446
}
4547
}
4648
.task { await store.perform(.appeared) }

BitwardenShared/UI/Tools/Send/SendItem/AddEditSendItem/AddEditSendItemView.swift

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,11 @@ struct AddEditSendItemView: View { // swiftlint:disable:this type_body_length
5757
titleDisplayMode: .inline
5858
)
5959
.toolbar {
60-
ToolbarItem(placement: .topBarLeading) {
60+
ToolbarItemGroup(placement: .topBarLeading) {
61+
cancelToolbarButton {
62+
store.send(.dismissPressed)
63+
}
64+
6165
switch store.state.mode {
6266
case .add,
6367
.edit:
@@ -105,10 +109,6 @@ struct AddEditSendItemView: View { // swiftlint:disable:this type_body_length
105109
.shareExtension:
106110
EmptyView()
107111
}
108-
109-
cancelToolbarButton {
110-
store.send(.dismissPressed)
111-
}
112112
}
113113
}
114114
.toast(store.binding(
@@ -636,4 +636,29 @@ struct AddEditSendItemView: View { // swiftlint:disable:this type_body_length
636636
)
637637
}
638638
}
639+
640+
#Preview("Text - Share") {
641+
NavigationView {
642+
AddEditSendItemView(
643+
store: Store(
644+
processor: StateProcessor(
645+
state: AddEditSendItemState(
646+
currentAccessCount: 42,
647+
customDeletionDate: Date(),
648+
customExpirationDate: nil,
649+
deletionDate: .custom,
650+
expirationDate: .custom,
651+
isHideTextByDefaultOn: true,
652+
isOptionsExpanded: true,
653+
mode: .shareExtension(.singleAccount),
654+
name: "Sendy",
655+
text: "Example text",
656+
type: .text
657+
)
658+
)
659+
)
660+
)
661+
}
662+
}
663+
639664
#endif // swiftlint:disable:this file_length

BitwardenShared/UI/Tools/Send/SendItem/AddEditSendItem/AddEditSendItemViewTests.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,4 +294,13 @@ class AddEditSendItemViewTests: BitwardenTestCase {
294294
processor.state.isDeactivateThisSendOn = true
295295
assertSnapshot(of: subject, as: .tallPortrait)
296296
}
297+
298+
func test_snapshot_text_extension_withValues() {
299+
processor.state.mode = .shareExtension(.singleAccount)
300+
processor.state.type = .text
301+
processor.state.name = "Name"
302+
processor.state.text = "Text"
303+
processor.state.isHideTextByDefaultOn = true
304+
assertSnapshot(of: subject.navStackWrapped, as: .defaultPortrait)
305+
}
297306
}

BitwardenShared/UI/Vault/Vault/AutofillList/VaultAutofillListView.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ struct VaultAutofillListView: View {
2929
prompt: Localizations.search
3030
)
3131
.toolbar {
32+
cancelToolbarItem {
33+
store.send(.cancelTapped)
34+
}
35+
3236
ToolbarItem(placement: .navigationBarLeading) {
3337
ProfileSwitcherToolbarView(
3438
store: store.child(
@@ -42,10 +46,6 @@ struct VaultAutofillListView: View {
4246
addToolbarItem(hidden: store.state.isAutofillingFido2List) {
4347
store.send(.addTapped(fromToolbar: true))
4448
}
45-
46-
cancelToolbarItem {
47-
store.send(.cancelTapped)
48-
}
4949
}
5050
}
5151

BitwardenShared/UI/Vault/Vault/VaultItemSelection/VaultItemSelectionView.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ struct VaultItemSelectionView: View {
3232
prompt: Localizations.search
3333
)
3434
.toolbar {
35+
cancelToolbarItem {
36+
store.send(.cancelTapped)
37+
}
38+
3539
ToolbarItem(placement: .navigationBarLeading) {
3640
ProfileSwitcherToolbarView(
3741
store: store.child(
@@ -45,10 +49,6 @@ struct VaultItemSelectionView: View {
4549
addToolbarItem {
4650
store.send(.addTapped)
4751
}
48-
49-
cancelToolbarItem {
50-
store.send(.cancelTapped)
51-
}
5252
}
5353
}
5454

BitwardenShared/UI/Vault/VaultItem/AddEditItem/AddEditItemView.swift

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,13 @@ struct AddEditItemView: View {
105105
content
106106
.navigationTitle(Localizations.editItem)
107107
.toolbar {
108-
ToolbarItemGroup(placement: .navigationBarTrailing) {
108+
ToolbarItem(placement: .navigationBarLeading) {
109+
cancelToolbarButton {
110+
store.send(.dismissPressed)
111+
}
112+
}
113+
114+
ToolbarItem(placement: .navigationBarTrailing) {
109115
VaultItemManagementMenuView(
110116
isCloneEnabled: false,
111117
isCollectionsEnabled: store.state.cipher.organizationId != nil,
@@ -116,10 +122,6 @@ struct AddEditItemView: View {
116122
mapEffect: { _ in .deletePressed }
117123
)
118124
)
119-
120-
cancelToolbarButton {
121-
store.send(.dismissPressed)
122-
}
123125
}
124126
}
125127
}

BitwardenShared/UI/Vault/VaultItem/EditCollections/EditCollectionsView.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@ struct EditCollectionsView: View {
1919
.scrollView()
2020
.task { await store.perform(.fetchCipherOptions) }
2121
.toolbar {
22-
ToolbarItem(placement: .topBarLeading) {
22+
cancelToolbarItem {
23+
store.send(.dismissPressed)
24+
}
25+
26+
ToolbarItem(placement: .topBarTrailing) {
2327
toolbarButton(Localizations.save) {
2428
await store.perform(.save)
2529
}
2630
.accessibilityIdentifier("SaveButton")
2731
}
28-
29-
cancelToolbarItem {
30-
store.send(.dismissPressed)
31-
}
3232
}
3333
}
3434

BitwardenShared/UI/Vault/VaultItem/MoveToOrganization/MoveToOrganizationView.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,16 @@ struct MoveToOrganizationView: View {
1919
.scrollView()
2020
.task { await store.perform(.fetchCipherOptions) }
2121
.toolbar {
22-
ToolbarItem(placement: .topBarLeading) {
22+
cancelToolbarItem {
23+
store.send(.dismissPressed)
24+
}
25+
26+
ToolbarItem(placement: .topBarTrailing) {
2327
toolbarButton(Localizations.move) {
2428
await store.perform(.moveCipher)
2529
}
2630
.accessibilityIdentifier("MoveButton")
2731
}
28-
29-
cancelToolbarItem {
30-
store.send(.dismissPressed)
31-
}
3232
}
3333
}
3434

BitwardenShared/UI/Vault/VaultItem/ViewItem/ViewItemView.swift

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,26 @@ struct ViewItemView: View {
4646
send: ViewItemAction.toastShown
4747
))
4848
.toolbar {
49+
ToolbarItem(placement: .navigationBarLeading) {
50+
closeToolbarButton {
51+
store.send(.dismissPressed)
52+
}
53+
}
54+
4955
ToolbarItemGroup(placement: .navigationBarTrailing) {
56+
if let state = store.state.loadingState.data {
57+
if state.isSoftDeleted {
58+
toolbarButton(Localizations.restore) {
59+
await store.perform(.restorePressed)
60+
}
61+
.accessibilityIdentifier("RestoreButton")
62+
} else {
63+
editToolbarButton {
64+
store.send(.editPressed)
65+
}
66+
}
67+
}
68+
5069
VaultItemManagementMenuView(
5170
isCloneEnabled: store.state.canClone,
5271
isCollectionsEnabled: isCollectionsEnabled,
@@ -57,10 +76,6 @@ struct ViewItemView: View {
5776
mapEffect: { _ in .deletePressed }
5877
)
5978
)
60-
61-
closeToolbarButton {
62-
store.send(.dismissPressed)
63-
}
6479
}
6580
}
6681
.task {
@@ -93,20 +108,6 @@ struct ViewItemView: View {
93108
}
94109
.padding(16)
95110
}
96-
.toolbar {
97-
ToolbarItem(placement: .navigationBarLeading) {
98-
if state.isSoftDeleted {
99-
toolbarButton(Localizations.restore) {
100-
await store.perform(.restorePressed)
101-
}
102-
.accessibilityIdentifier("RestoreButton")
103-
} else {
104-
editToolbarButton {
105-
store.send(.editPressed)
106-
}
107-
}
108-
}
109-
}
110111
}
111112
}
112113

0 commit comments

Comments
 (0)