mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 19:44:05 +00:00
Fix MediaFileRoomTimelineContent tap gesture taking over media event timeline taps.
This commit is contained in:
committed by
Stefan Ceriu
parent
b0f4f42ff2
commit
13875e61f8
+1
-2
@@ -12,8 +12,7 @@ struct AudioMediaEventsTimelineView: View {
|
|||||||
let timelineItem: AudioRoomTimelineItem
|
let timelineItem: AudioRoomTimelineItem
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
MediaFileRoomTimelineContent(timelineItemID: timelineItem.id,
|
MediaFileRoomTimelineContent(filename: timelineItem.content.filename,
|
||||||
filename: timelineItem.content.filename,
|
|
||||||
fileSize: timelineItem.content.fileSize,
|
fileSize: timelineItem.content.fileSize,
|
||||||
caption: timelineItem.content.caption,
|
caption: timelineItem.content.caption,
|
||||||
formattedCaption: timelineItem.content.formattedCaption,
|
formattedCaption: timelineItem.content.formattedCaption,
|
||||||
|
|||||||
+1
-2
@@ -12,8 +12,7 @@ struct FileMediaEventsTimelineView: View {
|
|||||||
let timelineItem: FileRoomTimelineItem
|
let timelineItem: FileRoomTimelineItem
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
MediaFileRoomTimelineContent(timelineItemID: timelineItem.id,
|
MediaFileRoomTimelineContent(filename: timelineItem.content.filename,
|
||||||
filename: timelineItem.content.filename,
|
|
||||||
fileSize: timelineItem.content.fileSize,
|
fileSize: timelineItem.content.fileSize,
|
||||||
caption: timelineItem.content.caption,
|
caption: timelineItem.content.caption,
|
||||||
formattedCaption: timelineItem.content.formattedCaption,
|
formattedCaption: timelineItem.content.formattedCaption,
|
||||||
|
|||||||
+6
-4
@@ -9,18 +9,20 @@ import Foundation
|
|||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
struct AudioRoomTimelineView: View {
|
struct AudioRoomTimelineView: View {
|
||||||
|
@Environment(\.timelineContext) private var context
|
||||||
let timelineItem: AudioRoomTimelineItem
|
let timelineItem: AudioRoomTimelineItem
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
TimelineStyler(timelineItem: timelineItem) {
|
TimelineStyler(timelineItem: timelineItem) {
|
||||||
MediaFileRoomTimelineContent(timelineItemID: timelineItem.id,
|
MediaFileRoomTimelineContent(filename: timelineItem.content.filename,
|
||||||
filename: timelineItem.content.filename,
|
|
||||||
fileSize: timelineItem.content.fileSize,
|
fileSize: timelineItem.content.fileSize,
|
||||||
caption: timelineItem.content.caption,
|
caption: timelineItem.content.caption,
|
||||||
formattedCaption: timelineItem.content.formattedCaption,
|
formattedCaption: timelineItem.content.formattedCaption,
|
||||||
additionalWhitespaces: timelineItem.additionalWhitespaces(),
|
additionalWhitespaces: timelineItem.additionalWhitespaces(),
|
||||||
isAudioFile: true)
|
isAudioFile: true) {
|
||||||
.accessibilityLabel(L10n.commonAudio)
|
context?.send(viewAction: .mediaTapped(itemID: timelineItem.id))
|
||||||
|
}
|
||||||
|
.accessibilityLabel(L10n.commonAudio)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+17
-12
@@ -9,17 +9,19 @@ import Compound
|
|||||||
import SwiftUI
|
import SwiftUI
|
||||||
|
|
||||||
struct FileRoomTimelineView: View {
|
struct FileRoomTimelineView: View {
|
||||||
|
@Environment(\.timelineContext) private var context
|
||||||
let timelineItem: FileRoomTimelineItem
|
let timelineItem: FileRoomTimelineItem
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
TimelineStyler(timelineItem: timelineItem) {
|
TimelineStyler(timelineItem: timelineItem) {
|
||||||
MediaFileRoomTimelineContent(timelineItemID: timelineItem.id,
|
MediaFileRoomTimelineContent(filename: timelineItem.content.filename,
|
||||||
filename: timelineItem.content.filename,
|
|
||||||
fileSize: timelineItem.content.fileSize,
|
fileSize: timelineItem.content.fileSize,
|
||||||
caption: timelineItem.content.caption,
|
caption: timelineItem.content.caption,
|
||||||
formattedCaption: timelineItem.content.formattedCaption,
|
formattedCaption: timelineItem.content.formattedCaption,
|
||||||
additionalWhitespaces: timelineItem.additionalWhitespaces())
|
additionalWhitespaces: timelineItem.additionalWhitespaces()) {
|
||||||
.accessibilityLabel(L10n.commonFile)
|
context?.send(viewAction: .mediaTapped(itemID: timelineItem.id))
|
||||||
|
}
|
||||||
|
.accessibilityLabel(L10n.commonFile)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -27,9 +29,6 @@ struct FileRoomTimelineView: View {
|
|||||||
// MARK: Content
|
// MARK: Content
|
||||||
|
|
||||||
struct MediaFileRoomTimelineContent: View {
|
struct MediaFileRoomTimelineContent: View {
|
||||||
@Environment(\.timelineContext) private var context
|
|
||||||
|
|
||||||
let timelineItemID: TimelineItemIdentifier
|
|
||||||
let filename: String
|
let filename: String
|
||||||
let fileSize: UInt?
|
let fileSize: UInt?
|
||||||
let caption: String?
|
let caption: String?
|
||||||
@@ -37,16 +36,22 @@ struct MediaFileRoomTimelineContent: View {
|
|||||||
let additionalWhitespaces: Int
|
let additionalWhitespaces: Int
|
||||||
var isAudioFile = false
|
var isAudioFile = false
|
||||||
|
|
||||||
var icon: KeyPath<CompoundIcons, Image> {
|
var onMediaTap: (() -> Void)? = nil
|
||||||
|
|
||||||
|
private var icon: KeyPath<CompoundIcons, Image> {
|
||||||
isAudioFile ? \.audio : \.attachment
|
isAudioFile ? \.audio : \.attachment
|
||||||
}
|
}
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
VStack(alignment: .leading, spacing: 8) {
|
VStack(alignment: .leading, spacing: 8) {
|
||||||
filePreview
|
if let onMediaTap {
|
||||||
.onTapGesture {
|
filePreview
|
||||||
context?.send(viewAction: .mediaTapped(itemID: timelineItemID))
|
.onTapGesture {
|
||||||
}
|
onMediaTap()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
filePreview
|
||||||
|
}
|
||||||
|
|
||||||
if let formattedCaption {
|
if let formattedCaption {
|
||||||
FormattedBodyText(attributedString: formattedCaption,
|
FormattedBodyText(attributedString: formattedCaption,
|
||||||
|
|||||||
Reference in New Issue
Block a user