Skip to content

Commit

Permalink
fix: order grid vertical or horizontal
Browse files Browse the repository at this point in the history
fix: update grid layout on the fly

fix: order grid vertical or horizontal
  • Loading branch information
hasansultan92 committed Sep 14, 2024
1 parent b6db8ad commit 6075047
Showing 1 changed file with 30 additions and 29 deletions.
59 changes: 30 additions & 29 deletions DockDoor/Views/Hover Window/WindowPreviewHoverContainer.swift
Original file line number Diff line number Diff line change
Expand Up @@ -45,31 +45,6 @@ struct WindowPreviewHoverContainer: View {
return CGPoint(x: maxWidth, y: maxHeight)
}

var isVerticalGrid: Bool {
if mouseLocation != nil, dockPosition == .left || dockPosition == .right {
true
} else {
false
}
}

var scrollDirection: Axis.Set {
.vertical
}

var gridLayout: [GridItem] {
let availablePixels = isVerticalGrid ? bestGuessMonitor.visibleFrame.height - 15 : bestGuessMonitor.visibleFrame.width - 15
let maxColumnWidth = maxWindowDimension.x
var numberOfColumns = 0
let maxNumberOfColumns = Int(availablePixels / maxColumnWidth)
if windows.count < maxNumberOfColumns {
numberOfColumns = windows.count
} else {
numberOfColumns = maxNumberOfColumns
}
return Array(repeating: GridItem(.flexible(), spacing: 16), count: numberOfColumns)
}

var body: some View {
ZStack {
if let mouseLocation {
Expand All @@ -78,7 +53,7 @@ struct WindowPreviewHoverContainer: View {
}

ScrollViewReader { scrollProxy in
ScrollView(scrollDirection, showsIndicators: false) {
ScrollView(.vertical, showsIndicators: false) {
windowPreviewGrid
.padding(14)
.onAppear {
Expand Down Expand Up @@ -111,12 +86,12 @@ struct WindowPreviewHoverContainer: View {

private var windowPreviewGrid: some View {
Group {
if isVerticalGrid {
LazyHGrid(rows: gridLayout, spacing: 16) {
if GridLayoutVertical() {
LazyHGrid(rows: calculateGridInfo(), spacing: 16) {
gridContent
}
} else {
LazyVGrid(columns: gridLayout, spacing: 16) {
LazyVGrid(columns: calculateGridInfo(), spacing: 16) {
gridContent
}
}
Expand Down Expand Up @@ -252,4 +227,30 @@ struct WindowPreviewHoverContainer: View {
}
}
}

private func GridLayoutVertical() -> Bool {
var isVerticalGrid = false
if windowSwitcherCoordinator.windowSwitcherActive {
isVerticalGrid = false
} else if mouseLocation != nil, dockPosition == .left || dockPosition == .right {
isVerticalGrid = true
} else if mouseLocation != nil, dockPosition == .bottom || dockPosition == .top {
isVerticalGrid = false
}
return isVerticalGrid
}

private func calculateGridInfo() -> [GridItem] {
let isVerticalGrid = GridLayoutVertical()
let availablePixels = isVerticalGrid ? bestGuessMonitor.visibleFrame.height - 15 : bestGuessMonitor.visibleFrame.width - 15
let maxColumnWidth = isVerticalGrid ? maxWindowDimension.y : maxWindowDimension.x
var numberOfColumns = 0
let maxNumberOfColumns = Int(availablePixels / maxColumnWidth)
if windows.count < maxNumberOfColumns {
numberOfColumns = windows.count
} else {
numberOfColumns = maxNumberOfColumns
}
return Array(repeating: GridItem(.flexible(), spacing: 16), count: numberOfColumns)
}
}

0 comments on commit 6075047

Please sign in to comment.