46 lines
1.1 KiB
Swift
46 lines
1.1 KiB
Swift
//
|
|
// AnnouncementContentTextView.swift
|
|
// Tusker
|
|
//
|
|
// Created by Shadowfacts on 4/16/24.
|
|
// Copyright © 2024 Shadowfacts. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
import Pachyderm
|
|
import WebURL
|
|
|
|
class AnnouncementContentTextView: ContentTextView {
|
|
|
|
var heightChanged: ((CGFloat) -> Void)?
|
|
|
|
private var announcement: Announcement?
|
|
|
|
override func layoutSubviews() {
|
|
super.layoutSubviews()
|
|
|
|
heightChanged?(contentSize.height)
|
|
}
|
|
|
|
func setTextFrom(announcement: Announcement, content: NSAttributedString) {
|
|
self.announcement = announcement
|
|
self.attributedText = content
|
|
setEmojis(announcement.emojis, identifier: announcement.id)
|
|
}
|
|
|
|
override func getMention(for url: URL, text: String) -> Mention? {
|
|
announcement?.mentions.first {
|
|
URL($0.url) == url
|
|
}.map {
|
|
Mention(url: $0.url, username: $0.username, acct: $0.acct, id: $0.id)
|
|
}
|
|
}
|
|
|
|
override func getHashtag(for url: URL, text: String) -> Hashtag? {
|
|
announcement?.tags.first {
|
|
URL($0.url) == url
|
|
}
|
|
}
|
|
|
|
}
|