Revision control
Copy as Markdown
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
import SwiftUI
import ComponentLibrary
import Common
public struct TermsOfServiceView<VM: OnboardingCardInfoModelProtocol>: View {
@State private var textColor: Color = .clear
@State private var secondaryTextColor: Color = .clear
@State private var cardBackgroundColor: Color = .clear
@State private var secondaryActionColor: Color = .clear
@StateObject private var viewModel: TosFlowViewModel<VM>
@Environment(\.horizontalSizeClass)
private var horizontalSizeClass
let windowUUID: WindowUUID
var themeManager: ThemeManager
public let onEmbededLinkAction: (TosAction) -> Void
public init(
viewModel: TosFlowViewModel<VM>,
windowUUID: WindowUUID,
themeManager: ThemeManager,
onEmbededLinkAction: @escaping (TosAction) -> Void
) {
self._viewModel = StateObject(wrappedValue: viewModel)
self.windowUUID = windowUUID
self.themeManager = themeManager
self.onEmbededLinkAction = onEmbededLinkAction
}
// MARK: - Body
public var body: some View {
Group {
if horizontalSizeClass == .regular {
termsOfServiceViewRegular
} else {
termsOfServiceViewCompact
}
}
}
// MARK: - iPad Layout
private var termsOfServiceViewRegular: some View {
TermsOfServiceRegularView(
viewModel: viewModel,
windowUUID: windowUUID,
themeManager: themeManager,
onEmbededLinkAction: onEmbededLinkAction
)
}
// MARK: - iPhone Layout
private var termsOfServiceViewCompact: some View {
TermsOfServiceCompactView(
viewModel: viewModel,
windowUUID: windowUUID,
themeManager: themeManager,
onEmbededLinkAction: onEmbededLinkAction
)
}
}