mastodon-ios/Mastodon/Scene/Discovery/ForYou/ProfileCardView+Configurati...

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)
}
}