MainTabRow.swift 41 lignes · 1105 octets
import SwiftUI

// Port of ui/nav/MainTabRow.kt — editorial Carnet | Projets tabs,
// no Material navigation bar.

enum MainTab: CaseIterable {
    case carnet
    case projets

    var label: String {
        switch self {
        case .carnet: return "Carnet"
        case .projets: return "Projets"
        }
    }
}

struct MainTabRow: View {
    let current: MainTab
    let onSelect: (MainTab) -> Void

    var body: some View {
        HStack(spacing: 4) {
            ForEach(MainTab.allCases, id: \.self) { tab in
                let selected = tab == current
                Button {
                    onSelect(tab)
                } label: {
                    Text(tab.label)
                        .font(selected ? C2VFont.labelLarge : C2VFont.labelMedium)
                        .foregroundColor(selected ? C2VColor.ink : C2VColor.texteFaible)
                        .padding(.vertical, 8)
                        .padding(.horizontal, 8)
                }
                .buttonStyle(.plain)
            }
            Spacer()
        }
        .frame(maxWidth: .infinity)
    }
}