IceCubesApp/Packages/DesignSystem/Sources/DesignSystem/Views/EmojiText.swift

31 lines
759 B
Swift
Raw Normal View History

import EmojiText
2023-01-17 10:36:01 +00:00
import Foundation
import HTML2Markdown
2023-01-17 10:36:01 +00:00
import Models
import SwiftUI
public struct EmojiTextApp: View {
private let markdown: String
private let emojis: [any CustomEmoji]
private let append: (() -> Text)?
2023-01-17 10:36:01 +00:00
public init(_ markdown: HTMLString, emojis: [Emoji], append: (() -> Text)? = nil) {
self.markdown = markdown
self.emojis = emojis.map { RemoteEmoji(shortcode: $0.shortcode, url: $0.url) }
self.append = append
}
2023-01-17 10:36:01 +00:00
public var body: some View {
if let append {
EmojiText(markdown: markdown, emojis: emojis)
.append {
append()
}
} else if emojis.isEmpty {
Text(markdown.asSafeAttributedString)
} else {
EmojiText(markdown: markdown, emojis: emojis)
}
}
}