Browse Source

Add defaults for easier button instantiation

Matthew Mathias 4 năm trước cách đây
mục cha
commit
328e03f48b

+ 4 - 2
GoogleSignInSwift/Sources/GoogleSignInButton.swift

@@ -28,10 +28,12 @@ public struct GoogleSignInButton: View {
 
   /// Creates an instance of the Google Sign-In button for use in SwiftUI
   /// - parameter viewModel: An instance of `GoogleSignInButtonViewModel`
-  /// containing information on the button's scheme, style, and state.
+  /// containing information on the button's scheme, style, and state. Defaults to
+  /// `GoogleSignInButtonViewModel` with its standard defaults.
   /// - parameter action: A closure to use as the button's action upon press.
+  /// - seealso: Refer to `GoogleSignInButtonViewModel.swift` for its defaults.
   public init(
-    viewModel: GoogleSignInButtonViewModel,
+    viewModel: GoogleSignInButtonViewModel = GoogleSignInButtonViewModel(),
     action: @escaping () -> Void
   ) {
     self.viewModel = viewModel

+ 6 - 4
GoogleSignInSwift/Sources/GoogleSignInButtonViewModel.swift

@@ -31,14 +31,16 @@ public class GoogleSignInButtonViewModel: ObservableObject {
   }
 
   /// Creates instances of the SwiftUI sign-in button.
-  /// - parameter scheme: An instance of `GoogleSignInButtonColorScheme`.
-  /// - parameter style: An instance of `GoogleSignInButtonStyle`.
+  /// - parameter scheme: An instance of `GoogleSignInButtonColorScheme`. Defaults to
+  /// `.light`.
+  /// - parameter style: An instance of `GoogleSignInButtonStyle`. Defaults to
+  /// `.standard`.
   /// - parameter state: An instance of `GoogleSignInButtonState`. Defaults to
   /// `.normal`.
   @available(iOS 13.0, macOS 10.15, *)
   public init(
-    scheme: GoogleSignInButtonColorScheme,
-    style: GoogleSignInButtonStyle,
+    scheme: GoogleSignInButtonColorScheme = .light,
+    style: GoogleSignInButtonStyle = .standard,
     state: GoogleSignInButtonState = .normal) {
       self.scheme = scheme
       self.style = style

+ 1 - 8
Samples/Swift/DaysUntilBirthday/Shared/Views/SignInView.swift

@@ -23,14 +23,7 @@ struct SignInView: View {
   var body: some View {
     VStack {
       HStack {
-        let buttonViewModel = GoogleSignInButtonViewModel(
-          scheme: .light,
-          style: .standard
-        )
-        GoogleSignInButton(
-          viewModel: buttonViewModel,
-          action: authViewModel.signIn
-        )
+        GoogleSignInButton(action: authViewModel.signIn)
           .accessibility(hint: Text("Sign in with Google button."))
           .padding()
       }