MediaTimelinePreviewDetails can now be opened by long pressing in the media timeline (#4474)

* presenting media actions from the media timeline

* implemented view in timeline and fixed an issue that made dark mode being when trying to delete the file

* pr suggestions
This commit is contained in:
Mauro
2025-09-05 15:30:36 +02:00
committed by GitHub
parent 5be7967f94
commit eee11ed67c
12 changed files with 148 additions and 48 deletions
@@ -11,11 +11,21 @@ import SwiftUI
struct TimelineMediaPreviewDetailsView: View {
let item: TimelineMediaPreviewItem.Media
@ObservedObject var context: TimelineMediaPreviewViewModel.Context
var preferredColorScheme: ColorScheme? = .dark
@Binding var sheetHeight: CGFloat
private let topPadding: CGFloat = 19
var body: some View {
if let preferredColorScheme {
mainContent
.preferredColorScheme(preferredColorScheme)
} else {
mainContent
}
}
private var mainContent: some View {
ScrollView {
VStack(alignment: .leading, spacing: 0) {
details
@@ -29,9 +39,10 @@ struct TimelineMediaPreviewDetailsView: View {
.presentationDetents([.height(sheetHeight + topPadding)])
.presentationDragIndicator(.visible)
.presentationBackground(.compound.bgCanvasDefault)
.preferredColorScheme(.dark)
.sheet(item: $context.redactConfirmationItem) { item in
TimelineMediaPreviewRedactConfirmationView(item: item, context: context)
TimelineMediaPreviewRedactConfirmationView(item: item,
context: context,
preferredColorScheme: preferredColorScheme)
}
}
@@ -13,11 +13,21 @@ struct TimelineMediaPreviewRedactConfirmationView: View {
let item: TimelineMediaPreviewItem.Media
@ObservedObject var context: TimelineMediaPreviewViewModel.Context
var preferredColorScheme: ColorScheme? = .dark
@State private var sheetHeight: CGFloat = .zero
private let topPadding: CGFloat = 19
var body: some View {
if let preferredColorScheme {
mainContent
.preferredColorScheme(preferredColorScheme)
} else {
mainContent
}
}
private var mainContent: some View {
ScrollView {
VStack(spacing: 0) {
header
@@ -31,7 +41,6 @@ struct TimelineMediaPreviewRedactConfirmationView: View {
.presentationDetents([.height(sheetHeight + topPadding)])
.presentationDragIndicator(.visible)
.presentationBackground(.compound.bgCanvasDefault)
.preferredColorScheme(.dark)
}
private var header: some View {