fixes button state on account help view

This commit is contained in:
Stuart Breckenridge 2020-11-19 12:02:08 +08:00
parent f7574dc633
commit 015ee0a8e0

View File

@ -14,33 +14,24 @@ struct AddAccountHelpView: View {
let accountTypes: [AccountType] = AddAccountSections.allOrdered.sectionContent let accountTypes: [AccountType] = AddAccountSections.allOrdered.sectionContent
var delegate: AccountsPreferencesAddAccountDelegate? var delegate: AccountsPreferencesAddAccountDelegate?
var helpText: String var helpText: String
@State private var hoveringId: String? = nil
@State private var iCloudUnavailableError: Bool = false @State private var iCloudUnavailableError: Bool = false
var body: some View { var body: some View {
VStack { VStack {
HStack { HStack {
ForEach(accountTypes, id: \.self) { account in ForEach(accountTypes, id: \.self) { account in
account.image() Button(action: {
.resizable() if account == .cloudKit && AccountManager.shared.accounts.contains(where: { $0.type == .cloudKit }) {
.frame(width: 20, height: 20, alignment: .center) iCloudUnavailableError = true
.onTapGesture { } else {
if account == .cloudKit && AccountManager.shared.accounts.contains(where: { $0.type == .cloudKit }) { delegate?.presentSheetForAccount(account)
iCloudUnavailableError = true
} else {
delegate?.presentSheetForAccount(account)
}
hoveringId = nil
} }
.onHover(perform: { hovering in }, label: {
if hovering { account.image()
hoveringId = account.localizedAccountName() .resizable()
} else { .frame(width: 20, height: 20, alignment: .center)
hoveringId = nil })
} .buttonStyle(PlainButtonStyle())
})
.scaleEffect(hoveringId == account.localizedAccountName() ? 1.2 : 1)
.shadow(radius: hoveringId == account.localizedAccountName() ? 0.8 : 0)
} }
} }