@@ -10,34 +10,36 @@ public struct FacebookButtonView {
1010 @Environment ( AuthService . self) private var authService
1111 @State private var errorMessage = " "
1212 @State private var showCanceledAlert = false
13- @State private var showUserTrackingAlert = false
1413 @State private var limitedLogin = true
14+ @State private var showUserTrackingAlert = false
15+ @State private var trackingAuthorizationStatus : ATTrackingManager
16+ . AuthorizationStatus = . notDetermined
1517
16- public init ( ) { }
18+ public init ( ) {
19+ _trackingAuthorizationStatus = State ( initialValue: ATTrackingManager
20+ . trackingAuthorizationStatus)
21+ }
1722
1823 private var limitedLoginBinding : Binding < Bool > {
1924 Binding (
2025 get: { self . limitedLogin } ,
2126 set: { newValue in
22- let trackingStatus = ATTrackingManager . trackingAuthorizationStatus
23- if newValue == true , trackingStatus != . authorized {
24- self . showUserTrackingAlert = true
25- } else {
27+ if trackingAuthorizationStatus == . authorized {
2628 self . limitedLogin = newValue
29+ } else {
30+ self . limitedLogin = false
2731 }
2832 }
2933 )
3034 }
3135
3236 func requestTrackingPermission( ) {
3337 ATTrackingManager . requestTrackingAuthorization { status in
34- switch status {
35- case . authorized:
36- print ( " Tracking authorized " )
37- case . denied, . restricted, . notDetermined:
38- print ( " Tracking not authorized " )
39- @unknown default :
40- print ( " Unknown status " )
38+ Task { @MainActor in
39+ trackingAuthorizationStatus = status
40+ if status != . authorized {
41+ showUserTrackingAlert = true
42+ }
4143 }
4244 }
4345 }
0 commit comments