Skip to content

Commit 6af2805

Browse files
refactor: change provider name, and add 2 views
1 parent 712f75f commit 6af2805

7 files changed

Lines changed: 55 additions & 10 deletions

File tree

FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/FirebaseAuthSwiftUI/Services/AuthEnvironment.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,13 @@ final class AuthListenerManager {
5252
@MainActor
5353
@Observable
5454
public final class AuthEnvironment {
55-
public let configuation: AuthConfiguration
55+
public let configuration: AuthConfiguration
5656
public let auth: Auth
5757
private var listenerManager: AuthListenerManager?
5858

5959
public init(configuration: AuthConfiguration = AuthConfiguration(), auth: Auth = Auth.auth()) {
6060
self.auth = auth
61-
configuation = configuration
61+
self.configuration = configuration
6262
listenerManager = AuthListenerManager(auth: auth, authEnvironment: self)
6363
}
6464

FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/FirebaseAuthSwiftUI/Services/EmailProvider.swift renamed to FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/FirebaseAuthSwiftUI/Services/EmailPasswordAuthProvider.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import SwiftUI
33

44
@MainActor
5-
public class EmailAuthProvider {
5+
public class EmailPasswordAuthProvider {
66
private let authEnvironment: AuthEnvironment
77

88
public init(authEnvironment: AuthEnvironment) {
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import SwiftUI
2+
3+
public struct AuthPickerView<Content: View>: View {
4+
@Environment(AuthEnvironment.self) private var authEnvironment
5+
let providerButtons: () -> Content
6+
7+
public init(@ViewBuilder providerButtons: @escaping () -> Content) {
8+
self.providerButtons = providerButtons
9+
}
10+
11+
public var body: some View {
12+
VStack {
13+
providerButtons()
14+
}
15+
}
16+
}

FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/FirebaseAuthSwiftUI/Views/AuthenticationScreen.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ extension AuthenticationScreen: View {
2121
SignedInView()
2222
} else {
2323
Text(authEnvironment.authenticationFlow == .login ? "Login" : "Sign up")
24-
EmailPasswordView(provider: EmailAuthProvider(authEnvironment: authEnvironment))
24+
EmailPasswordView(provider: EmailPasswordAuthProvider(authEnvironment: authEnvironment))
2525
HStack {
2626
Text(authEnvironment
2727
.authenticationFlow == .login ? "Don't have an account yet?" :
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import SwiftUI
2+
3+
public struct EmailPasswordButtonView: View {
4+
@Environment(AuthEnvironment.self) private var authEnvironment
5+
private var provider: EmailPasswordAuthProvider
6+
public init(provider: EmailPasswordAuthProvider) {
7+
self.provider = provider
8+
}
9+
10+
public var body: some View {
11+
NavigationLink(destination: EmailPasswordView(provider: provider)
12+
.environment(authEnvironment)) {
13+
Text("Sign in with email")
14+
}
15+
}
16+
}

FirebaseSwiftUI/FirebaseAuthSwiftUI/Sources/FirebaseAuthSwiftUI/Views/EmailPasswordView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ public struct EmailPasswordView {
1717
@Environment(AuthEnvironment.self) private var authEnvironment
1818
@Environment(\.dismiss) private var dismiss
1919

20-
@State private var provider: EmailAuthProvider
20+
private var provider: EmailPasswordAuthProvider
2121

2222
@State private var email = ""
2323
@State private var password = ""
2424
@State private var confirmPassword = ""
2525

2626
@FocusState private var focus: FocusableField?
2727

28-
public init(provider: EmailAuthProvider) {
28+
public init(provider: EmailPasswordAuthProvider) {
2929
self.provider = provider
3030
}
3131

samples/swiftui/FirebaseSwiftUIExample/FirebaseSwiftUIExample/FirebaseSwiftUIExampleApp.swift

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,29 @@ import SwiftUI
1515
struct FirebaseSwiftUIExampleApp: App {
1616
init() {
1717
FirebaseApp.configure()
18-
authViewModel = AuthEnvironment()
1918
}
2019

21-
let authViewModel: AuthEnvironment
22-
2320
var body: some Scene {
2421
WindowGroup {
2522
NavigationView {
26-
AuthenticationScreen().environment(authViewModel)
23+
ContentView()
2724
}
2825
}
2926
}
3027
}
28+
29+
struct ContentView: View {
30+
let authEnvironment: AuthEnvironment
31+
let emailAuthProvider: EmailPasswordAuthProvider
32+
33+
init() {
34+
authEnvironment = AuthEnvironment()
35+
emailAuthProvider = EmailPasswordAuthProvider(authEnvironment: authEnvironment)
36+
}
37+
38+
var body: some View {
39+
AuthPickerView {
40+
EmailPasswordButtonView(provider: emailAuthProvider)
41+
}.environment(authEnvironment)
42+
}
43+
}

0 commit comments

Comments
 (0)