1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-08-07 03:50:08 +02:00

🏗️ Layout changes

This commit is contained in:
2023-01-03 20:15:44 +01:00
parent e20d3ffd22
commit 5af7214320

View File

@ -22,11 +22,11 @@ struct ServicesView: View {
)
let view = NSHostingView(rootView: rootView)
view.autoresizingMask = [.width, .height]
view.autoresizingMask = [.width]
view.setFrameSize(
CGSize(width: view.frame.width, height: rootView.height + 30)
)
view.layer?.backgroundColor = CGColor.init(red: 255, green: 0, blue: 0, alpha: 0)
view.layer?.backgroundColor = CGColor.init(red: 255, green: 0, blue: 0, alpha: 1)
view.focusRingType = .none
item.view = view
@ -35,27 +35,36 @@ struct ServicesView: View {
@ObservedObject var manager: ServicesManager
var perRow: Int
var rowCount: Int
var rowSpacing: Int = 2
var rowHeight: Int = 40
var statusHeight: Int = 30
var height: CGFloat
var chunkCount: Int
init(manager: ServicesManager, perRow: Int, height: CGFloat? = nil) {
init(manager: ServicesManager, perRow: Int) {
self.manager = manager
self.perRow = perRow
self.chunkCount = manager.serviceWrappers.chunked(by: perRow).count
self.height = CGFloat(40 * chunkCount + 25)
self.rowCount = manager.serviceWrappers.chunked(by: perRow).count
self.height = CGFloat(
(rowHeight * rowCount)
+ ((rowCount - 1) * rowSpacing)
+ statusHeight
)
}
var body: some View {
VStack {
VStack(alignment: .leading) {
VStack(spacing: 0) {
VStack(alignment: .leading, spacing: CGFloat(self.rowSpacing)) {
ForEach(manager.serviceWrappers.chunked(by: perRow), id: \.self) { chunk in
HStack {
ForEach(chunk) { service in
ServiceView(service: service).frame(minWidth: 70)
ServiceView(service: service)
.frame(minWidth: 70)
}
}
.frame(height: CGFloat(self.rowHeight))
.padding(CGFloat(self.rowSpacing))
}
}
.frame(height: self.height)
.frame(maxWidth: .infinity, alignment: .center)
@ -70,7 +79,7 @@ struct ServicesView: View {
.font(.system(size: 12))
}
}
.frame(height: 25)
.frame(height: CGFloat(self.statusHeight))
.frame(maxWidth: .infinity, alignment: .center)
}
}