130 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
			
		
		
	
	
			130 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Swift
		
	
	
	
	
	
//
 | 
						|
//  BottomTabView.swift
 | 
						|
//  SodaLive
 | 
						|
//
 | 
						|
//  Created by klaus on 2023/08/09.
 | 
						|
//
 | 
						|
 | 
						|
import SwiftUI
 | 
						|
 | 
						|
struct BottomTabView: View {
 | 
						|
    let width: CGFloat
 | 
						|
    @Binding var currentTab: HomeViewModel.CurrentTab
 | 
						|
    
 | 
						|
    var body: some View {
 | 
						|
        HStack(spacing: 0) {
 | 
						|
            let tabWidth = width / 4
 | 
						|
            
 | 
						|
            TabButton(
 | 
						|
                title: "콘텐츠",
 | 
						|
                action: {
 | 
						|
                    if currentTab != .content {
 | 
						|
                        currentTab = .content
 | 
						|
                    }
 | 
						|
                },
 | 
						|
                image: {
 | 
						|
                    currentTab == .content ?
 | 
						|
                    "ic_tabbar_content_selected" :
 | 
						|
                    "ic_tabbar_content_normal"
 | 
						|
                },
 | 
						|
                fontName: {
 | 
						|
                    currentTab == .content ?
 | 
						|
                    Font.bold.rawValue :
 | 
						|
                    Font.medium.rawValue
 | 
						|
                },
 | 
						|
                color: {
 | 
						|
                    currentTab == .content ?
 | 
						|
                    Color.button :
 | 
						|
                    Color.graybb
 | 
						|
                },
 | 
						|
                width: tabWidth
 | 
						|
            )
 | 
						|
            
 | 
						|
            TabButton(
 | 
						|
                title: "라이브",
 | 
						|
                action: {
 | 
						|
                    if currentTab != .live {
 | 
						|
                        currentTab = .live
 | 
						|
                    }
 | 
						|
                },
 | 
						|
                image: {
 | 
						|
                    currentTab == .live ?
 | 
						|
                    "ic_tabbar_live_selected" :
 | 
						|
                    "ic_tabbar_live_normal"
 | 
						|
                },
 | 
						|
                fontName: {
 | 
						|
                    currentTab == .live ?
 | 
						|
                    Font.bold.rawValue :
 | 
						|
                    Font.medium.rawValue
 | 
						|
                },
 | 
						|
                color: {
 | 
						|
                    currentTab == .live ?
 | 
						|
                    Color.button :
 | 
						|
                    Color.graybb
 | 
						|
                },
 | 
						|
                width: tabWidth
 | 
						|
            )
 | 
						|
            
 | 
						|
            TabButton(
 | 
						|
                title: "오디션",
 | 
						|
                action: {
 | 
						|
                    if currentTab != .audition {
 | 
						|
                        currentTab = .audition
 | 
						|
                    }
 | 
						|
                },
 | 
						|
                image: {
 | 
						|
                    currentTab == .audition ?
 | 
						|
                    "ic_tabbar_audition_selected" :
 | 
						|
                    "ic_tabbar_audition_normal"
 | 
						|
                },
 | 
						|
                fontName: {
 | 
						|
                    currentTab == .audition ?
 | 
						|
                    Font.bold.rawValue :
 | 
						|
                    Font.medium.rawValue
 | 
						|
                },
 | 
						|
                color: {
 | 
						|
                    currentTab == .audition ?
 | 
						|
                    Color.button :
 | 
						|
                    Color.graybb
 | 
						|
                },
 | 
						|
                width: tabWidth
 | 
						|
            )
 | 
						|
            
 | 
						|
            TabButton(
 | 
						|
                title: "마이",
 | 
						|
                action: {
 | 
						|
                    if currentTab != .mypage {
 | 
						|
                        currentTab = .mypage
 | 
						|
                    }
 | 
						|
                },
 | 
						|
                image: {
 | 
						|
                    currentTab == .mypage ?
 | 
						|
                    "ic_tabbar_my_selected" :
 | 
						|
                    "ic_tabbar_my_normal"
 | 
						|
                },
 | 
						|
                fontName: {
 | 
						|
                    currentTab == .mypage ?
 | 
						|
                    Font.bold.rawValue :
 | 
						|
                    Font.medium.rawValue
 | 
						|
                },
 | 
						|
                color: {
 | 
						|
                    currentTab == .mypage ?
 | 
						|
                    Color.button :
 | 
						|
                    Color.graybb
 | 
						|
                },
 | 
						|
                width: tabWidth
 | 
						|
            )
 | 
						|
        }
 | 
						|
        .background(Color.gray11)
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
struct BottomTabView_Previews: PreviewProvider {
 | 
						|
    static var previews: some View {
 | 
						|
        BottomTabView(
 | 
						|
            width: UIScreen.main.bounds.width,
 | 
						|
            currentTab: .constant(.live)
 | 
						|
        )
 | 
						|
    }
 | 
						|
}
 |