improve view sharing

sync3
Razmig Sarkissian 1 month ago
parent 154137d25f
commit c2ccbf5dd7
  1. 51
      PadelClub/Views/Navigation/Umpire/UmpireView.swift
  2. 8
      PadelClub/Views/Shared/SupportButtonView.swift
  3. 56
      PadelClub/Views/User/AccountView.swift
  4. 10
      PadelClub/Views/User/ShareModelView.swift

@ -75,56 +75,7 @@ struct UmpireView: View {
AccountView(user: dataStore.user) { } AccountView(user: dataStore.user) { }
} label: { } label: {
AccountRowView(userName: dataStore.user.username) AccountRowView(userName: dataStore.user.username)
} }
let onlineRegPaymentMode = dataStore.user.registrationPaymentMode
Section {
LabeledContent {
switch onlineRegPaymentMode {
case .corporate:
Text("Activé")
.bold()
.foregroundStyle(.green)
case .disabled:
Text("Désactivé")
.bold()
case .noFee:
Text("Activé")
.bold()
.foregroundStyle(.green)
case .stripe:
Text("Activé")
.bold()
.foregroundStyle(.green)
}
} label: {
Text("Option 'Paiement en ligne'")
if onlineRegPaymentMode == .corporate {
Text("Mode Padel Club")
.foregroundStyle(.secondary)
} else if onlineRegPaymentMode == .noFee {
Text("Commission Stripe")
.foregroundStyle(.secondary)
} else if onlineRegPaymentMode == .stripe {
Text("Commission Stripe et Padel Club")
.foregroundStyle(.secondary)
}
}
} footer: {
if onlineRegPaymentMode == .disabled {
FooterButtonView("Contactez nous pour activer cette option.") {
let emailTo: String = "support@padelclub.app"
let subject: String = "Activer l'option de paiment en ligne : \(dataStore.user.email)"
if let url = URL(string: "mailto:\(emailTo)?subject=\(subject)"), UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
}
.font(.callout)
.multilineTextAlignment(.leading)
} else {
Text("Permet de proposer le paiement de vos tournois en ligne.")
}
}
} else { } else {
NavigationLink(value: UmpireScreen.login) { NavigationLink(value: UmpireScreen.login) {
AccountRowView(userName: dataStore.user.username) AccountRowView(userName: dataStore.user.username)

@ -20,6 +20,7 @@ enum SupportButtonType {
case contentIsUnavailable case contentIsUnavailable
case supervisorRequest case supervisorRequest
case bugReport case bugReport
case sharingRequest
} }
struct SupportButtonView: View { struct SupportButtonView: View {
@ -42,10 +43,15 @@ struct SupportButtonView: View {
var body: some View { var body: some View {
Group { Group {
switch supportButtonType { switch supportButtonType {
case .sharingRequest:
Button("Nous contacter") {
_zip()
}
case .supervisorRequest: case .supervisorRequest:
Button("Demande d'ajout de superviseur") { Button("Demande d'ajout de superviseur", systemImage: "plus") {
_zip() _zip()
} }
.labelStyle(.titleOnly)
case .contentIsUnavailable: case .contentIsUnavailable:
FooterButtonView("Besoin d'aide ? Un problème ? Contactez-nous !") { FooterButtonView("Besoin d'aide ? Un problème ? Contactez-nous !") {
_zip() _zip()

@ -12,6 +12,7 @@ import PadelClubData
struct AccountView: View { struct AccountView: View {
@Environment(\.dismiss) private var dismiss @Environment(\.dismiss) private var dismiss
@EnvironmentObject var dataStore: DataStore
var user: CustomUser var user: CustomUser
var handler: () -> () var handler: () -> ()
@ -23,6 +24,61 @@ struct AccountView: View {
PurchaseView(purchaseRow: PurchaseRow(id: purchase.id, name: purchase.productId, item: item)) PurchaseView(purchaseRow: PurchaseRow(id: purchase.id, name: purchase.productId, item: item))
} }
#endif #endif
let onlineRegPaymentMode = dataStore.user.registrationPaymentMode
Section {
LabeledContent {
switch onlineRegPaymentMode {
case .corporate:
Text("Activé")
.bold()
.foregroundStyle(.green)
case .disabled:
Text("Désactivé")
.bold()
case .noFee:
Text("Activé")
.bold()
.foregroundStyle(.green)
case .stripe:
Text("Activé")
.bold()
.foregroundStyle(.green)
}
} label: {
Text("Option 'Paiement en ligne'")
if onlineRegPaymentMode == .corporate {
Text("Mode Padel Club")
.foregroundStyle(.secondary)
} else if onlineRegPaymentMode == .noFee {
Text("Commission Stripe")
.foregroundStyle(.secondary)
} else if onlineRegPaymentMode == .stripe {
Text("Commission Stripe et Padel Club")
.foregroundStyle(.secondary)
}
}
} footer: {
if onlineRegPaymentMode == .disabled {
FooterButtonView("Contactez nous pour activer cette option.") {
let emailTo: String = "support@padelclub.app"
let subject: String = "Activer l'option de paiment en ligne : \(dataStore.user.email)"
if let url = URL(string: "mailto:\(emailTo)?subject=\(subject)"), UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
}
}
.font(.callout)
.multilineTextAlignment(.leading)
} else {
Text("Permet de proposer le paiement de vos tournois en ligne.")
}
}
Section {
Text("Vous souhaitez partager la supervision d'un tournoi à un autre compte ? Vous avez plusieurs juge-arbitres dans votre club ?")
SupportButtonView(supportButtonType: .sharingRequest)
}
Section { Section {
NavigationLink("Changer de mot de passe") { NavigationLink("Changer de mot de passe") {
ChangePasswordView() ChangePasswordView()

@ -30,8 +30,14 @@ struct ShareModelView<T: SyncedStorable> : View {
} }
} }
} }
.listStyle(PlainListStyle()) .toolbar {
.navigationTitle("Partage") ToolbarItem(placement: .topBarTrailing) {
SupportButtonView(supportButtonType: .supervisorRequest)
}
}
.navigationTitle("Partager à vos superviseurs")
.navigationBarTitleDisplayMode(.inline)
.toolbarBackground(.visible, for: .navigationBar)
} else { } else {
ContentUnavailableView { ContentUnavailableView {
Label("Aucun superviseurs", systemImage: "person.crop.circle.badge.xmark") Label("Aucun superviseurs", systemImage: "person.crop.circle.badge.xmark")

Loading…
Cancel
Save