mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-31 21:59:10 +08:00
b6de0ad51b
#### PR Dependency Tree * **PR #15538** 👈 This tree was auto-generated by [Charcoal](https://github.com/danerwilliams/charcoal) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added rich link previews to mobile and iOS sharing, including images, metadata, transcripts, and selected text. * Share imports can now create structured content blocks, embeds, bookmarks, and transcript callouts. * Added workspace-aware preview handling for cloud, self-hosted, and signed-out modes. * **Accessibility** * Improved collapse/expand controls with semantic buttons and ARIA relationships. * **Bug Fixes** * Enhanced URL and error sanitization in server logs. * Improved link-preview CORS support, validation, and request handling. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
86 lines
1.9 KiB
Swift
86 lines
1.9 KiB
Swift
import Foundation
|
|
|
|
struct ShareInboxAttachment: Codable, Equatable {
|
|
var fileName: String
|
|
var mimeType: String
|
|
var relativePath: String
|
|
}
|
|
|
|
enum ShareInboxContentKind: String, Codable {
|
|
case url
|
|
case text
|
|
case image
|
|
}
|
|
|
|
struct ShareInboxContent: Codable, Equatable {
|
|
var kind: ShareInboxContentKind
|
|
var url: String?
|
|
var text: String?
|
|
}
|
|
|
|
struct ShareInboxTarget: Codable, Equatable {
|
|
var workspaceId: String
|
|
var workspaceFlavour: String
|
|
var tagIds: [String]
|
|
var collectionId: String?
|
|
}
|
|
|
|
struct ShareInboxResult: Codable, Equatable {
|
|
var docId: String
|
|
var committedAt: Date
|
|
}
|
|
|
|
struct ShareInboxItem: Codable, Equatable, Identifiable {
|
|
var id: String
|
|
var documentId: String
|
|
var createdAt: Date
|
|
var title: String
|
|
var content: ShareInboxContent
|
|
var previewRoute: SharePreviewRoute?
|
|
var target: ShareInboxTarget?
|
|
var previewText: String?
|
|
var attachments: [ShareInboxAttachment]
|
|
var result: ShareInboxResult?
|
|
var lastError: String?
|
|
|
|
init(
|
|
id: String = UUID().uuidString,
|
|
documentId: String = UUID().uuidString,
|
|
createdAt: Date = Date(),
|
|
title: String,
|
|
content: ShareInboxContent,
|
|
previewRoute: SharePreviewRoute? = nil,
|
|
target: ShareInboxTarget? = nil,
|
|
previewText: String? = nil,
|
|
attachments: [ShareInboxAttachment] = [],
|
|
result: ShareInboxResult? = nil,
|
|
lastError: String? = nil
|
|
) {
|
|
self.id = id
|
|
self.documentId = documentId
|
|
self.createdAt = createdAt
|
|
self.title = title
|
|
self.content = content
|
|
self.previewRoute = previewRoute
|
|
self.target = target
|
|
self.previewText = previewText
|
|
self.attachments = attachments
|
|
self.result = result
|
|
self.lastError = lastError
|
|
}
|
|
}
|
|
|
|
struct SharePayloadFile: Equatable {
|
|
var data: Data
|
|
var mimeType: String
|
|
var fileName: String
|
|
}
|
|
|
|
struct SharePayloadDraft: Equatable {
|
|
var title: String
|
|
var content: ShareInboxContent?
|
|
var previewText: String
|
|
var file: SharePayloadFile?
|
|
var errorMessage: String?
|
|
}
|