fix title partager

sync3
Razmig Sarkissian 1 month ago
parent c2ccbf5dd7
commit 09d5da914c
  1. 2
      PadelClub/Views/Calling/Components/MenuWarningView.swift
  2. 4
      PadelClub/Views/Player/PlayerDetailView.swift
  3. 41
      PadelClub/Views/Shared/SupportButtonView.swift
  4. 24
      PadelClub/Views/User/ShareModelView.swift

@ -45,6 +45,8 @@ struct MenuWarningView: View {
} label: { } label: {
Text("Prévenir") Text("Prévenir")
} }
.menuStyle(.button)
.buttonStyle(.borderedProminent)
.sheet(isPresented: self.$showSubscriptionView, content: { .sheet(isPresented: self.$showSubscriptionView, content: {
NavigationStack { NavigationStack {
SubscriptionView(isPresented: self.$showSubscriptionView, showLackOfPlanMessage: true) SubscriptionView(isPresented: self.$showSubscriptionView, showLackOfPlanMessage: true)

@ -315,7 +315,7 @@ struct PlayerDetailView: View {
CopyPasteButtonView(pasteValue: player.contactPhoneNumber) CopyPasteButtonView(pasteValue: player.contactPhoneNumber)
PasteButtonView(text: $contactPhoneNumber) PasteButtonView(text: $contactPhoneNumber)
} label: { } label: {
Text("Téléphone contact") Text("Téléphone")
} }
} }
@ -342,7 +342,7 @@ struct PlayerDetailView: View {
CopyPasteButtonView(pasteValue: player.contactEmail) CopyPasteButtonView(pasteValue: player.contactEmail)
PasteButtonView(text: $contactEmail) PasteButtonView(text: $contactEmail)
} label: { } label: {
Text("Email contact") Text("Email")
} }
} }
} header: { } header: {

@ -21,10 +21,37 @@ enum SupportButtonType {
case supervisorRequest case supervisorRequest
case bugReport case bugReport
case sharingRequest case sharingRequest
var localizedPrefix: String {
switch self {
case .contentIsUnavailable:
return "Décrivez votre problème"
case .supervisorRequest:
return localizedTopic
case .bugReport:
return "Décrivez votre problème"
case .sharingRequest:
return localizedTopic
}
}
var localizedTopic: String {
switch self {
case .contentIsUnavailable:
return "Support Padel Club"
case .supervisorRequest:
return "Demande d'ajout de superviseur"
case .bugReport:
return "Support Padel Club"
case .sharingRequest:
return "Demande de partage"
}
}
} }
struct SupportButtonView: View { struct SupportButtonView: View {
let supportButtonType: SupportButtonType let supportButtonType: SupportButtonType
var showIcon: Bool = false
@State private var sentError: ContactManagerError? = nil @State private var sentError: ContactManagerError? = nil
@State private var zipFilePath: URL? @State private var zipFilePath: URL?
@ -48,10 +75,16 @@ struct SupportButtonView: View {
_zip() _zip()
} }
case .supervisorRequest: case .supervisorRequest:
Button("Demande d'ajout de superviseur", systemImage: "plus") { if showIcon {
Button("Demande d'ajout de superviseur", systemImage: "person.badge.plus") {
_zip()
}
.labelStyle(.iconOnly)
} else {
Button("Demande d'ajout de superviseur") {
_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()
@ -92,14 +125,14 @@ struct SupportButtonView: View {
private func _getSubject() -> String { private func _getSubject() -> String {
let device = UIDevice.current let device = UIDevice.current
let iOSVersion = device.systemVersion let iOSVersion = device.systemVersion
return "[\(PadelClubApp.appVersion), \(iOSVersion), \(_getDeviceIdentifier())] Support Padel Club" return "[\(PadelClubApp.appVersion), \(iOSVersion), \(_getDeviceIdentifier())] \(supportButtonType.localizedTopic)"
} }
private func _getBody() -> String { private func _getBody() -> String {
let separator = "---------------------------------------------" let separator = "---------------------------------------------"
let token = try? StoreCenter.main.token() let token = try? StoreCenter.main.token()
return ["Décrivez votre problème", "\n\n\n", separator, "token", token ?? "", separator, "userId", StoreCenter.main.userId, separator, "dataStore userId", DataStore.shared.user.id].compacted().joined(separator: "\n") return [supportButtonType.localizedPrefix, "\n\n\n", separator, "token", token ?? "", separator, "userId", StoreCenter.main.userId, separator, "dataStore userId", DataStore.shared.user.id].compacted().joined(separator: "\n")
} }
private func _getDeviceIdentifier() -> String { private func _getDeviceIdentifier() -> String {

@ -17,9 +17,8 @@ struct ShareModelView<T: SyncedStorable> : View {
let instance: T let instance: T
var body: some View { var body: some View {
NavigationView {
if !self.viewModel.availableUsers.isEmpty {
List { List {
if !self.viewModel.availableUsers.isEmpty {
ForEach(self.viewModel.availableUsers, id: \.id) { user in ForEach(self.viewModel.availableUsers, id: \.id) { user in
let isSelected = viewModel.contains(user.id) let isSelected = viewModel.contains(user.id)
UserRow(user: user, isSelected: isSelected) UserRow(user: user, isSelected: isSelected)
@ -29,15 +28,6 @@ struct ShareModelView<T: SyncedStorable> : View {
self._modifyAuthorizedUsersList() self._modifyAuthorizedUsersList()
} }
} }
}
.toolbar {
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")
@ -47,8 +37,16 @@ struct ShareModelView<T: SyncedStorable> : View {
SupportButtonView(supportButtonType: .supervisorRequest) SupportButtonView(supportButtonType: .supervisorRequest)
} }
} }
}
}.onAppear { .toolbar(content: {
ToolbarItem(placement: .topBarTrailing) {
SupportButtonView(supportButtonType: .supervisorRequest, showIcon: true)
}
})
.navigationTitle("Gérer le partage")
.navigationBarTitleDisplayMode(.inline)
.toolbarBackground(.visible, for: .navigationBar)
.onAppear {
self.viewModel.selectedUsers = StoreCenter.main.authorizedUsers(for: self.instance.stringId) self.viewModel.selectedUsers = StoreCenter.main.authorizedUsers(for: self.instance.stringId)
} }
} }

Loading…
Cancel
Save