Fix iOS table rendering issue

main
Mathieu GROUSSEAU 1 month ago
parent 9dd6cc6797
commit 9bc33ef59d

@ -9,6 +9,7 @@ import SwiftUI
struct SavedGamesView: View { struct SavedGamesView: View {
var body: some View { var body: some View {
// TODO: use the same collection view with headers instead? Or use collapsible sections?
ScoreTable(key: "savedGames.section.unfinished") ScoreTable(key: "savedGames.section.unfinished")
ScoreTable(key: "savedGames.section.finished") ScoreTable(key: "savedGames.section.finished")
} }
@ -17,22 +18,41 @@ struct SavedGamesView: View {
struct ScoreTable: View { struct ScoreTable: View {
let key: LocalizedStringKey let key: LocalizedStringKey
@Environment(\.horizontalSizeClass)
private var horizontalSizeClass
@State private var unsinished = [ @State private var unsinished = [
Result(date: "D1", player1: "P1", player2: "P2", rules: "Rule1"), Result(date: Date.now, player1: "P1", player2: "P2", rules: "Rule1"),
Result(date: "D2", player1: "P2", player2: "P3", rules: "Rule2"), Result(date: Date.now, player1: "P2", player2: "P3", rules: "Rule2"),
Result(date: "D3", player1: "P3", player2: "P4", rules: "Rule3"), Result(date: Date.now, player1: "P3", player2: "P4", rules: "Rule3"),
Result(date: "D4", player1: "P4", player2: "P5", rules: "Rule4"), Result(date: Date.now, player1: "P4", player2: "P5", rules: "Rule4"),
Result(date: "D5", player1: "P5", player2: "P1", rules: "Rule5") Result(date: Date.now, player1: "P5", player2: "P1", rules: "Rule5")
]; ];
var body: some View { var body: some View {
Section(self.key) { Section(self.key) {
Table(self.unsinished) { // TODO: sort by date
TableColumn("savedGames.table.column.date", value: \.date) if horizontalSizeClass == .compact {
TableColumn("savedGames.table.column.players") { result in List(self.unsinished) { result in
Text("\(result.player1) savedGames.table.column.players.entry \(result.player2)") VStack(alignment: .center) {
Text("\(result.player1) savedGames.table.column.players.entry \(result.player2)")
HStack {
Text(result.date, style: .date)
Spacer()
Text(result.rules)
}.foregroundStyle(.secondary)
}
}
} else{
Table(self.unsinished) {
TableColumn("savedGames.table.column.date") { result in
Text(result.date, style: .date)
}
TableColumn("savedGames.table.column.players") { result in
Text("\(result.player1) savedGames.table.column.players.entry \(result.player2)")
}
TableColumn("savedGames.table.column.rules", value: \.rules)
} }
TableColumn("savedGames.table.column.rules", value: \.rules)
} }
} }
} }
@ -41,7 +61,7 @@ struct ScoreTable: View {
struct Result: Identifiable { struct Result: Identifiable {
let id = UUID() let id = UUID()
let date: String let date: Date
let player1: String let player1: String
let player2: String let player2: String
let rules: String let rules: String

Loading…
Cancel
Save