Skip to content

Commit 858cc4c

Browse files
authored
Merge pull request #183 from makinosp/feature/screen-size
Feature/screen-size
2 parents 32af72a + 9efaf83 commit 858cc4c

File tree

8 files changed

+46
-48
lines changed

8 files changed

+46
-48
lines changed

harmonie/Components/GradientOverlayImageView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ struct GradientOverlayImageView<TopContent, BottomContent>: View where TopConten
1414
@Init(.internal) private let imageUrl: URL?
1515
@Init(.internal, default: nil) private let thumbnailImageUrl: URL?
1616
@Init(.internal) private let height: CGFloat
17-
@Init(.internal, default: WindowUtil.width) private let maxWidth: CGFloat
17+
@Init(.internal) private let maxWidth: CGFloat
1818
@Init(.internal, default: Gradient(colors: [.black.opacity(0.5), .clear])) private let gradient: Gradient
1919
@Init(.internal, default: { EmptyView() }, escaping: true) private let topContent: () -> TopContent
2020
@Init(.internal, default: { EmptyView() }, escaping: true) private let bottomContent: () -> BottomContent
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
//
2+
// GeometryProxy+Equatable.swift
3+
// Harmonie
4+
//
5+
// Created by makinosp on 2024/11/04.
6+
//
7+
8+
import SwiftUICore
9+
10+
extension GeometryProxy: @retroactive Equatable {
11+
public static func == (lhs: GeometryProxy, rhs: GeometryProxy) -> Bool {
12+
lhs.size == rhs.size && lhs.safeAreaInsets == rhs.safeAreaInsets
13+
}
14+
}

harmonie/Utils/WindowUtil.swift

Lines changed: 0 additions & 26 deletions
This file was deleted.

harmonie/ViewModels/AppViewModel.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ final class AppViewModel {
1717
var applicationError: ApplicationError?
1818
var services: APIServiceUtil
1919
var verifyType: VerifyType?
20+
var screenSize: CGSize = .zero
2021
@ObservationIgnored var client: APIClient
2122
@ObservationIgnored let userDefaults: UserDefaults
2223

harmonie/Views/ContentView.swift

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,28 @@ struct ContentView: View {
1212
@Environment(AppViewModel.self) var appVM
1313

1414
var body: some View {
15-
switch appVM.step {
16-
case .initializing:
17-
ProgressScreen()
18-
.task {
19-
appVM.step = await appVM.setup(service: appVM.services.authenticationService)
15+
GeometryReader { geometry in
16+
Group {
17+
switch appVM.step {
18+
case .initializing:
19+
ProgressScreen()
20+
.task {
21+
appVM.step = await appVM.setup(service: appVM.services.authenticationService)
22+
}
23+
.errorAlert()
24+
case .loggingIn:
25+
LoginView()
26+
.errorAlert()
27+
case .done:
28+
MainTabView()
29+
.environment(FriendViewModel(appVM: appVM))
30+
.environment(FavoriteViewModel())
31+
.errorAlert()
2032
}
21-
.errorAlert()
22-
case .loggingIn:
23-
LoginView()
24-
.errorAlert()
25-
case .done:
26-
MainTabView()
27-
.environment(FriendViewModel(appVM: appVM))
28-
.environment(FavoriteViewModel())
29-
.errorAlert()
33+
}
34+
.onChange(of: geometry) {
35+
appVM.screenSize = geometry.size
36+
}
3037
}
3138
}
3239
}

harmonie/Views/Location/LocationsView.swift

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ struct LocationsView: View {
5050
}
5151
}
5252
.navigationTitle("Social")
53-
.setColumn()
53+
.setColumn(appVM.screenSize)
5454
}
5555

5656
private var content: some View {
@@ -67,7 +67,7 @@ struct LocationsView: View {
6767
}
6868
}
6969
.background(Color(.systemGroupedBackground))
70-
.setColumn()
70+
.setColumn(appVM.screenSize)
7171
}
7272

7373
private var detail: some View {
@@ -89,7 +89,7 @@ struct LocationsView: View {
8989
}
9090
}
9191
.background(Color(.systemGroupedBackground))
92-
.setColumn()
92+
.setColumn(appVM.screenSize)
9393
}
9494

9595
private var friendLocations: some View {
@@ -154,11 +154,11 @@ extension Location {
154154
}
155155

156156
private extension View {
157-
func setColumn() -> some View {
157+
func setColumn(_ screenSize: CGSize) -> some View {
158158
navigationSplitViewColumnWidth(
159-
min: WindowUtil.width * 1 / 3,
160-
ideal: WindowUtil.width * 1 / 3,
161-
max: WindowUtil.width / 2
159+
min: screenSize.width * 1 / 3,
160+
ideal: screenSize.width * 1 / 3,
161+
max: screenSize.width / 2
162162
)
163163
}
164164
}

harmonie/Views/UserDetail/UserDetailView.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ struct UserDetailView: View {
3131
imageUrl: user.imageUrl(.x1024),
3232
thumbnailImageUrl: user.imageUrl(.x256),
3333
height: 250,
34+
maxWidth: appVM.screenSize.width,
3435
topContent: { topOverlay },
3536
bottomContent: { bottomOverlay }
3637
)

harmonie/Views/World/WorldView.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ struct WorldView: View {
2222
imageUrl: world.imageUrl(.x1024),
2323
thumbnailImageUrl: world.imageUrl(.x256),
2424
height: 250,
25+
maxWidth: appVM.screenSize.width,
2526
topContent: { topOverlay },
2627
bottomContent: { bottomOverlay }
2728
)

0 commit comments

Comments
 (0)