From 8373509a148e67259beb5d6bfe936d54c901a4b2 Mon Sep 17 00:00:00 2001 From: Laurent Date: Wed, 17 Jul 2024 17:45:27 +0200 Subject: [PATCH] Improve UI style for canceled/private tournaments --- PadelClub.xcodeproj/project.pbxproj | 4 +++ .../Shared/TournamentCellView.swift | 7 ++-- .../ViewModifiers/CapsuleViewModifier.swift | 32 +++++++++++++++++++ 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 PadelClub/Views/ViewModifiers/CapsuleViewModifier.swift diff --git a/PadelClub.xcodeproj/project.pbxproj b/PadelClub.xcodeproj/project.pbxproj index 7b57cc2..12f8f19 100644 --- a/PadelClub.xcodeproj/project.pbxproj +++ b/PadelClub.xcodeproj/project.pbxproj @@ -45,6 +45,7 @@ C4A47DAD2B85FCCD00ADC637 /* User.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A47DAC2B85FCCD00ADC637 /* User.swift */; }; C4A47DB32B86387500ADC637 /* AccountView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4A47DB22B86387500ADC637 /* AccountView.swift */; }; C4B3A1552C2581DA0078EAA8 /* Patcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4B3A1542C2581DA0078EAA8 /* Patcher.swift */; }; + C4C01D982C481C0C0059087C /* CapsuleViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C01D972C481C0C0059087C /* CapsuleViewModifier.swift */; }; C4EC6F572BE92CAC000CEAB4 /* local.plist in Resources */ = {isa = PBXBuildFile; fileRef = C4EC6F562BE92CAC000CEAB4 /* local.plist */; }; C4EC6F592BE92D88000CEAB4 /* PListReader.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4EC6F582BE92D88000CEAB4 /* PListReader.swift */; }; C4FC2E272C2AABC90021F3BF /* PasswordField.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4FC2E262C2AABC90021F3BF /* PasswordField.swift */; }; @@ -343,6 +344,7 @@ C4A47DAC2B85FCCD00ADC637 /* User.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = ""; }; C4A47DB22B86387500ADC637 /* AccountView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountView.swift; sourceTree = ""; }; C4B3A1542C2581DA0078EAA8 /* Patcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Patcher.swift; sourceTree = ""; }; + C4C01D972C481C0C0059087C /* CapsuleViewModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CapsuleViewModifier.swift; sourceTree = ""; }; C4EC6F562BE92CAC000CEAB4 /* local.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = local.plist; sourceTree = ""; }; C4EC6F582BE92D88000CEAB4 /* PListReader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PListReader.swift; sourceTree = ""; }; C4FC2E262C2AABC90021F3BF /* PasswordField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasswordField.swift; sourceTree = ""; }; @@ -1278,6 +1280,7 @@ FF5D0D752BB428B2005CB568 /* ListRowViewModifier.swift */, FF4C7F012BBBD7150031B6A3 /* TabItemModifier.swift */, C493B37D2C10AD3600862481 /* LoadingViewModifier.swift */, + C4C01D972C481C0C0059087C /* CapsuleViewModifier.swift */, ); path = ViewModifiers; sourceTree = ""; @@ -1568,6 +1571,7 @@ FF8F263B2BAD528600650388 /* EventCreationView.swift in Sources */, FF135BF92C2FCB8300C9247A /* LoserGroupStageSettingsView.swift in Sources */, FFC1E1082BAC29FC008D6F59 /* LocationManager.swift in Sources */, + C4C01D982C481C0C0059087C /* CapsuleViewModifier.swift in Sources */, FF6087EC2BE26A2F004E1E47 /* BroadcastView.swift in Sources */, FFF964552BC266CF00EEF017 /* SchedulerView.swift in Sources */, FFA1B1292BB71773006CE248 /* PadelClubButtonView.swift in Sources */, diff --git a/PadelClub/Views/Tournament/Shared/TournamentCellView.swift b/PadelClub/Views/Tournament/Shared/TournamentCellView.swift index 10ef423..057c6dd 100644 --- a/PadelClub/Views/Tournament/Shared/TournamentCellView.swift +++ b/PadelClub/Views/Tournament/Shared/TournamentCellView.swift @@ -67,7 +67,8 @@ struct TournamentCellView: View { .font(.caption) Spacer() if tournament.isPrivate { - Text("privé").foregroundStyle(.logoRed) + Text("privé") + .capsule(foreground: .black, background: .beige) } } } else { @@ -87,7 +88,9 @@ struct TournamentCellView: View { Spacer() if let tournament = tournament as? Tournament, displayStyle == .wide { if tournament.isCanceled { - Text("Annulé").foregroundStyle(.logoRed) + Text("Annulé".uppercased()) + .capsule(foreground: .white, background: .red) + } else if let teamCount { Text(teamCount.formatted()) } diff --git a/PadelClub/Views/ViewModifiers/CapsuleViewModifier.swift b/PadelClub/Views/ViewModifiers/CapsuleViewModifier.swift new file mode 100644 index 0000000..5a72b26 --- /dev/null +++ b/PadelClub/Views/ViewModifiers/CapsuleViewModifier.swift @@ -0,0 +1,32 @@ +// +// CapsuleViewModifier.swift +// PadelClub +// +// Created by Laurent Morvillier on 17/07/2024. +// + +import Foundation +import SwiftUI + +struct CapsuleViewModifier: ViewModifier { + + let foreground: Color + let background: Color + + func body(content: Content) -> some View { + content + .foregroundStyle(self.foreground) + .font(.footnote) + .padding(.horizontal, 8.0) + .padding(.vertical, 4.0) + .background(self.background) + .clipShape(RoundedRectangle(cornerRadius: 8.0, style: .circular)) + + } +} + +extension View { + func capsule(foreground: Color, background: Color) -> some View { + modifier(CapsuleViewModifier(foreground: foreground, background: background)) + } +}