Move timeline item tap gestures to the items themselves instead of the bubbled styler (#3553)

* Stop observing the timeline context where not necessary.
* Rename the timeline `itemTapped` action to `mediaTapped`
This commit is contained in:
Stefan Ceriu
2024-11-26 16:25:46 +02:00
committed by GitHub
parent 3f0f442937
commit 36980840ed
13 changed files with 53 additions and 29 deletions
@@ -13,7 +13,8 @@ struct FileRoomTimelineView: View {
var body: some View {
TimelineStyler(timelineItem: timelineItem) {
MediaFileRoomTimelineContent(filename: timelineItem.content.filename,
MediaFileRoomTimelineContent(timelineItemID: timelineItem.id,
filename: timelineItem.content.filename,
fileSize: timelineItem.content.fileSize,
caption: timelineItem.content.caption,
formattedCaption: timelineItem.content.formattedCaption,
@@ -26,6 +27,9 @@ struct FileRoomTimelineView: View {
// MARK: Content
struct MediaFileRoomTimelineContent: View {
@Environment(\.timelineContext) private var context
let timelineItemID: TimelineItemIdentifier
let filename: String
let fileSize: UInt?
let caption: String?
@@ -40,6 +44,9 @@ struct MediaFileRoomTimelineContent: View {
var body: some View {
VStack(alignment: .leading, spacing: 8) {
filePreview
.onTapGesture {
context?.send(viewAction: .mediaTapped(itemID: timelineItemID))
}
if let formattedCaption {
FormattedBodyText(attributedString: formattedCaption,