Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 26 additions & 1 deletion DevLog/UI/Extension/EnvironmentValues+.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,18 @@
import SwiftUI

extension EnvironmentValues {

var safeAreaInsets: EdgeInsets {
self[SafeAreaInsetsKey.self]
}

var sceneWidth: CGFloat {
self[SceneWidthKey.self]
}

var sceneHeight: CGFloat {
self[SceneHeightKey.self]
}

private struct SafeAreaInsetsKey: EnvironmentKey {
static var defaultValue: EdgeInsets {
guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene,
Expand All @@ -22,6 +29,24 @@ extension EnvironmentValues {
return window.safeAreaInsets.insets
}
}

private struct SceneWidthKey: EnvironmentKey {
static var defaultValue: CGFloat {
guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene else {
return UIScreen.main.bounds.width
}
return windowScene.screen.bounds.width
}
}

private struct SceneHeightKey: EnvironmentKey {
static var defaultValue: CGFloat {
guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene else {
return UIScreen.main.bounds.height
}
return windowScene.screen.bounds.height
}
}
}

extension UIEdgeInsets {
Expand Down
22 changes: 0 additions & 22 deletions DevLog/UI/Extension/View+.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,6 @@
import SwiftUI

extension View {
var sceneWidth: CGFloat {
guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene
else { return UIScreen.main.bounds.width }

return windowScene.screen.bounds.width
}

var sceneHeight: CGFloat {
guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene
else { return UIScreen.main.bounds.height }

return windowScene.screen.bounds.height
}

var safeAreaInsets: UIEdgeInsets {
guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene,
let window = windowScene.windows.first
else { return UIEdgeInsets.zero }

return window.safeAreaInsets
}

@ViewBuilder
func adaptiveButtonStyle(_ color: Color? = nil) -> some View {
if #available(iOS 26.0, *), color == nil {
Expand Down
1 change: 1 addition & 0 deletions DevLog/UI/Home/HomeView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import SwiftUI

struct HomeView: View {
@Environment(\.diContainer) var container: any DIContainer
@Environment(\.sceneWidth) var sceneWidth: CGFloat
@StateObject private var router = NavigationRouter()
@StateObject var viewModel: HomeViewModel

Expand Down
1 change: 1 addition & 0 deletions DevLog/UI/Home/TodoEditorView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import SwiftUI

struct TodoEditorView: View {
@StateObject var viewModel: TodoEditorViewModel
@Environment(\.safeAreaInsets) private var safeAreaInsets
@Environment(\.dismiss) private var dismiss
@FocusState private var field: Field?
@State private var showDueDatePicker: Bool = false
Expand Down
1 change: 1 addition & 0 deletions DevLog/UI/Login/LoginView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import SwiftUI
struct LoginView: View {
@StateObject var viewModel: LoginViewModel
@Environment(\.colorScheme) var colorScheme
@Environment(\.sceneWidth) var sceneWidth

var body: some View {
ZStack {
Expand Down