Fix collapsed sheets on macOS across the app

Add macOS-only minimum frame sizing to sheets that wrap a
NavigationStack/Form without intrinsic size, so they render properly
instead of collapsing to just the toolbar. Affects Customize Home,
subscription/channel view options, playlist create/edit, search
filters, media browser options, instance picker, log filters, preset
editor, and legacy data import result.
This commit is contained in:
Arkadiusz Fal
2026-04-19 11:33:16 +02:00
parent 80942dba69
commit 181cf2f73a
11 changed files with 33 additions and 0 deletions

View File

@@ -155,6 +155,9 @@ struct ViewOptionsSheet: View {
.presentationDetents([.height(260)])
.presentationDragIndicator(.visible)
#endif
#if os(macOS)
.frame(minWidth: 420, minHeight: 320)
#endif
}
}

View File

@@ -118,6 +118,9 @@ struct HomeView: View {
}
}
}
#if os(macOS)
.frame(minWidth: 500, minHeight: 450)
#endif
}
#endif
.onAppear {

View File

@@ -32,6 +32,9 @@ struct MediaBrowserViewOptionsSheet: View {
.presentationDetents([.height(280)])
.presentationDragIndicator(.visible)
#endif
#if os(macOS)
.frame(minWidth: 420, minHeight: 320)
#endif
.onAppear {
// Reset sort order if current selection is not available for this source type
if !availableSortOptions.contains(sortOrder) {

View File

@@ -89,6 +89,9 @@ struct PlaylistFormSheet: View {
#if os(iOS)
.presentationDetents([.medium])
#endif
#if os(macOS)
.frame(minWidth: 500, minHeight: 400)
#endif
}
// MARK: - Form Content

View File

@@ -1476,6 +1476,9 @@ struct SearchFiltersSheet: View {
}
}
}
#if os(macOS)
.frame(minWidth: 500, minHeight: 400)
#endif
}
}

View File

@@ -65,6 +65,9 @@ struct InstancePickerSheet: View {
}
}
.presentationDetents([.medium, .large])
#if os(macOS)
.frame(minWidth: 450, minHeight: 500)
#endif
}
}

View File

@@ -219,6 +219,9 @@ struct LegacyDataImportView: View {
.padding()
.interactiveDismissDisabled()
}
#if os(macOS)
.frame(minWidth: 500, minHeight: 450)
#endif
}
// MARK: - Actions

View File

@@ -308,6 +308,9 @@ private struct LogFiltersSheet: View {
}
}
.presentationDetents([.medium])
#if os(macOS)
.frame(minWidth: 500, minHeight: 500)
#endif
}
private func binding(for category: LogCategory) -> Binding<Bool> {

View File

@@ -145,6 +145,9 @@ struct PresetEditorView: View {
#if os(iOS)
.presentationDetents([.medium])
#endif
#if os(macOS)
.frame(minWidth: 500, minHeight: 350)
#endif
}
private func saveIfValid() {

View File

@@ -189,6 +189,9 @@ struct ManageChannelsView: View {
#endif
#endif
}
#if os(macOS)
.frame(minWidth: 500, minHeight: 400)
#endif
.presentationDetents([.height(360), .large])
.presentationDragIndicator(.visible)
.liquidGlassSheetContent(sourceID: "manageChannelsViewOptions", in: sheetTransition)

View File

@@ -341,6 +341,9 @@ struct SubscriptionsView: View {
#endif
#endif
}
#if os(macOS)
.frame(minWidth: 500, minHeight: 450)
#endif
.presentationDetents([.height(420), .large])
.presentationDragIndicator(.visible)
.liquidGlassSheetContent(sourceID: "subscriptionsViewOptions", in: sheetTransition)