Only set edit-stuff once (#1276)

This commit is contained in:
Nathan Mattes 2024-04-21 13:27:12 +02:00
parent 099411b435
commit 409fade845
2 changed files with 19 additions and 24 deletions

View File

@ -51,30 +51,24 @@ final class ProfileHeaderViewModel {
self.account = account
self.me = me
self.relationship = relationship
$accountForEdit
.receive(on: DispatchQueue.main)
.sink { [weak self] account in
guard let self = self else { return }
guard let account = account else { return }
// banner
self.profileInfo.header = nil
self.profileInfoEditing.header = nil
// avatar
self.profileInfo.avatar = nil
self.profileInfoEditing.avatar = nil
// name
let name = account.displayNameWithFallback
self.profileInfo.name = name
self.profileInfoEditing.name = name
// bio
let note = ProfileHeaderViewModel.normalize(note: account.note)
self.profileInfo.note = note
self.profileInfoEditing.note = note
}
.store(in: &disposeBag)
}
public func setProfileInfo(accountForEdit: Mastodon.Entity.Account) {
// banner
profileInfo.header = nil
profileInfoEditing.header = nil
// avatar
profileInfo.avatar = nil
profileInfoEditing.avatar = nil
let name = account.displayNameWithFallback
profileInfo.name = name
profileInfoEditing.name = name
// bio
let note = ProfileHeaderViewModel.normalize(note: account.note)
profileInfo.note = note
profileInfoEditing.note = note
}
}
extension ProfileHeaderViewModel {

View File

@ -794,8 +794,9 @@ extension ProfileViewController: ProfileHeaderViewControllerDelegate {
profileAboutViewModel.isEditing = true
}
} receiveValue: { [weak self] response in
guard let self = self else { return }
self.viewModel.accountForEdit = response.value
guard let self else { return }
self.profileHeaderViewController.viewModel.setProfileInfo(accountForEdit: response.value)
}
.store(in: &disposeBag)
} else if isEdited == false {