@@ -45,78 +45,81 @@ struct SignInWithOAuth: View {
45
45
}
46
46
}
47
47
48
- final class SignInWithOAuthViewController : UIViewController , UIPickerViewDataSource ,
49
- UIPickerViewDelegate
50
- {
51
- let providers = Provider . allCases
52
- var provider = Provider . allCases [ 0 ]
48
+ #if canImport(UIKit)
49
+ final class SignInWithOAuthViewController : UIViewController , UIPickerViewDataSource ,
50
+ UIPickerViewDelegate
51
+ {
52
+ let providers = Provider . allCases
53
+ var provider = Provider . allCases [ 0 ]
54
+
55
+ let providerPicker = UIPickerView ( )
56
+ let signInButton = UIButton ( type: . system)
57
+
58
+ override func viewDidLoad( ) {
59
+ super. viewDidLoad ( )
60
+ setupViews ( )
61
+ }
53
62
54
- let providerPicker = UIPickerView ( )
55
- let signInButton = UIButton ( type: . system)
63
+ func setupViews( ) {
64
+ view. backgroundColor = . white
65
+
66
+ providerPicker. dataSource = self
67
+ providerPicker. delegate = self
68
+ view. addSubview ( providerPicker)
69
+ providerPicker. translatesAutoresizingMaskIntoConstraints = false
70
+ NSLayoutConstraint . activate ( [
71
+ providerPicker. centerXAnchor. constraint ( equalTo: view. centerXAnchor) ,
72
+ providerPicker. centerYAnchor. constraint ( equalTo: view. centerYAnchor) ,
73
+ providerPicker. widthAnchor. constraint ( equalToConstant: 200 ) ,
74
+ providerPicker. heightAnchor. constraint ( equalToConstant: 100 ) ,
75
+ ] )
76
+
77
+ signInButton. setTitle ( " Start Sign-in Flow " , for: . normal)
78
+ signInButton. addTarget ( self , action: #selector( signInButtonTapped) , for: . touchUpInside)
79
+ view. addSubview ( signInButton)
80
+ signInButton. translatesAutoresizingMaskIntoConstraints = false
81
+ NSLayoutConstraint . activate ( [
82
+ signInButton. centerXAnchor. constraint ( equalTo: view. centerXAnchor) ,
83
+ signInButton. topAnchor. constraint ( equalTo: providerPicker. bottomAnchor, constant: 20 ) ,
84
+ ] )
85
+ }
56
86
57
- override func viewDidLoad( ) {
58
- super. viewDidLoad ( )
59
- setupViews ( )
60
- }
87
+ @objc func signInButtonTapped( ) {
88
+ Task {
89
+ do {
90
+ try await supabase. auth. signInWithOAuth (
91
+ provider: provider,
92
+ redirectTo: Constants . redirectToURL
93
+ )
94
+ } catch {
95
+ debug ( " Failed to sign-in with OAuth flow: \( error) " )
96
+ }
97
+ }
98
+ }
61
99
62
- func setupViews( ) {
63
- view. backgroundColor = . white
64
-
65
- providerPicker. dataSource = self
66
- providerPicker. delegate = self
67
- view. addSubview ( providerPicker)
68
- providerPicker. translatesAutoresizingMaskIntoConstraints = false
69
- NSLayoutConstraint . activate ( [
70
- providerPicker. centerXAnchor. constraint ( equalTo: view. centerXAnchor) ,
71
- providerPicker. centerYAnchor. constraint ( equalTo: view. centerYAnchor) ,
72
- providerPicker. widthAnchor. constraint ( equalToConstant: 200 ) ,
73
- providerPicker. heightAnchor. constraint ( equalToConstant: 100 ) ,
74
- ] )
75
-
76
- signInButton. setTitle ( " Start Sign-in Flow " , for: . normal)
77
- signInButton. addTarget ( self , action: #selector( signInButtonTapped) , for: . touchUpInside)
78
- view. addSubview ( signInButton)
79
- signInButton. translatesAutoresizingMaskIntoConstraints = false
80
- NSLayoutConstraint . activate ( [
81
- signInButton. centerXAnchor. constraint ( equalTo: view. centerXAnchor) ,
82
- signInButton. topAnchor. constraint ( equalTo: providerPicker. bottomAnchor, constant: 20 ) ,
83
- ] )
84
- }
100
+ func numberOfComponents( in _: UIPickerView ) -> Int {
101
+ 1
102
+ }
85
103
86
- @objc func signInButtonTapped( ) {
87
- Task {
88
- do {
89
- try await supabase. auth. signInWithOAuth (
90
- provider: provider,
91
- redirectTo: Constants . redirectToURL
92
- )
93
- } catch {
94
- debug ( " Failed to sign-in with OAuth flow: \( error) " )
95
- }
104
+ func pickerView( _: UIPickerView , numberOfRowsInComponent _: Int ) -> Int {
105
+ providers. count
96
106
}
97
- }
98
107
99
- func numberOfComponents ( in _: UIPickerView ) -> Int {
100
- 1
101
- }
108
+ func pickerView ( _: UIPickerView , titleForRow row : Int , forComponent _ : Int ) -> String ? {
109
+ " \( providers [ row ] ) "
110
+ }
102
111
103
- func pickerView( _: UIPickerView , numberOfRowsInComponent _: Int ) -> Int {
104
- providers. count
112
+ func pickerView( _: UIPickerView , didSelectRow row: Int , inComponent _: Int ) {
113
+ provider = providers [ row]
114
+ }
105
115
}
106
116
107
- func pickerView ( _ : UIPickerView , titleForRow row : Int , forComponent _ : Int ) -> String ? {
108
- " \( providers [ row ] ) "
117
+ #Preview ( " UIKit " ) {
118
+ SignInWithOAuthViewController ( )
109
119
}
110
120
111
- func pickerView( _: UIPickerView , didSelectRow row: Int , inComponent _: Int ) {
112
- provider = providers [ row]
113
- }
114
- }
121
+ #endif
115
122
116
123
#Preview( " SwiftUI " ) {
117
124
SignInWithOAuth ( )
118
125
}
119
-
120
- #Preview( " UIKit " ) {
121
- SignInWithOAuthViewController ( )
122
- }
0 commit comments