diff --git a/apps/ios/Shared/Views/Chat/ComposeMessage/ComposeLinkView.swift b/apps/ios/Shared/Views/Chat/ComposeMessage/ComposeLinkView.swift index 66cb9edcf8..f7f1a89299 100644 --- a/apps/ios/Shared/Views/Chat/ComposeMessage/ComposeLinkView.swift +++ b/apps/ios/Shared/Views/Chat/ComposeMessage/ComposeLinkView.swift @@ -55,7 +55,7 @@ struct ComposeLinkView: View { .foregroundColor(theme.colors.secondary) } .padding(.vertical, 5) - .frame(maxWidth: .infinity, minHeight: 60, maxHeight: 60) + .frame(maxWidth: .infinity, minHeight: 60) } } } diff --git a/apps/ios/SimpleX SE/ShareView.swift b/apps/ios/SimpleX SE/ShareView.swift index 51a2f1f3a4..1f502ffcff 100644 --- a/apps/ios/SimpleX SE/ShareView.swift +++ b/apps/ios/SimpleX SE/ShareView.swift @@ -132,7 +132,7 @@ struct ShareView: View { switch content { case let .image(preview, _): imagePreview(preview) case let .movie(preview, _, _): imagePreview(preview) - case let .url(linkPreview): imagePreview(linkPreview.image) + case let .url(preview): linkPreview(preview) case let .data(cryptoFile): previewArea { Image(systemName: "doc.fill") @@ -160,6 +160,29 @@ struct ShareView: View { } } + @ViewBuilder private func linkPreview(_ linkPreview: LinkPreview) -> some View { + previewArea { + HStack(alignment: .center, spacing: 8) { + if let uiImage = UIImage(base64Encoded: linkPreview.image) { + Image(uiImage: uiImage) + .resizable() + .aspectRatio(contentMode: .fit) + .frame(maxWidth: 80, maxHeight: 60) + } + VStack(alignment: .center, spacing: 4) { + Text(linkPreview.title) + .lineLimit(1) + Text(linkPreview.uri.absoluteString) + .font(.caption) + .lineLimit(1) + .foregroundColor(.secondary) + } + .padding(.vertical, 5) + .frame(maxWidth: .infinity, minHeight: 60) + } + } + } + @ViewBuilder private func previewArea(@ViewBuilder content: @escaping () -> V) -> some View { HStack(alignment: .center, spacing: 8) { content()