-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
Hello, I think I might have found a bug in the subscription check and assignment logic.
Here's what I found: The code will resolve to .success but set passStatus = .notSubscribed. That added debug print statement demonstrates that.
Sample Code:
.subscriptionStatusTask(for: passIDs.group) { taskStatus in
self.status = await taskStatus.map { statuses in
await ProductSubscription.shared.status(
for: statuses,
ids: passIDs
)
}
switch self.status {
case .failure(let error):
passStatusModel.passStatus = .notSubscribed
case .success(let status):
passStatusModel.passStatus = status
print("Status from subscriptionStatusTask = .success | passStatus actually set to \(passStatusModel.passStatus)")
case .loading: break
@unknown default
}
}
In my case I'm relying on these results to show/dismiss the subscription sheet -- so I modified Code as follows to correct this behavior:
switch self.status {
case .failure(let error):
passStatusModel.passStatus = .notSubscribed
showSubscriptionView = true
case .success(let status):
passStatusModel.passStatus = status
if passStatusModel.passStatus == .notSubscribed {
showSubscriptionView = true
} else {
showSubscriptionView = false
}
case .loading: break
@unknown default: break
}
}
Thoughts?
HuangRunHua
Metadata
Metadata
Assignees
Labels
No labels