parent
9bc33ef59d
commit
aee3eea20b
@ -0,0 +1,61 @@
|
||||
//
|
||||
// PlayerVSPage.swift
|
||||
// App
|
||||
//
|
||||
// Created by etudiant2 on 28/05/2025.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
import Charts
|
||||
|
||||
struct PlayerVSPage: View {
|
||||
private var chartData: [(key: LocalizedStringKey, color: Color, value: UInt)] = [
|
||||
(key: "playerVs.chart.wins \("Player 1")", color: .red, value: 1),
|
||||
(key: "playerVs.chart.wins \("Player 2")", color: .yellow, value: 2),
|
||||
(key: "playerVs.chart.draws", color: .gray, value: 3),
|
||||
]
|
||||
|
||||
var body: some View {
|
||||
VStack {
|
||||
HStack {
|
||||
PlayerPicker()
|
||||
|
||||
Spacer()
|
||||
|
||||
Chart {
|
||||
ForEach(chartData, id: \.color) { entry in
|
||||
SectorMark(angle: .value(entry.key, entry.value))
|
||||
.annotation(position: .overlay) {
|
||||
Text("\(entry.value)").font(.caption)
|
||||
}
|
||||
.foregroundStyle(entry.color)
|
||||
}
|
||||
}.frame(height: 100)
|
||||
|
||||
Spacer()
|
||||
|
||||
PlayerPicker()
|
||||
}
|
||||
|
||||
ScoreboardView()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct PlayerPicker: View {
|
||||
var body: some View {
|
||||
VStack {
|
||||
Circle().frame(width: 50, height: 50)
|
||||
|
||||
let text: String = "Button Idk"
|
||||
|
||||
Button(text) {
|
||||
//
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
PlayerVSPage()
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
//
|
||||
// ScoreboardView.swift
|
||||
// App
|
||||
//
|
||||
// Created by etudiant2 on 28/05/2025.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct ScoreboardView: View {
|
||||
@Environment(\.horizontalSizeClass)
|
||||
private var horizontalSizeClass
|
||||
|
||||
@State private var unsinished = [
|
||||
Result(date: Date.now, player1: "P1", player2: "P2", rules: "Rule1"),
|
||||
Result(date: Date.now, player1: "P2", player2: "P3", rules: "Rule2"),
|
||||
Result(date: Date.now, player1: "P3", player2: "P4", rules: "Rule3"),
|
||||
Result(date: Date.now, player1: "P4", player2: "P5", rules: "Rule4"),
|
||||
Result(date: Date.now, player1: "P5", player2: "P1", rules: "Rule5")
|
||||
];
|
||||
|
||||
var body: some View {
|
||||
// TODO: sort by date
|
||||
if horizontalSizeClass == .compact {
|
||||
List(self.unsinished) { result in
|
||||
VStack(alignment: .center) {
|
||||
Text("\(result.player1) scoreboard.column.players.entry \(result.player2)")
|
||||
HStack {
|
||||
Text(result.date, style: .date)
|
||||
Spacer()
|
||||
Text(result.rules)
|
||||
}.foregroundStyle(.secondary)
|
||||
}
|
||||
}
|
||||
} else{
|
||||
Table(self.unsinished) {
|
||||
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("scoreboard.table.column.rules", value: \.rules)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#Preview {
|
||||
ScoreboardView()
|
||||
}
|
Loading…
Reference in new issue