Tusker/Tusker/Screens/Preferences/LocalAccountAvatarView.swift

48 lines
1.3 KiB
Swift

//
// LocalAccountAvatarView.swift
// Tusker
//
// Created by Shadowfacts on 5/10/20.
// Copyright © 2020 Shadowfacts. All rights reserved.
//
import SwiftUI
struct LocalAccountAvatarView: View {
let localAccountInfo: LocalData.UserAccountInfo
@State
var avatarImage: UIImage? = nil
var body: some View {
let image: Image
if avatarImage == nil {
image = Image(systemName: "person.crop.square")
} else {
image = Image(uiImage: self.avatarImage!).renderingMode(.original)
}
return image
.resizable()
.frame(width: 30, height: 30)
.onAppear(perform: self.loadImage)
}
func loadImage() {
let controller = MastodonController.getForAccount(localAccountInfo)
controller.getOwnAccount { (account) in
_ = ImageCache.avatars.get(account.avatar) { (data) in
if let data = data, let image = UIImage(data: data) {
DispatchQueue.main.async {
self.avatarImage = image
}
}
}
}
}
}
//struct LocalAccountAvatarView_Previews: PreviewProvider {
// static var previews: some View {
// LocalAccountAvatarView()
// }
//}