Fix image sizing

This commit is contained in:
Thomas Ricouard 2024-01-10 16:50:18 +01:00
parent 0da8228e61
commit af2a69fdb1
3 changed files with 18 additions and 7 deletions

View file

@ -13,6 +13,10 @@ private struct IsCompact: EnvironmentKey {
static let defaultValue: Bool = false
}
private struct IsModal: EnvironmentKey {
static let defaultValue: Bool = false
}
private struct IsInCaptureMode: EnvironmentKey {
static let defaultValue: Bool = false
}
@ -49,6 +53,11 @@ public extension EnvironmentValues {
set { self[IsCompact.self] = newValue }
}
var isModal: Bool {
get { self[IsModal.self] }
set { self[IsModal.self] = newValue }
}
var isInCaptureMode: Bool {
get { self[IsInCaptureMode.self] }
set { self[IsInCaptureMode.self] = newValue }

View file

@ -134,6 +134,7 @@ extension StatusEditor {
.environment(RouterPath())
.allowsHitTesting(false)
.environment(\.isStatusFocused, false)
.environment(\.isModal, true)
.padding(.horizontal, .layoutPadding)
.padding(.vertical, .statusComponentSpacing)

View file

@ -8,7 +8,6 @@ import SwiftUI
@MainActor
public struct StatusRowMediaPreviewView: View {
@Environment(\.isPresented) private var isPresented
@Environment(\.openWindow) private var openWindow
@Environment(\.extraLeadingInset) private var extraLeadingInset: CGFloat
@Environment(\.isCompact) private var isCompact: Bool
@ -32,11 +31,7 @@ public struct StatusRowMediaPreviewView: View {
{
return sceneDelegate.windowWidth * 0.80
}
if isPresented && UIDevice.current.userInterfaceIdiom == .pad {
return sceneDelegate.windowWidth * 0.50
} else {
return sceneDelegate.windowWidth
}
return sceneDelegate.windowWidth
#endif
}
@ -189,6 +184,7 @@ private struct MediaPreview: View {
}
}
@MainActor
private struct FeaturedImagePreView: View {
let attachment: MediaAttachment
let imageMaxHeight: CGFloat
@ -200,6 +196,7 @@ private struct FeaturedImagePreView: View {
@Environment(\.isSecondaryColumn) private var isSecondaryColumn: Bool
@Environment(Theme.self) private var theme
@Environment(\.isCompact) private var isCompact: Bool
@Environment(\.isModal) private var isModal: Bool
var body: some View {
let size: CGSize = size(for: attachment) ?? .init(width: imageMaxHeight, height: imageMaxHeight)
@ -260,7 +257,11 @@ private struct FeaturedImagePreView: View {
return .init(width: imageMaxHeight, height: imageMaxHeight)
}
let boxWidth = availableWidth - appLayoutWidth
var boxWidth = availableWidth - appLayoutWidth
if isModal &&
(UIDevice.current.userInterfaceIdiom == .pad || UIDevice.current.userInterfaceIdiom == .mac) {
boxWidth = availableWidth * 0.50
}
let boxHeight = availableHeight * 0.8 // use only 80% of window height to leave room for text
if from.width <= boxWidth, from.height <= boxHeight {