|
|
|
|
@ -12,7 +12,19 @@ struct GroupStageTeamReplacementView: View { |
|
|
|
|
let teamRange: TeamRegistration.TeamRange? |
|
|
|
|
let teamRangeExtended: TeamRegistration.TeamRange? |
|
|
|
|
@State private var selectedPlayer: PlayerRegistration? |
|
|
|
|
@State private var selectedRange: TeamRegistration.TeamRange? |
|
|
|
|
|
|
|
|
|
var presentSearchView: Binding<Bool> { |
|
|
|
|
Binding { |
|
|
|
|
selectedRange != nil |
|
|
|
|
} set: { newValue in |
|
|
|
|
if newValue == false { |
|
|
|
|
selectedRange = nil |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
init(team: TeamRegistration) { |
|
|
|
|
self.team = team |
|
|
|
|
self.teamRange = team.replacementRange() |
|
|
|
|
@ -68,7 +80,9 @@ struct GroupStageTeamReplacementView: View { |
|
|
|
|
Section { |
|
|
|
|
TeamRangeView(teamRange: teamRange, playerWeight: _getWeight()) |
|
|
|
|
if selectedPlayer != nil { |
|
|
|
|
_searchLinkView(teamRange) |
|
|
|
|
RowButtonView("Chercher dans vos clubs favoris") { |
|
|
|
|
selectedRange = teamRange |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} header: { |
|
|
|
|
Text("Même position en poule") |
|
|
|
|
@ -80,7 +94,9 @@ struct GroupStageTeamReplacementView: View { |
|
|
|
|
Section { |
|
|
|
|
TeamRangeView(teamRange: teamRangeExtended, playerWeight: _getWeight()) |
|
|
|
|
if selectedPlayer != nil { |
|
|
|
|
_searchLinkView(teamRangeExtended) |
|
|
|
|
RowButtonView("Chercher dans vos clubs favoris") { |
|
|
|
|
selectedRange = teamRangeExtended |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} header: { |
|
|
|
|
Text("Même ligne en poule") |
|
|
|
|
@ -93,14 +109,17 @@ struct GroupStageTeamReplacementView: View { |
|
|
|
|
.navigationTitle("Remplacement") |
|
|
|
|
.navigationBarTitleDisplayMode(.inline) |
|
|
|
|
.toolbarBackground(.visible, for: .navigationBar) |
|
|
|
|
.sheet(isPresented: presentSearchView) { |
|
|
|
|
if let selectedRange { |
|
|
|
|
_searchLinkView(selectedRange) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private func _searchLinkView(_ teamRange: TeamRegistration.TeamRange) -> some View { |
|
|
|
|
NavigationLink { |
|
|
|
|
NavigationStack { |
|
|
|
|
let tournament = team.tournamentObject() |
|
|
|
|
SelectablePlayerListView(searchField: _searchableRange(teamRange), dataSet: .favoriteClubs, filterOption: tournament?.tournamentCategory.playerFilterOption ?? .all, sortOption: .rank, showFemaleInMaleAssimilation: true, tokens: [_searchToken(teamRange)], hidePlayers: tournament?.selectedPlayers().compactMap { $0.licenceId }) |
|
|
|
|
} label: { |
|
|
|
|
Text("Chercher dans vos clubs favoris") |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|