52 lines
1.7 KiB
Swift
52 lines
1.7 KiB
Swift
//
|
|
// ProfileCardView+Configuration.swift
|
|
//
|
|
//
|
|
// Created by MainasuK on 2022-4-14.
|
|
//
|
|
|
|
import Foundation
|
|
import Combine
|
|
import CoreDataStack
|
|
import Meta
|
|
import MastodonCore
|
|
import MastodonMeta
|
|
import MastodonSDK
|
|
|
|
extension ProfileCardView {
|
|
|
|
public func configure(account: Mastodon.Entity.Account, relationship: Mastodon.Entity.Relationship?) {
|
|
viewModel.authorBannerImageURL = URL(string: account.header)
|
|
viewModel.statusesCount = account.statusesCount
|
|
viewModel.followingCount = account.followingCount
|
|
viewModel.followersCount = account.followersCount
|
|
viewModel.authorAvatarImageURL = account.avatarImageURL()
|
|
|
|
let emojis = account.emojis?.asDictionary ?? [:]
|
|
|
|
do {
|
|
let content = MastodonContent(content: account.displayNameWithFallback, emojis: emojis)
|
|
let metaContent = try MastodonMetaContent.convert(document: content)
|
|
viewModel.authorName = metaContent
|
|
} catch {
|
|
assertionFailure(error.localizedDescription)
|
|
let metaContent = PlaintextMetaContent(string: account.displayNameWithFallback)
|
|
viewModel.authorName = metaContent
|
|
}
|
|
|
|
viewModel.authorUsername = account.acct
|
|
|
|
do {
|
|
let content = MastodonContent(content: account.note, emojis: emojis)
|
|
let metaContent = try MastodonMetaContent.convert(document: content)
|
|
viewModel.bioContent = metaContent
|
|
} catch {
|
|
assertionFailure(error.localizedDescription)
|
|
let metaContent = PlaintextMetaContent(string: account.note)
|
|
viewModel.bioContent = metaContent
|
|
}
|
|
|
|
updateButtonState(with: relationship, isMe: false)
|
|
}
|
|
}
|