22 lines
636 B
Swift
22 lines
636 B
Swift
|
|
import SwiftUI
|
||
|
|
|
||
|
|
struct AvatarView: View {
|
||
|
|
let name: String
|
||
|
|
var color: Color = SIO.tint
|
||
|
|
var size: CGFloat = 30
|
||
|
|
|
||
|
|
var body: some View {
|
||
|
|
Text(initials)
|
||
|
|
.font(.system(size: size * 0.42, weight: .semibold, design: .rounded))
|
||
|
|
.foregroundStyle(.white)
|
||
|
|
.frame(width: size, height: size)
|
||
|
|
.background(color, in: Circle())
|
||
|
|
.overlay(Circle().strokeBorder(.white.opacity(0.16), lineWidth: 1))
|
||
|
|
}
|
||
|
|
|
||
|
|
private var initials: String {
|
||
|
|
let parts = name.split(separator: " ")
|
||
|
|
return String(parts.prefix(2).compactMap { $0.first }).uppercased()
|
||
|
|
}
|
||
|
|
}
|