view LazyBear/Views/Onboarding/Helpers/Avatar.swift @ 319:62d278295bb7

Sign Up View implemented
author Dennis Concepción Martín <66180929+denniscm190@users.noreply.github.com>
date Sat, 27 Mar 2021 20:26:15 +0100
parents e7c3d68d8e22
children e828c2b0764c
line wrap: on
line source

//
//  Avatar.swift
//  LazyBear
//
//  Created by Dennis Concepción Martín on 26/3/21.
//

import SwiftUI

struct Avatar: View {
    @EnvironmentObject var firstAvatar: FirstAvatar
    
    var body: some View {
        VStack {
            Image("head")
                .componentModifier()
                .overlay(
                    ZStack {
                        Image(firstAvatar.body)
                            .componentModifier()
                            .colorMultiply(Color(firstAvatar.bodyColor))

                        Image(firstAvatar.hair)
                            .componentModifier()
                            .colorMultiply(Color(firstAvatar.hairColor))
                        
                        Image(firstAvatar.eyes)
                            .componentModifier()
                        
                        Image(firstAvatar.nose)
                            .componentModifier()
                        
                        Image(firstAvatar.mouth)
                            .componentModifier()
                    }
                )
        }
        .padding()
        .background(
            Circle()
                .foregroundColor(Color(firstAvatar.background))
        )
    }
}
extension Image {
    func componentModifier() -> some View {
        self
            .resizable()
            .aspectRatio(contentMode: .fit)
    }
}

struct Avatar_Previews: PreviewProvider {
    static var previews: some View {
        Avatar()
            .environmentObject(FirstAvatar())
    }
}