Scoreboard reusable view column fix

main
Mathieu GROUSSEAU 3 weeks ago
parent 5b1d9d78fe
commit d1afadd571

@ -1,7 +1,23 @@
{ {
"sourceLanguage" : "en", "sourceLanguage" : "en",
"strings" : { "strings" : {
"%@ scoreboard.column.players.entry %@" : { "%@ savedGames.section.finished.entry %@" : {
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "%1$@ won against %2$@"
}
},
"fr" : {
"stringUnit" : {
"state" : "translated",
"value" : "%1$@ bat %2$@"
}
}
}
},
"%@ savedGames.section.unfinished.entry %@" : {
"localizations" : { "localizations" : {
"en" : { "en" : {
"stringUnit" : { "stringUnit" : {

@ -82,12 +82,12 @@ private struct PlayerSectionView: View {
// //
//} //}
// TODO: actual photo support // // TODO: actual photo support
Image(systemName: "camera.viewfinder").overlay { // Image(systemName: "camera.viewfinder").overlay {
PhotosPicker(selection: $photo) { // PhotosPicker(selection: $photo) {
Text("newGame.player.photo.picker") // Text("newGame.player.photo.picker")
} // }
} // }
} }
init(settings: PlayerSettingsVM) { init(settings: PlayerSettingsVM) {

@ -37,7 +37,9 @@ struct PlayerVSPage: View {
PlayerPicker() PlayerPicker()
} }
ScoreboardView() ScoreboardView("scoreboard.table.column.players") { result in
"\(result.player1) savedGames.section.finished.entry \(result.player2)"
}
} }
} }
} }

@ -11,10 +11,14 @@ struct SavedGamesView: View {
var body: some View { var body: some View {
// TODO: use the same collection view with headers instead? Or use collapsible sections? // TODO: use the same collection view with headers instead? Or use collapsible sections?
Section("savedGames.section.unfinished") { Section("savedGames.section.unfinished") {
ScoreboardView() ScoreboardView("scoreboard.table.column.players") { result in
"\(result.player1) savedGames.section.unfinished.entry \(result.player2)"
}
} }
Section("savedGames.section.finished"){ Section("savedGames.section.finished") {
ScoreboardView() ScoreboardView("scoreboard.table.column.players") { result in
"\(result.player1) savedGames.section.finished.entry \(result.player2)"
}
} }
} }
} }

@ -9,7 +9,10 @@ import SwiftUI
struct ScoreboardView: View { struct ScoreboardView: View {
@Environment(\.horizontalSizeClass) @Environment(\.horizontalSizeClass)
private var horizontalSizeClass private var horizontalSizeClass: UserInterfaceSizeClass?
private let playerRelatedColumnKey: LocalizedStringKey
private let localizedKeyProvider: (Result) -> LocalizedStringKey
@State private var unsinished = [ @State private var unsinished = [
Result(date: Date.now, player1: "P1", player2: "P2", rules: "Rule1"), Result(date: Date.now, player1: "P1", player2: "P2", rules: "Rule1"),
@ -24,7 +27,7 @@ struct ScoreboardView: View {
if horizontalSizeClass == .compact { if horizontalSizeClass == .compact {
List(self.unsinished) { result in List(self.unsinished) { result in
VStack(alignment: .center) { VStack(alignment: .center) {
Text("\(result.player1) scoreboard.column.players.entry \(result.player2)") Text(localizedKeyProvider(result))
HStack { HStack {
Text(result.date, style: .date) Text(result.date, style: .date)
Spacer() Spacer()
@ -37,15 +40,22 @@ struct ScoreboardView: View {
TableColumn("scoreboard.table.column.date") { result in TableColumn("scoreboard.table.column.date") { result in
Text(result.date, style: .date) Text(result.date, style: .date)
} }
TableColumn("scoreboard.table.column.players") { result in TableColumn(playerRelatedColumnKey) { result in
Text("\(result.player1) scoreboard.column.players.entry \(result.player2)") Text(localizedKeyProvider(result))
} }
TableColumn("scoreboard.table.column.rules", value: \.rules) TableColumn("scoreboard.table.column.rules", value: \.rules)
} }
} }
} }
public init(_ playerRelatedColumnKey: LocalizedStringKey, localizedKeyProvider: @escaping (Result) -> LocalizedStringKey) {
self.playerRelatedColumnKey = playerRelatedColumnKey
self.localizedKeyProvider = localizedKeyProvider
}
} }
#Preview { #Preview {
ScoreboardView() ScoreboardView("scoreboard.table.column.players") { result in
"\(result.player1) savedGames.section.unfinished.entry \(result.player2)"
}
} }

Loading…
Cancel
Save