Files
letro-ios/ElementX/Sources/Screens/LinkNewDeviceScreen/LinkNewDeviceScreenModels.swift
Doug 8e6f9f482b Lock the Link New Device flow to portrait and improve Cancel/Try Again handling. (#5094)
* Lock the LinkNewDeviceScreen to portrait.

* Add cancel buttons to the QR Code errors and handle cancel/startOver correctly.

* Use the shared QRCodeErrorView in the LinkNewDeviceScreen.

* Clarify the different QR Error/ErrorStates a bit more.

* Update snapshots.
2026-02-12 11:21:24 +00:00

34 lines
829 B
Swift

//
// Copyright 2025 Element Creations Ltd.
//
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
// Please see LICENSE files in the repository root for full details.
//
import Foundation
enum LinkNewDeviceScreenViewModelAction {
case linkMobileDevice(LinkNewDeviceService.LinkMobileProgressPublisher)
case linkDesktopComputer
case dismiss
}
struct LinkNewDeviceScreenViewState: BindableState {
enum Mode: Equatable {
case loading
case readyToLink(isGeneratingCode: Bool)
case error(QRCodeLoginState.ErrorState)
}
var mode: Mode = .loading
let showLinkDesktopComputerButton: Bool
}
enum LinkNewDeviceScreenViewAction {
case linkMobileDevice
case linkDesktopComputer
case errorAction(QRCodeErrorView.Action)
case dismiss
}