Compare commits
2 Commits
nprofile-q
...
hidden-lin
| Author | SHA1 | Date | |
|---|---|---|---|
|
a8b6b5f10e
|
|||
|
1bedb6b2bd
|
@@ -73,15 +73,40 @@ struct NoteContentView: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var preview: LinkViewRepresentable? {
|
var preview: LinkViewRepresentable? {
|
||||||
guard !blur_images,
|
guard case .loaded(let preview) = preview_model.state,
|
||||||
case .loaded(let preview) = preview_model.state,
|
|
||||||
case .value(let cached) = preview else {
|
case .value(let cached) = preview else {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If either
|
||||||
|
// (1) the blur images setting is enabled
|
||||||
|
// (2) the media previews setting is disabled
|
||||||
|
// (3) this note content view does not display media
|
||||||
|
// then do not show media in the link preview.
|
||||||
|
if blur_images || !damus_state.settings.media_previews || self.options.contains(.no_media) {
|
||||||
|
return linkPreviewWithNoMedia(cached)
|
||||||
|
}
|
||||||
|
|
||||||
|
// If media is already being shown, do not show media in the link preview
|
||||||
|
// to avoid taking up additional screen space.
|
||||||
|
if case let .separated(separated) = note_artifacts, !separated.media.isEmpty && !self.options.contains(.no_media) {
|
||||||
|
return linkPreviewWithNoMedia(cached)
|
||||||
|
}
|
||||||
|
|
||||||
return LinkViewRepresentable(meta: .linkmeta(cached))
|
return LinkViewRepresentable(meta: .linkmeta(cached))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Creates a LinkViewRepresentable without media previews.
|
||||||
|
func linkPreviewWithNoMedia(_ cached: CachedMetadata) -> LinkViewRepresentable? {
|
||||||
|
let linkMetadata = LPLinkMetadata()
|
||||||
|
|
||||||
|
linkMetadata.originalURL = cached.meta.originalURL
|
||||||
|
linkMetadata.title = cached.meta.title
|
||||||
|
linkMetadata.url = cached.meta.url
|
||||||
|
|
||||||
|
return LinkViewRepresentable(meta: .linkmeta(CachedMetadata(meta: linkMetadata)))
|
||||||
|
}
|
||||||
|
|
||||||
func truncatedText(content: CompatibleText) -> some View {
|
func truncatedText(content: CompatibleText) -> some View {
|
||||||
Group {
|
Group {
|
||||||
if truncate_very_short {
|
if truncate_very_short {
|
||||||
@@ -108,7 +133,7 @@ struct NoteContentView: View {
|
|||||||
|
|
||||||
func previewView(links: [URL]) -> some View {
|
func previewView(links: [URL]) -> some View {
|
||||||
Group {
|
Group {
|
||||||
if let preview = self.preview, !blur_images {
|
if let preview = self.preview {
|
||||||
if let preview_height {
|
if let preview_height {
|
||||||
preview
|
preview
|
||||||
.frame(height: preview_height)
|
.frame(height: preview_height)
|
||||||
@@ -181,7 +206,7 @@ struct NoteContentView: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if damus_state.settings.media_previews, has_previews {
|
if has_previews {
|
||||||
if with_padding {
|
if with_padding {
|
||||||
previewView(links: artifacts.links).padding(.horizontal)
|
previewView(links: artifacts.links).padding(.horizontal)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user