diff --git a/Mail/Views/Menu Drawer/MailboxManagement/MailboxCell.swift b/Mail/Views/Menu Drawer/MailboxManagement/MailboxCell.swift index 43da10ac6..793d3de0f 100644 --- a/Mail/Views/Menu Drawer/MailboxManagement/MailboxCell.swift +++ b/Mail/Views/Menu Drawer/MailboxManagement/MailboxCell.swift @@ -63,9 +63,14 @@ struct MailboxCell: View { icon: MailResourcesAsset.envelope, text: mailbox.email, detailNumber: detailNumber, - isSelected: isSelected + isSelected: isSelected, + isPasswordValid: mailbox.isPasswordValid ) { guard !isSelected else { return } + guard mailbox.isPasswordValid else { + IKSnackBar.showSnackBar(message: MailResourcesStrings.Localizable.frelatedMailbox) + return + } @InjectService var matomo: MatomoUtils switch style { case .menuDrawer: diff --git a/Mail/Views/Menu Drawer/MailboxManagement/MailboxesManagementButtonView.swift b/Mail/Views/Menu Drawer/MailboxManagement/MailboxesManagementButtonView.swift index bd6a07053..b39ba8727 100644 --- a/Mail/Views/Menu Drawer/MailboxManagement/MailboxesManagementButtonView.swift +++ b/Mail/Views/Menu Drawer/MailboxManagement/MailboxesManagementButtonView.swift @@ -29,18 +29,21 @@ struct MailboxesManagementButtonView: View { let detailNumber: Int? let handleAction: () -> Void let isSelected: Bool + let isPasswordValid: Bool init( icon: MailResourcesImages, text: String, detailNumber: Int? = nil, isSelected: Bool, + isPasswordValid: Bool, handleAction: @escaping () -> Void ) { self.icon = icon.swiftUIImage self.text = text self.detailNumber = detailNumber self.isSelected = isSelected + self.isPasswordValid = isPasswordValid self.handleAction = handleAction } @@ -59,17 +62,21 @@ struct MailboxesManagementButtonView: View { } .frame(maxWidth: .infinity, alignment: .leading) - switch style { - case .menuDrawer: - if let detailNumber { - Text(detailNumber < 100 ? "\(detailNumber)" : "99+") - .textStyle(.bodySmallMediumAccent) - } - case .account: - if isSelected { - MailResourcesAsset.check.swiftUIImage - .frame(width: 16, height: 16) - .foregroundColor(.accentColor) + if !isPasswordValid { + MailResourcesAsset.warning.swiftUIImage + } else { + switch style { + case .menuDrawer: + if let detailNumber { + Text(detailNumber < 100 ? "\(detailNumber)" : "99+") + .textStyle(.bodySmallMediumAccent) + } + case .account: + if isSelected { + MailResourcesAsset.check.swiftUIImage + .frame(width: 16, height: 16) + .foregroundColor(.accentColor) + } } } } @@ -80,14 +87,15 @@ struct MailboxesManagementButtonView: View { struct MailboxesManagementButtonView_Previews: PreviewProvider { static var previews: some View { - MailboxesManagementButtonView(icon: MailResourcesAsset.folder, text: "Hello", isSelected: false) { + MailboxesManagementButtonView(icon: MailResourcesAsset.folder, text: "Hello", isSelected: false, isPasswordValid: true) { /* Empty for test */ } MailboxesManagementButtonView( icon: MailResourcesAsset.folder, text: "Hello", detailNumber: 10, - isSelected: false + isSelected: false, + isPasswordValid: true ) { /* Empty for test */ } diff --git a/MailResources/Assets.xcassets/warning.imageset/Contents.json b/MailResources/Assets.xcassets/warning.imageset/Contents.json new file mode 100644 index 000000000..b3f623cd6 --- /dev/null +++ b/MailResources/Assets.xcassets/warning.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "warning.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "original" + } +} diff --git a/MailResources/Assets.xcassets/warning.imageset/warning.svg b/MailResources/Assets.xcassets/warning.imageset/warning.svg new file mode 100644 index 000000000..81309f4b5 --- /dev/null +++ b/MailResources/Assets.xcassets/warning.imageset/warning.svg @@ -0,0 +1,3 @@ + + + diff --git a/MailResources/Localizable/de.lproj/Localizable.strings b/MailResources/Localizable/de.lproj/Localizable.strings index 809a09ac2..ed9474e88 100644 Binary files a/MailResources/Localizable/de.lproj/Localizable.strings and b/MailResources/Localizable/de.lproj/Localizable.strings differ diff --git a/MailResources/Localizable/en.lproj/Localizable.strings b/MailResources/Localizable/en.lproj/Localizable.strings index c997e6a8b..2e65a7a0a 100644 Binary files a/MailResources/Localizable/en.lproj/Localizable.strings and b/MailResources/Localizable/en.lproj/Localizable.strings differ diff --git a/MailResources/Localizable/es.lproj/Localizable.strings b/MailResources/Localizable/es.lproj/Localizable.strings index 5d3e0ce17..daa771ea5 100644 Binary files a/MailResources/Localizable/es.lproj/Localizable.strings and b/MailResources/Localizable/es.lproj/Localizable.strings differ diff --git a/MailResources/Localizable/fr.lproj/Localizable.strings b/MailResources/Localizable/fr.lproj/Localizable.strings index 69dc7d135..8d270f586 100644 Binary files a/MailResources/Localizable/fr.lproj/Localizable.strings and b/MailResources/Localizable/fr.lproj/Localizable.strings differ diff --git a/MailResources/Localizable/it.lproj/Localizable.strings b/MailResources/Localizable/it.lproj/Localizable.strings index c2470d148..54247611b 100644 Binary files a/MailResources/Localizable/it.lproj/Localizable.strings and b/MailResources/Localizable/it.lproj/Localizable.strings differ