import ComponentLibrary
import ComposableArchitecture
import FeatureOnboardingModels
import Foundation
import Localization
import SwiftUI

public struct NameEntryScreen: View {
    @Bindable var store: StoreOf<NameEntry>

    public init(store: StoreOf<NameEntry>) {
        self.store = store
    }

    public var body: some View {
        DataEntryScreen(
            title: L10n.FeatureOnboarding.nameEntryNavigationTitle,
            buttonTitle: L10n.FeatureOnboarding.next,
            placeholder: L10n.FeatureOnboarding.nameEntryPlaceholder,
            autofillContentType: .name,
            isWorking: store.isWorking,
            value: $store.value,
            focused: $store.isFocused.sending(\.setFocus),
            action: { store.send(.updateNameTapped) },
            cancel: { store.send(.delegate(.backTapped)) },
            showSkip: false
        )
        .alert($store.scope(state: \.alert, action: \.alert))
        .onAppear { store.send(.onAppear) }
    }
}
