Add timer for sub.club account

This commit is contained in:
Thomas Ricouard 2024-08-15 21:25:04 +02:00
parent 8c6d2bee7f
commit 83bf872cca

View file

@ -24,6 +24,8 @@ struct AccountDetailHeaderView: View {
let account: Account let account: Account
let scrollViewProxy: ScrollViewProxy? let scrollViewProxy: ScrollViewProxy?
private let premiumTimer = Timer.publish(every: 5, on: .main, in: .common).autoconnect()
@State private var shouldListenToPremiumTimer: Bool = false
@State private var isTipSheetPresented: Bool = false @State private var isTipSheetPresented: Bool = false
var body: some View { var body: some View {
@ -61,6 +63,17 @@ struct AccountDetailHeaderView: View {
} }
} }
} }
.onReceive(premiumTimer) { _ in
if shouldListenToPremiumTimer {
Task {
if viewModel.account?.isLinkedToPremiumAccount == true {
await viewModel.fetchAccount()
} else{
try? await viewModel.followButtonViewModel?.refreshRelationship()
}
}
}
}
} }
private var headerImageView: some View { private var headerImageView: some View {
@ -332,6 +345,7 @@ struct AccountDetailHeaderView: View {
private var tipView: some View { private var tipView: some View {
Button { Button {
isTipSheetPresented = true isTipSheetPresented = true
shouldListenToPremiumTimer = true
Task { Task {
if viewModel.account?.isLinkedToPremiumAccount == true { if viewModel.account?.isLinkedToPremiumAccount == true {
try? await viewModel.followPremiumAccount() try? await viewModel.followPremiumAccount()