diff --git a/PadelClub.xcodeproj/project.pbxproj b/PadelClub.xcodeproj/project.pbxproj index d7a36cf..14ff243 100644 --- a/PadelClub.xcodeproj/project.pbxproj +++ b/PadelClub.xcodeproj/project.pbxproj @@ -69,7 +69,6 @@ C49C731F2D5E3BE8008DD299 /* VersionComparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C49C731D2D5E3BE4008DD299 /* VersionComparator.swift */; }; C49C73202D5E3BE8008DD299 /* VersionComparator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C49C731D2D5E3BE4008DD299 /* VersionComparator.swift */; }; C49EF0192BD694290077B5AA /* PurchaseListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C49EF0182BD694290077B5AA /* PurchaseListView.swift */; }; - C49EF0262BD80AE80077B5AA /* SubscriptionInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C49EF0252BD80AE80077B5AA /* SubscriptionInfoView.swift */; }; C49EF0392BDFF4600077B5AA /* LeStorage.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C49EF0372BDFF3000077B5AA /* LeStorage.framework */; }; C49EF03A2BDFF4600077B5AA /* LeStorage.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C49EF0372BDFF3000077B5AA /* LeStorage.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; C49EF0422BE23BF50077B5AA /* PaymentTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C49EF0412BE23BF50077B5AA /* PaymentTests.swift */; }; @@ -240,7 +239,6 @@ FF4CBF872C996C0600151637 /* PointSelectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFCFC00D2BBC3D4600B82851 /* PointSelectionView.swift */; }; FF4CBF882C996C0600151637 /* TeamRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF089EB52BB00A3800F0AEC7 /* TeamRowView.swift */; }; FF4CBF8A2C996C0600151637 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40CD2F22C412681000DBD9A /* AppDelegate.swift */; }; - FF4CBF8B2C996C0600151637 /* SubscriptionInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C49EF0252BD80AE80077B5AA /* SubscriptionInfoView.swift */; }; FF4CBF8C2C996C0600151637 /* EditScoreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFCFC0012BBC39A600B82851 /* EditScoreView.swift */; }; FF4CBF8D2C996C0600151637 /* TournamentOrganizerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF7091612B90F04300AB08DA /* TournamentOrganizerView.swift */; }; FF4CBF8F2C996C0600151637 /* TournamentRunningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF967CF52BAED51600A9A3BD /* TournamentRunningView.swift */; }; @@ -491,7 +489,6 @@ FF70FB062C90584900129CC2 /* PointSelectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFCFC00D2BBC3D4600B82851 /* PointSelectionView.swift */; }; FF70FB072C90584900129CC2 /* TeamRowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF089EB52BB00A3800F0AEC7 /* TeamRowView.swift */; }; FF70FB092C90584900129CC2 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C40CD2F22C412681000DBD9A /* AppDelegate.swift */; }; - FF70FB0A2C90584900129CC2 /* SubscriptionInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C49EF0252BD80AE80077B5AA /* SubscriptionInfoView.swift */; }; FF70FB0B2C90584900129CC2 /* EditScoreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFCFC0012BBC39A600B82851 /* EditScoreView.swift */; }; FF70FB0C2C90584900129CC2 /* TournamentOrganizerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF7091612B90F04300AB08DA /* TournamentOrganizerView.swift */; }; FF70FB0E2C90584900129CC2 /* TournamentRunningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF967CF52BAED51600A9A3BD /* TournamentRunningView.swift */; }; @@ -883,7 +880,6 @@ C49774BA2DC37C10005CD239 /* NetworkMonitor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkMonitor.swift; sourceTree = ""; }; C49C731D2D5E3BE4008DD299 /* VersionComparator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VersionComparator.swift; sourceTree = ""; }; C49EF0182BD694290077B5AA /* PurchaseListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PurchaseListView.swift; sourceTree = ""; }; - C49EF0252BD80AE80077B5AA /* SubscriptionInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubscriptionInfoView.swift; sourceTree = ""; }; C49EF0372BDFF3000077B5AA /* LeStorage.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = LeStorage.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C49EF0412BE23BF50077B5AA /* PaymentTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentTests.swift; sourceTree = ""; }; C4A47D862B7BA36D00ADC637 /* UserCreationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserCreationView.swift; sourceTree = ""; }; @@ -1377,7 +1373,6 @@ children = ( C4A47D892B7BBB6500ADC637 /* SubscriptionView.swift */, C49EF0182BD694290077B5AA /* PurchaseListView.swift */, - C49EF0252BD80AE80077B5AA /* SubscriptionInfoView.swift */, C4D05D482DC10CBE009B053C /* PaymentStatusView.swift */, ); path = Subscription; @@ -2287,7 +2282,6 @@ FFCFC00E2BBC3D4600B82851 /* PointSelectionView.swift in Sources */, FF089EB62BB00A3800F0AEC7 /* TeamRowView.swift in Sources */, C40CD2F32C412681000DBD9A /* AppDelegate.swift in Sources */, - C49EF0262BD80AE80077B5AA /* SubscriptionInfoView.swift in Sources */, FFCFC00C2BBC3D1E00B82851 /* EditScoreView.swift in Sources */, FF7091622B90F04300AB08DA /* TournamentOrganizerView.swift in Sources */, FF967CF62BAED51600A9A3BD /* TournamentRunningView.swift in Sources */, @@ -2547,7 +2541,6 @@ FF4CBF872C996C0600151637 /* PointSelectionView.swift in Sources */, FF4CBF882C996C0600151637 /* TeamRowView.swift in Sources */, FF4CBF8A2C996C0600151637 /* AppDelegate.swift in Sources */, - FF4CBF8B2C996C0600151637 /* SubscriptionInfoView.swift in Sources */, FF4CBF8C2C996C0600151637 /* EditScoreView.swift in Sources */, FF4CBF8D2C996C0600151637 /* TournamentOrganizerView.swift in Sources */, FF4CBF8F2C996C0600151637 /* TournamentRunningView.swift in Sources */, @@ -2788,7 +2781,6 @@ FF70FB062C90584900129CC2 /* PointSelectionView.swift in Sources */, FF70FB072C90584900129CC2 /* TeamRowView.swift in Sources */, FF70FB092C90584900129CC2 /* AppDelegate.swift in Sources */, - FF70FB0A2C90584900129CC2 /* SubscriptionInfoView.swift in Sources */, FF70FB0B2C90584900129CC2 /* EditScoreView.swift in Sources */, FF70FB0C2C90584900129CC2 /* TournamentOrganizerView.swift in Sources */, FF70FB0E2C90584900129CC2 /* TournamentRunningView.swift in Sources */, diff --git a/PadelClub/AppDelegate.swift b/PadelClub/AppDelegate.swift index dd39d25..f3f4833 100644 --- a/PadelClub/AppDelegate.swift +++ b/PadelClub/AppDelegate.swift @@ -35,9 +35,9 @@ class AppDelegate : NSObject, UIApplicationDelegate, UNUserNotificationCenterDel #if DEBUG if let secure = PListReader.readBool(plist: "local", key: "secure_server"), let domain = PListReader.readString(plist: "local", key: "server_domain") { - StoreCenter.main.configureURLs(secureScheme: secure, domain: domain) + StoreCenter.main.configureURLs(secureScheme: secure, domain: domain, webSockets: false) } else { - StoreCenter.main.configureURLs(secureScheme: true, domain: domain) + StoreCenter.main.configureURLs(secureScheme: true, domain: domain, webSockets: false) } #else StoreCenter.main.configureURLs(secureScheme: true, domain: domain) diff --git a/PadelClub/Extensions/Tournament+Extensions.swift b/PadelClub/Extensions/Tournament+Extensions.swift index 50c7c92..1e7c1cd 100644 --- a/PadelClub/Extensions/Tournament+Extensions.swift +++ b/PadelClub/Extensions/Tournament+Extensions.swift @@ -431,6 +431,24 @@ extension Tournament: TournamentBuildHolder { } } +// MARK: - UI extensions + +extension Tournament { + + public var shouldShowPaymentInfo: Bool { + if self.payment != nil { + return false + } + switch self.state() { + case .initial, .build, .running: + return true + default: + return false + } + } + +} + //extension Tournament { // func deadline(for type: TournamentDeadlineType) -> Date? { diff --git a/PadelClub/Views/Planning/PlanningSettingsView.swift b/PadelClub/Views/Planning/PlanningSettingsView.swift index 74bf764..2d56d71 100644 --- a/PadelClub/Views/Planning/PlanningSettingsView.swift +++ b/PadelClub/Views/Planning/PlanningSettingsView.swift @@ -48,9 +48,8 @@ struct PlanningSettingsView: View { var body: some View { List { - if tournament.payment == nil { + if tournament.shouldShowPaymentInfo { PaymentStatusView() -// SubscriptionInfoView() } Section { diff --git a/PadelClub/Views/Tournament/Subscription/SubscriptionInfoView.swift b/PadelClub/Views/Tournament/Subscription/SubscriptionInfoView.swift deleted file mode 100644 index a94c903..0000000 --- a/PadelClub/Views/Tournament/Subscription/SubscriptionInfoView.swift +++ /dev/null @@ -1,58 +0,0 @@ -// -// OffersHeaderView.swift -// PadelClub -// -// Created by Laurent Morvillier on 23/04/2024. -// - -import SwiftUI -import TipKit -import PadelClubData - -struct SubscriptionInfoView: View { - - @State var payment: TournamentPayment? = .free - - var body: some View { - - Group { - switch self.payment { - case .free: - TipView(FreeTournamentTip()).tipStyle(tint: nil, background: .blue.opacity(0.2)) - case nil: - TipView(NoPaymentTip()).tipStyle(tint: nil, background: .logoRed) - default: - EmptyView() - } - }.onAppear { - self.payment = Guard.main.paymentForNewTournament() - } - - } - -} - -struct FreeTournamentTip: Tip { - var title: Text { - return Text("Nous vous offrons vos 3 premiers tournois ! Convoquez les équipes, créez les poules, le tableau comme vous le souhaitez. \nEnregistrez les résultats de chaque équipes et diffusez les scores en temps réel sur les écrans de votre club !\n\n Votre tournoi est décompté lorsque vous convoquez ou que vous rentrez un résultat.") - } - - var image: Image? { - Image(systemName: "gift.fill") - } - -} - -struct NoPaymentTip: Tip { - var title: Text { - return Text("Vous ne disposez plus d'une offre vous permettant de convoquer les joueurs et de rentrer les résultats des matchs. Nous vous invitons à consulter les offres dans l'onglet JA.").foregroundStyle(.white) - } - - var image: Image? { - Image(systemName: "exclamationmark.bubble.fill") - } -} - -//#Preview { -// SubscriptionInfoView(payment: .free) -//} diff --git a/PadelClub/Views/Tournament/TournamentView.swift b/PadelClub/Views/Tournament/TournamentView.swift index d0fdd52..81a00f9 100644 --- a/PadelClub/Views/Tournament/TournamentView.swift +++ b/PadelClub/Views/Tournament/TournamentView.swift @@ -51,9 +51,8 @@ struct TournamentView: View { var body: some View { VStack(spacing: 0.0) { List { - if tournament.state() != .finished && tournament.payment == nil { + if tournament.shouldShowPaymentInfo { PaymentStatusView() -// SubscriptionInfoView() } switch tournament.state() {