feat: overview items count

This commit is contained in:
mrFq1
2023-05-29 20:31:32 +08:00
parent 4e738d8ea3
commit 94b6a3fe45

View File

@@ -11,14 +11,14 @@ struct OverviewView: View {
@EnvironmentObject var data: ClashOverviewData
@State private var columnCount: Int = 4
var body: some View {
VStack(spacing: 25) {
LazyVGrid(columns: Array(repeating: GridItem(.flexible(minimum: 155)), count: 4)) {
LazyVGrid(columns: Array(repeating: GridItem(.flexible()), count: columnCount)) {
OverviewTopItemView(name: "Upload", value: $data.uploadString)
OverviewTopItemView(name: "Download", value: $data.downloadString)
@@ -28,6 +28,20 @@ struct OverviewView: View {
OverviewTopItemView(name: "Active Connections", value: $data.activeConns)
OverviewTopItemView(name: "Memory Usage", value: $data.memory)
}
.background {
GeometryReader { geometry in
Rectangle()
.fill(.clear)
.frame(height: 1)
.onChange(of: geometry.size.width) { newValue in
updateColumnCount(newValue)
}
.onAppear {
updateColumnCount(geometry.size.width)
}
}.padding()
}
@@ -53,6 +67,15 @@ struct OverviewView: View {
}.padding()
}
func updateColumnCount(_ width: Double) {
let v = Int(Int(width) / 155)
let new = v == 0 ? 1 : v
if new != columnCount {
columnCount = new
}
}
}
//struct OverviewView_Previews: PreviewProvider {