Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GEN-2462: Cleanup DK and NO #1439

Draft
wants to merge 19 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 12 additions & 24 deletions Projects/App/Sources/Journeys/LoginNavigation.swift
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,14 @@ struct LoginNavigation: View {
NotLoggedInView(vm: vm)
}
.detent(presented: $vm.showLanguagePicker, style: .height) {
LanguageAndMarketPickerView()
.navigationTitle(L10n.loginMarketPickerPreferences)
LanguagePickerView()
.navigationTitle(L10n.loginLanguagePreferences)
.embededInNavigation()

}
.detent(presented: $vm.showLogin, style: .large, tracking: Localization.Locale.currentLocale.market) {
Group {
switch Localization.Locale.currentLocale.market {
case .no, .dk:
OTPEntryView()
case .se:
BankIDLoginQRView {
let store: UgglanStore = globalPresentableStoreContainer.get()
Expand Down Expand Up @@ -74,8 +72,8 @@ public struct NotLoggedInView: View {
switch vm.viewState {
case .loading:
ZStack {}
case .marketAndLanguage:
marketAndLanguage
case .language:
languageView
}
}
.environment(\.colorScheme, .light)
Expand All @@ -86,24 +84,16 @@ public struct NotLoggedInView: View {
}

@ViewBuilder
var marketAndLanguage: some View {
var languageView: some View {
ZStack {
VStack {
HStack {
Spacer()
PresentableStoreLens(
MarketStore.self,
getter: { state in
state.market
}
) { market in
Button {
vm.showLanguagePicker = true
} label: {
Image(uiImage: market.icon)
.padding(.padding8)
}

Button {
vm.showLanguagePicker = true
} label: {
Image(uiImage: Localization.Locale.currentLocale.icon)
.padding(.padding8)
}

}
Expand Down Expand Up @@ -165,7 +155,7 @@ public class NotLoggedViewModel: ObservableObject {
.receive(on: RunLoop.main)
.sink { [weak self] value in
if value {
self?.viewState = .marketAndLanguage
self?.viewState = .language
self?.onLoad()
}
}
Expand Down Expand Up @@ -203,7 +193,7 @@ public class NotLoggedViewModel: ObservableObject {

enum ViewState {
case loading
case marketAndLanguage
case language
}
}

Expand Down Expand Up @@ -305,8 +295,6 @@ private class PlayerUIView: UIView {
extension Localization.Locale.Market: TrackingViewNameProtocol {
public var nameForTracking: String {
switch self {
case .no, .dk:
return .init(describing: OTPEntryView.self)
case .se:
return .init(describing: BankIDLoginQRView.self)

Expand Down
6 changes: 0 additions & 6 deletions Projects/Authentication/Sources/OTP/OTPEntryView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -53,19 +53,13 @@ class OTPEntryViewModel: ObservableObject {
weak var router: Router?
var masking: Masking {
switch Localization.Locale.currentLocale.market {
case .dk:
return Masking(type: .danishPersonalNumber)
case .no:
return Masking(type: .norwegianPersonalNumber)
case .se:
return Masking(type: .email)
}
}

var title: String {
switch Localization.Locale.currentLocale.market {
case .dk, .no:
return L10n.zignsecLoginScreenTitle
case .se:
return L10n.Login.enterYourEmailAddress
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,17 +80,13 @@ final public class AuthenticationClientAuthLib: AuthenticationClient {
public func start(with otpState: OTPState) async throws -> (verifyUrl: URL, resendUrl: URL, maskedEmail: String?) {
let personalNumber: String? = {
switch Localization.Locale.currentLocale.market {
case .no, .dk:
return otpState.input.replacingOccurrences(of: "-", with: "")
case .se:
return nil
}
}()

let email: String? = {
switch Localization.Locale.currentLocale.market {
case .no, .dk:
return nil
case .se:
return otpState.input
}
Expand Down Expand Up @@ -285,9 +281,7 @@ extension hGraphQL.Environment {
extension Localization.Locale.Market {
fileprivate var asOtpMarket: OtpMarket {
switch self {
case .no: return .no
case .se: return .se
case .dk: return .dk
}
}
}
Expand Down
60 changes: 0 additions & 60 deletions Projects/Contracts/Sources/Models/ContractModels.swift
Original file line number Diff line number Diff line change
Expand Up @@ -274,26 +274,6 @@ public struct Contract: Codable, Hashable, Equatable, Identifiable {
case seCatBasic = "SE_CAT_BASIC"
case seCatStandard = "SE_CAT_STANDARD"
case seCatPremium = "SE_CAT_PREMIUM"
case noHouse = "NO_HOUSE"
case noHomeContentOwn = "NO_HOME_CONTENT_OWN"
case noHomeContentRent = "NO_HOME_CONTENT_RENT"
case noHomeContentYouthOwn = "NO_HOME_CONTENT_YOUTH_OWN"
case noHomeContentYouthRent = "NO_HOME_CONTENT_YOUTH_RENT"
case noHomeContentStudentOwn = "NO_HOME_CONTENT_STUDENT_OWN"
case noHomeContentStudentRent = "NO_HOME_CONTENT_STUDENT_RENT"
case noTravel = "NO_TRAVEL"
case noTravelYouth = "NO_TRAVEL_YOUTH"
case noTravelStudent = "NO_TRAVEL_STUDENT"
case noAccident = "NO_ACCIDENT"
case dkHomeContentOwn = "DK_HOME_CONTENT_OWN"
case dkHomeContentRent = "DK_HOME_CONTENT_RENT"
case dkHomeContentStudentOwn = "DK_HOME_CONTENT_STUDENT_OWN"
case dkHomeContentStudentRent = "DK_HOME_CONTENT_STUDENT_RENT"
case dkHouse = "DK_HOUSE"
case dkAccident = "DK_ACCIDENT"
case dkAccidentStudent = "DK_ACCIDENT_STUDENT"
case dkTravel = "DK_TRAVEL"
case dkTravelStudent = "DK_TRAVEL_STUDENT"
case unknown = "UNKNOWN"

static func resolve(for typeOfContract: String) -> Self {
Expand Down Expand Up @@ -367,46 +347,6 @@ extension Contract.TypeOfContract {
return .cat
case .seCatPremium:
return .cat
case .noHouse:
return .villa
case .noHomeContentOwn:
return .homeOwner
case .noHomeContentRent:
return .rental
case .noHomeContentYouthOwn:
return .homeOwner
case .noHomeContentYouthRent:
return .rental
case .noHomeContentStudentOwn:
return .student
case .noHomeContentStudentRent:
return .student
case .noTravel:
return .travel
case .noTravelYouth:
return .travel
case .noTravelStudent:
return .travel
case .noAccident:
return .accident
case .dkHomeContentOwn:
return .homeOwner
case .dkHomeContentRent:
return .rental
case .dkHomeContentStudentOwn:
return .homeOwner
case .dkHomeContentStudentRent:
return .rental
case .dkHouse:
return .villa
case .dkAccident:
return .accident
case .dkAccidentStudent:
return .accident
case .dkTravel:
return .travel
case .dkTravelStudent:
return .travel
case .unknown:
return .unknown
}
Expand Down
62 changes: 12 additions & 50 deletions Projects/Market/Sources/LanguageAndMarketPickerView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,16 @@ import SwiftUI
import hCore
import hCoreUI

public struct LanguageAndMarketPickerView: View {
@StateObject private var vm = LanguageAndMarketPickerViewModel()
public struct LanguagePickerView: View {
@StateObject private var vm = LanguagePickerViewModel()
@EnvironmentObject var router: Router

public init() {}

public var body: some View {
hForm {
VStack(spacing: 8) {
hSection {
Picker("View", selection: $vm.selected) {
ForEach(LanguageAndMarketPicker.allCases) { view in
hText(view.title, style: .standardSmall).tag(view)
}
}
.pickerStyle(.segmented)
}
.sectionContainerStyle(.transparent)

ForEach(LanguageAndMarketPicker.allCases) { panel in
ForEach(LanguagePicker.allCases) { panel in
juliaendre marked this conversation as resolved.
Show resolved Hide resolved
if vm.selected == panel {
withAnimation(.easeInOut(duration: 0.4)) {
viewFor(view: panel)
Expand Down Expand Up @@ -64,38 +54,13 @@ public struct LanguageAndMarketPickerView: View {
}

@ViewBuilder
func viewFor(view: LanguageAndMarketPicker) -> some View {
func viewFor(view: LanguagePicker) -> some View {
juliaendre marked this conversation as resolved.
Show resolved Hide resolved
switch view {
case .market:
marketView
case .language:
languageView
}
}

private var marketView: some View {
hSection {
VStack(spacing: 4) {
ForEach(Market.activatedMarkets, id: \.title) { market in
hRadioField(
id: market.rawValue,
leftView: {
HStack(spacing: 16) {
Image(uiImage: market.icon)
.resizable()
.frame(width: 24, height: 24)
hText(market.title, style: .title3)
.foregroundColor(hTextColor.Opaque.primary)
}
.asAnyView
},
selected: $vm.selectedMarketCode
)
}
}
}
}

private var languageView: some View {
hSection {
VStack(spacing: 4) {
Expand All @@ -120,27 +85,27 @@ public struct LanguageAndMarketPickerView: View {
}
}

struct LanguageAndMarketPickerView_Previews: PreviewProvider {
struct LanguagePickerView_Previews: PreviewProvider {
static var previews: some View {
LanguageAndMarketPickerView()
LanguagePickerView()
}
}

class LanguageAndMarketPickerViewModel: ObservableObject {
class LanguagePickerViewModel: ObservableObject {
@Published var selectedLocale = Localization.Locale.currentLocale
@Published var selectedLocaleCode: String? = Localization.Locale.currentLocale.rawValue

@Published var selectedMarket: Market
juliaendre marked this conversation as resolved.
Show resolved Hide resolved
@Published var selectedMarketCode: String?
juliaendre marked this conversation as resolved.
Show resolved Hide resolved

@Published var trigger = LanguageAndMarketPicker.language
@Published var previous = LanguageAndMarketPicker.language
@Published var trigger = LanguagePicker.language
juliaendre marked this conversation as resolved.
Show resolved Hide resolved
@Published var previous = LanguagePicker.language
juliaendre marked this conversation as resolved.
Show resolved Hide resolved

@Published var insertion: AnyTransition = .move(edge: .leading)
@Published var removal: AnyTransition = .move(edge: .trailing)
var cancellables = Set<AnyCancellable>()

@Published var selected: LanguageAndMarketPicker = .market {
@Published var selected: LanguagePicker = .language {
juliaendre marked this conversation as resolved.
Show resolved Hide resolved
willSet {
if previous != selected {
insertion = previous.move(selected)
Expand Down Expand Up @@ -185,22 +150,19 @@ class LanguageAndMarketPickerViewModel: ObservableObject {
}
}

enum LanguageAndMarketPicker: Int, CaseIterable, Identifiable {
case market
enum LanguagePicker: Int, CaseIterable, Identifiable {
juliaendre marked this conversation as resolved.
Show resolved Hide resolved
case language

var id: Int { self.rawValue }

var title: String {
switch self {
case .market:
return L10n.MarketPickerModal.title
case .language:
return L10n.LanguagePickerModal.title
}
}

func move(_ otherPanel: LanguageAndMarketPicker) -> AnyTransition {
func move(_ otherPanel: LanguagePicker) -> AnyTransition {
return otherPanel.rawValue < self.rawValue ? .move(edge: .trailing) : .move(edge: .leading)
}
}
Loading
Loading