// // Copyright 2025 Element Creations Ltd. // Copyright 2022-2025 New Vector Ltd. // // SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial. // Please see LICENSE files in the repository root for full details. // import Combine import Foundation enum EncryptionResetScreenViewModelAction { case requestPassword(passwordPublisher: PassthroughSubject) case requestOIDCAuthorisation(url: URL) case resetFinished case cancel } struct EncryptionResetScreenViewState: BindableState { private let listItem3AttributedText = { let boldPlaceholder = "{bold}" var finalString = AttributedString(L10n.screenCreateNewRecoveryKeyListItem3(boldPlaceholder)) var boldString = AttributedString(L10n.screenCreateNewRecoveryKeyListItem3ResetAll) boldString.bold() finalString.replace(boldPlaceholder, with: boldString) return finalString }() var listItems: [AttributedString] { [ AttributedString(L10n.screenCreateNewRecoveryKeyListItem1(InfoPlistReader.main.productionAppName)), AttributedString(L10n.screenCreateNewRecoveryKeyListItem2), listItem3AttributedText, AttributedString(L10n.screenCreateNewRecoveryKeyListItem4), AttributedString(L10n.screenCreateNewRecoveryKeyListItem5) ] } var bindings: EncryptionResetScreenViewStateBindings } struct EncryptionResetScreenViewStateBindings { var alertInfo: AlertInfo? } enum EncryptionResetScreenViewAction { case reset case cancel }