| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /*
- * Copyright 2021 Google LLC
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- import SwiftUI
- import GoogleSignInSwift
- struct SignInView: View {
- @EnvironmentObject var authViewModel: AuthenticationViewModel
- @ObservedObject var vm = GoogleSignInButtonViewModel()
- var body: some View {
- VStack {
- HStack {
- VStack {
- GoogleSignInButton(viewModel: vm, action: authViewModel.signIn)
- .accessibility(hint: Text("Sign in with Google button."))
- .padding()
- VStack {
- HStack {
- Text("Button style:")
- .padding(.leading)
- Picker("", selection: $vm.style) {
- ForEach(GoogleSignInButtonStyle.allCases) { style in
- Text(style.rawValue.capitalized)
- .tag(GoogleSignInButtonStyle(rawValue: style.rawValue)!)
- }
- }
- Spacer()
- }
- HStack {
- Text("Button color:")
- .padding(.leading)
- Picker("", selection: $vm.scheme) {
- ForEach(GoogleSignInButtonColorScheme.allCases) { scheme in
- Text(scheme.rawValue.capitalized)
- .tag(GoogleSignInButtonColorScheme(rawValue: scheme.rawValue)!)
- }
- }
- Spacer()
- }
- HStack {
- Text("Button state:")
- .padding(.leading)
- Picker("", selection: $vm.state) {
- ForEach(GoogleSignInButtonState.allCases) { state in
- Text(state.rawValue.capitalized)
- .tag(GoogleSignInButtonState(rawValue: state.rawValue)!)
- }
- }
- Spacer()
- }
- }
- #if os(iOS)
- .pickerStyle(.segmented)
- #endif
- }
- }
- Spacer()
- }
- }
- }
|