Update template screen naming. (#824)

Update the script too.
This commit is contained in:
Doug 2023-04-24 15:03:46 +01:00 committed by GitHub
parent e81d515f7d
commit 50f674a111
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 43 additions and 39 deletions

View File

@ -100,9 +100,9 @@ class MockScreen: Identifiable {
credentials: credentials,
keyBackupNeeded: false))
case .simpleRegular:
return TemplateCoordinator(parameters: .init(promptType: .regular))
return TemplateScreenCoordinator(parameters: .init(promptType: .regular))
case .simpleUpgrade:
return TemplateCoordinator(parameters: .init(promptType: .upgrade))
return TemplateScreenCoordinator(parameters: .init(promptType: .upgrade))
case .home:
let navigationStackCoordinator = NavigationStackCoordinator()
let session = MockUserSession(clientProxy: MockClientProxy(userID: "@mock:matrix.org"),

View File

@ -17,31 +17,31 @@
import Combine
import SwiftUI
struct TemplateCoordinatorParameters {
let promptType: TemplatePromptType
struct TemplateScreenCoordinatorParameters {
let promptType: TemplateScreenPromptType
}
enum TemplateCoordinatorAction {
enum TemplateScreenCoordinatorAction {
case accept
case cancel
// Consider adding CustomStringConvertible conformance if the actions contain PII
}
final class TemplateCoordinator: CoordinatorProtocol {
private let parameters: TemplateCoordinatorParameters
private var viewModel: TemplateViewModelProtocol
private let actionsSubject: PassthroughSubject<TemplateCoordinatorAction, Never> = .init()
final class TemplateScreenCoordinator: CoordinatorProtocol {
private let parameters: TemplateScreenCoordinatorParameters
private var viewModel: TemplateScreenViewModelProtocol
private let actionsSubject: PassthroughSubject<TemplateScreenCoordinatorAction, Never> = .init()
private var cancellables: Set<AnyCancellable> = .init()
var actions: AnyPublisher<TemplateCoordinatorAction, Never> {
var actions: AnyPublisher<TemplateScreenCoordinatorAction, Never> {
actionsSubject.eraseToAnyPublisher()
}
init(parameters: TemplateCoordinatorParameters) {
init(parameters: TemplateScreenCoordinatorParameters) {
self.parameters = parameters
viewModel = TemplateViewModel(promptType: parameters.promptType)
viewModel = TemplateScreenViewModel(promptType: parameters.promptType)
}
func start() {

View File

@ -16,12 +16,12 @@
import Foundation
enum TemplatePromptType {
enum TemplateScreenPromptType {
case regular
case upgrade
}
extension TemplatePromptType: Identifiable, CaseIterable {
extension TemplateScreenPromptType: Identifiable, CaseIterable {
var id: Self { self }
var title: String {
@ -43,19 +43,19 @@ extension TemplatePromptType: Identifiable, CaseIterable {
}
}
enum TemplateViewModelAction {
enum TemplateScreenViewModelAction {
case accept
case cancel
// Consider adding CustomStringConvertible conformance if the actions contain PII
}
struct TemplateViewState: BindableState {
var promptType: TemplatePromptType
struct TemplateScreenViewState: BindableState {
var promptType: TemplateScreenPromptType
var count: Int
}
enum TemplateViewAction {
enum TemplateScreenViewAction {
case incrementCount
case decrementCount
case accept

View File

@ -17,22 +17,22 @@
import Combine
import SwiftUI
typealias TemplateViewModelType = StateStoreViewModel<TemplateViewState, TemplateViewAction>
typealias TemplateScreenViewModelType = StateStoreViewModel<TemplateScreenViewState, TemplateScreenViewAction>
class TemplateViewModel: TemplateViewModelType, TemplateViewModelProtocol {
private var actionsSubject: PassthroughSubject<TemplateViewModelAction, Never> = .init()
class TemplateScreenViewModel: TemplateScreenViewModelType, TemplateScreenViewModelProtocol {
private var actionsSubject: PassthroughSubject<TemplateScreenViewModelAction, Never> = .init()
var actions: AnyPublisher<TemplateViewModelAction, Never> {
var actions: AnyPublisher<TemplateScreenViewModelAction, Never> {
actionsSubject.eraseToAnyPublisher()
}
init(promptType: TemplatePromptType, initialCount: Int = 0) {
super.init(initialViewState: TemplateViewState(promptType: promptType, count: 0))
init(promptType: TemplateScreenPromptType, initialCount: Int = 0) {
super.init(initialViewState: TemplateScreenViewState(promptType: promptType, count: 0))
}
// MARK: - Public
override func process(viewAction: TemplateViewAction) {
override func process(viewAction: TemplateScreenViewAction) {
switch viewAction {
case .accept:
actionsSubject.send(.accept)

View File

@ -17,7 +17,7 @@
import Combine
@MainActor
protocol TemplateViewModelProtocol {
var actions: AnyPublisher<TemplateViewModelAction, Never> { get }
var context: TemplateViewModelType.Context { get }
protocol TemplateScreenViewModelProtocol {
var actions: AnyPublisher<TemplateScreenViewModelAction, Never> { get }
var context: TemplateScreenViewModelType.Context { get }
}

View File

@ -23,7 +23,7 @@ struct TemplateScreen: View {
colorScheme == .light ? .element.secondaryContent : .element.tertiaryContent
}
@ObservedObject var context: TemplateViewModel.Context
@ObservedObject var context: TemplateScreenViewModel.Context
var body: some View {
ScrollView {
@ -92,9 +92,9 @@ struct TemplateScreen: View {
// MARK: - Previews
struct Template_Previews: PreviewProvider {
static let regularViewModel = TemplateViewModel(promptType: .regular)
static let upgradeViewModel = TemplateViewModel(promptType: .upgrade)
struct TemplateScreen_Previews: PreviewProvider {
static let regularViewModel = TemplateScreenViewModel(promptType: .regular)
static let upgradeViewModel = TemplateScreenViewModel(promptType: .upgrade)
static var previews: some View {
TemplateScreen(context: regularViewModel.context)
.previewDisplayName("Regular")

View File

@ -24,14 +24,14 @@ class TemplateScreenViewModelTests: XCTestCase {
static let counterInitialValue = 0
}
var viewModel: TemplateViewModelProtocol!
var viewModel: TemplateScreenViewModelProtocol!
var context: TemplateViewModelType.Context {
var context: TemplateScreenViewModelType.Context {
viewModel.context
}
override func setUpWithError() throws {
viewModel = TemplateViewModel(promptType: .regular, initialCount: Constants.counterInitialValue)
viewModel = TemplateScreenViewModel(promptType: .regular, initialCount: Constants.counterInitialValue)
}
func testInitialState() {

View File

@ -1,11 +1,15 @@
#!/bin/bash
if [ ! $# -eq 2 ]; then
echo "Usage: ./createScreen.sh Folder MyScreenName"
GREEN='\033[0;32m'
NOCOLOR='\033[0m'
if [ ! $# -eq 1 ]; then
echo -e "Usage: ${GREEN}./createScreen.sh Name${NOCOLOR}"
echo -e "For example ${GREEN}./createScreen.sh Home${NOCOLOR} will create ${GREEN}HomeScreen${NOCOLOR}"
exit 1
fi
SCREENS_DIR="../../ElementX/Sources/Screens"/$1
SCREENS_DIR="../../ElementX/Sources/Screens"/$1Screen
UI_TESTS_DIR="../../UITests/Sources"
UNIT_TESTS_DIR="../../UnitTests/Sources"
@ -28,7 +32,7 @@ cp -R "Templates/SimpleScreenExample/Tests/UI/" $UI_TESTS_DIR/
cp -R "Templates/SimpleScreenExample/Tests/Unit/" $UNIT_TESTS_DIR/
SCREEN_NAME=$2
SCREEN_NAME=$1
SCREEN_VAR_NAME=`echo $SCREEN_NAME | awk '{ print tolower(substr($0, 1, 1)) substr($0, 2) }'`
function rename_files {