//
//  CurrentAccountView.swift
//  ComposeUI
//
//  Created by Shadowfacts on 3/4/23.
//

import SwiftUI
import Pachyderm
import TuskerComponents

struct CurrentAccountView: View {
    let account: (any AccountProtocol)?
    @EnvironmentObject private var controller: ComposeController
    
    var body: some View {
        controller.currentAccountContainerView(AnyView(currentAccount))
    }
    
    private var currentAccount: some View {
        HStack(alignment: .top) {
            AvatarImageView(
                url: account?.avatar,
                size: 50,
                style: controller.config.avatarStyle,
                fetchAvatar: controller.fetchAvatar
            )
            .accessibilityHidden(true)
            
            if let account {
                VStack(alignment: .leading) {
                    controller.displayNameLabel(account, .title2, 24)
                        .lineLimit(1)
                    
                    Text(verbatim: "@\(account.acct)")
                        .font(.body.weight(.light))
                        .foregroundColor(.secondary)
                        .lineLimit(1)
                }
            }
            
            Spacer()
        }
    }
}
