Scoreboard reusable view column fix

main
Mathieu GROUSSEAU 3 weeks ago
parent 5b1d9d78fe
commit d1afadd571

@ -1,7 +1,23 @@
{
"sourceLanguage" : "en",
"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" : {
"en" : {
"stringUnit" : {
@ -584,4 +600,4 @@
}
},
"version" : "1.0"
}
}

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

@ -36,8 +36,10 @@ struct PlayerVSPage: View {
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 {
// TODO: use the same collection view with headers instead? Or use collapsible sections?
Section("savedGames.section.unfinished") {
ScoreboardView()
ScoreboardView("scoreboard.table.column.players") { result in
"\(result.player1) savedGames.section.unfinished.entry \(result.player2)"
}
}
Section("savedGames.section.finished"){
ScoreboardView()
Section("savedGames.section.finished") {
ScoreboardView("scoreboard.table.column.players") { result in
"\(result.player1) savedGames.section.finished.entry \(result.player2)"
}
}
}
}

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

Loading…
Cancel
Save