AddAccount sheets done

This commit is contained in:
Stuart Breckenridge
2022-12-18 15:51:42 +08:00
parent 8108f1ab0f
commit 4ed11c0fc6
26 changed files with 536 additions and 1741 deletions

View File

@@ -0,0 +1,61 @@
//
// AccountSectionHeader.swift
// NetNewsWire-iOS
//
// Created by Stuart Breckenridge on 18/12/2022.
// Copyright © 2022 Ranchero Software. All rights reserved.
//
import SwiftUI
import Account
struct AccountSectionHeader: View {
var accountType: AccountType
var body: some View {
Section(header: headerImage) {}
}
var headerImage: some View {
HStack {
Spacer()
Image(uiImage: imageToUse())
.resizable()
.aspectRatio(contentMode: .fit)
.frame(width: 48, height: 48)
Spacer()
}
}
private func imageToUse() -> UIImage {
switch accountType {
case .onMyMac:
if UIDevice.current.userInterfaceIdiom == .pad { return AppAssets.accountLocalPadImage }
return AppAssets.accountLocalPhoneImage
case .cloudKit:
return AppAssets.accountCloudKitImage
case .feedly:
return AppAssets.accountFeedlyImage
case .feedbin:
return AppAssets.accountFeedbinImage
case .newsBlur:
return AppAssets.accountNewsBlurImage
case .freshRSS:
return AppAssets.accountFreshRSSImage
case .inoreader:
return AppAssets.accountInoreaderImage
case .bazQux:
return AppAssets.accountBazQuxImage
case .theOldReader:
return AppAssets.accountTheOldReaderImage
}
}
}
struct AccountHeader_Previews: PreviewProvider {
static var previews: some View {
AccountSectionHeader(accountType: .onMyMac)
}
}

View File

@@ -0,0 +1,28 @@
//
// View+DismissOnAccountAdd.swift
// NetNewsWire-iOS
//
// Created by Stuart Breckenridge on 18/12/2022.
// Copyright © 2022 Ranchero Software. All rights reserved.
//
import SwiftUI
struct DismissOnAccountAdd: ViewModifier {
@Environment(\.dismiss) private var dismiss
func body(content: Content) -> some View {
content
.onReceive(NotificationCenter.default.publisher(for: .UserDidAddAccount)) { _ in
dismiss()
}
}
}
extension View {
func dismissOnAccountAdd() -> some View {
modifier(DismissOnAccountAdd())
}
}

View File

@@ -0,0 +1,29 @@
//
// View+DismissOnExternalContext.swift
// NetNewsWire-iOS
//
// Created by Stuart Breckenridge on 18/12/2022.
// Copyright © 2022 Ranchero Software. All rights reserved.
//
import SwiftUI
struct DismissOnExternalContext: ViewModifier {
@Environment(\.dismiss) private var dismiss
func body(content: Content) -> some View {
content
.onReceive(NotificationCenter.default.publisher(for: .LaunchedFromExternalAction)) { _ in
dismiss()
}
}
}
extension View {
func dismissOnExternalContextLaunch() -> some View {
modifier(DismissOnExternalContext())
}
}