From 480ad52f60cadecb23673d20201cb4551bf19932 Mon Sep 17 00:00:00 2001 From: Stefan Ceriu Date: Tue, 7 Dec 2021 14:43:39 +0200 Subject: [PATCH] Merge together SwiftUI template model files and update folder structure. --- .../TemplateUserProfileCoordinator.swift | 34 ++--- ...lateUserProfileCoordinatorParameters.swift | 21 --- .../MockTemplateUserProfileScreenState.swift | 0 .../TemplateUserProfileStateAction.swift | 22 ---- .../Model/TemplateUserProfileViewAction.swift | 24 ---- .../TemplateUserProfileViewModelResult.swift | 22 ---- .../Model/TemplateUserProfileViewState.swift | 24 ---- ....swift => TemplateUserProfileModels.swift} | 34 ++++- .../TemplateUserProfileViewModel.swift | 2 - ...TemplateUserProfileViewModelProtocol.swift | 0 .../TemplateRoomChatCoordinator.swift | 34 ++--- ...emplateRoomChatCoordinatorParamaters.swift | 21 --- .../MockTemplateRoomChatScreenState.swift | 1 - .../Model/TemplateRoomChatBubble.swift | 26 ---- .../TemplateRoomChatBubbleImageContent.swift | 24 ---- .../Model/TemplateRoomChatBubbleItem.swift | 28 ---- .../TemplateRoomChatBubbleItemContent.swift | 23 ---- .../Model/TemplateRoomChatMember.swift | 36 ------ .../Model/TemplateRoomChatMessage.swift | 27 ---- .../TemplateRoomChatMessageContent.swift | 25 ---- .../TemplateRoomChatMessageTextContent.swift | 25 ---- ...lateRoomChatRoomInitializationStatus.swift | 23 ---- .../Model/TemplateRoomChatStateAction.swift | 24 ---- .../Model/TemplateRoomChatViewAction.swift | 23 ---- .../TemplateRoomChatViewModelAction.swift | 22 ---- .../TemplateRoomChatViewModelBindings.swift | 22 ---- .../Model/TemplateRoomChatViewState.swift | 32 ----- .../TemplateRoomChatModels.swift | 122 ++++++++++++++++++ .../TemplateRoomChatViewModel.swift | 0 .../TemplateRoomChatViewModelProtocol.swift | 0 .../TemplateRoomListCoordinator.swift | 34 ++--- ...emplateRoomListCoordinatorParamaters.swift | 21 --- .../MockTemplateRoomListScreenState.swift | 0 .../TemplateRoomListCoordinatorAction.swift | 23 ---- .../Model/TemplateRoomListRoom.swift | 25 ---- .../Model/TemplateRoomListStateAction.swift | 22 ---- .../Model/TemplateRoomListViewAction.swift | 23 ---- .../TemplateRoomListViewModelAction.swift | 23 ---- ...ate.swift => TemplateRoomListModels.swift} | 35 +++++ .../TemplateRoomListViewModel.swift | 0 .../TemplateRoomListViewModelProtocol.swift | 0 Tools/Templates/createSwiftUISingleScreen.sh | 3 - Tools/Templates/createSwiftUITwoScreen.sh | 6 - 43 files changed, 244 insertions(+), 692 deletions(-) delete mode 100644 RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Coordinator/TemplateUserProfileCoordinatorParameters.swift rename RiotSwiftUI/Modules/Template/SimpleUserProfileExample/{Service/Mock => }/MockTemplateUserProfileScreenState.swift (100%) delete mode 100644 RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileStateAction.swift delete mode 100644 RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileViewAction.swift delete mode 100644 RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileViewModelResult.swift delete mode 100644 RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileViewState.swift rename RiotSwiftUI/Modules/Template/SimpleUserProfileExample/{Model/TemplateUserProfilePresence.swift => TemplateUserProfileModels.swift} (60%) rename RiotSwiftUI/Modules/Template/SimpleUserProfileExample/{ViewModel => }/TemplateUserProfileViewModel.swift (99%) rename RiotSwiftUI/Modules/Template/SimpleUserProfileExample/{ViewModel => }/TemplateUserProfileViewModelProtocol.swift (100%) delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/Coordinator/TemplateRoomChatCoordinatorParamaters.swift rename RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/{Service/Mock => }/MockTemplateRoomChatScreenState.swift (99%) delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/Model/TemplateRoomChatBubble.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/Model/TemplateRoomChatBubbleImageContent.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/Model/TemplateRoomChatBubbleItem.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/Model/TemplateRoomChatBubbleItemContent.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/Model/TemplateRoomChatMember.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/Model/TemplateRoomChatMessage.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/Model/TemplateRoomChatMessageContent.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/Model/TemplateRoomChatMessageTextContent.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/Model/TemplateRoomChatRoomInitializationStatus.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/Model/TemplateRoomChatStateAction.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/Model/TemplateRoomChatViewAction.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/Model/TemplateRoomChatViewModelAction.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/Model/TemplateRoomChatViewModelBindings.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/Model/TemplateRoomChatViewState.swift create mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/TemplateRoomChatModels.swift rename RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/{ViewModel => }/TemplateRoomChatViewModel.swift (100%) rename RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomChat/{ViewModel => }/TemplateRoomChatViewModelProtocol.swift (100%) delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomList/Coordinator/TemplateRoomListCoordinatorParamaters.swift rename RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomList/{Service/Mock => }/MockTemplateRoomListScreenState.swift (100%) delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomList/Model/TemplateRoomListCoordinatorAction.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomList/Model/TemplateRoomListRoom.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomList/Model/TemplateRoomListStateAction.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomList/Model/TemplateRoomListViewAction.swift delete mode 100644 RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomList/Model/TemplateRoomListViewModelAction.swift rename RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomList/{Model/TemplateRoomListViewState.swift => TemplateRoomListModels.swift} (50%) rename RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomList/{ViewModel => }/TemplateRoomListViewModel.swift (100%) rename RiotSwiftUI/Modules/Template/TemplateAdvancedRoomsExample/TemplateRoomList/{ViewModel => }/TemplateRoomListViewModelProtocol.swift (100%) diff --git a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Coordinator/TemplateUserProfileCoordinator.swift b/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Coordinator/TemplateUserProfileCoordinator.swift index 02874dee9..190d12a9f 100644 --- a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Coordinator/TemplateUserProfileCoordinator.swift +++ b/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Coordinator/TemplateUserProfileCoordinator.swift @@ -1,23 +1,27 @@ -/* - Copyright 2021 New Vector Ltd - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ +// +// Copyright 2021 New Vector Ltd +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// import Foundation import UIKit import SwiftUI +struct TemplateUserProfileCoordinatorParameters { + let session: MXSession +} + final class TemplateUserProfileCoordinator: Coordinator { // MARK: - Properties diff --git a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Coordinator/TemplateUserProfileCoordinatorParameters.swift b/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Coordinator/TemplateUserProfileCoordinatorParameters.swift deleted file mode 100644 index 7f162ce38..000000000 --- a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Coordinator/TemplateUserProfileCoordinatorParameters.swift +++ /dev/null @@ -1,21 +0,0 @@ -// -// Copyright 2021 New Vector Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import Foundation - -struct TemplateUserProfileCoordinatorParameters { - let session: MXSession -} diff --git a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Service/Mock/MockTemplateUserProfileScreenState.swift b/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/MockTemplateUserProfileScreenState.swift similarity index 100% rename from RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Service/Mock/MockTemplateUserProfileScreenState.swift rename to RiotSwiftUI/Modules/Template/SimpleUserProfileExample/MockTemplateUserProfileScreenState.swift diff --git a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileStateAction.swift b/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileStateAction.swift deleted file mode 100644 index f0695826b..000000000 --- a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileStateAction.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// Copyright 2021 New Vector Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import Foundation - -enum TemplateUserProfileStateAction { - case viewAction(TemplateUserProfileViewAction) - case updatePresence(TemplateUserProfilePresence) -} diff --git a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileViewAction.swift b/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileViewAction.swift deleted file mode 100644 index 69d45742f..000000000 --- a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileViewAction.swift +++ /dev/null @@ -1,24 +0,0 @@ -// -// Copyright 2021 New Vector Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import Foundation - -enum TemplateUserProfileViewAction { - case incrementCount - case decrementCount - case cancel - case done -} diff --git a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileViewModelResult.swift b/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileViewModelResult.swift deleted file mode 100644 index 2c2965f5b..000000000 --- a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileViewModelResult.swift +++ /dev/null @@ -1,22 +0,0 @@ -// -// Copyright 2021 New Vector Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import Foundation - -enum TemplateUserProfileViewModelResult { - case cancel - case done -} diff --git a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileViewState.swift b/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileViewState.swift deleted file mode 100644 index 7f78fc8d5..000000000 --- a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfileViewState.swift +++ /dev/null @@ -1,24 +0,0 @@ -// -// Copyright 2021 New Vector Ltd -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -import Foundation - -struct TemplateUserProfileViewState: BindableState { - let avatar: AvatarInputProtocol? - let displayName: String? - var presence: TemplateUserProfilePresence - var count: Int -} diff --git a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfilePresence.swift b/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/TemplateUserProfileModels.swift similarity index 60% rename from RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfilePresence.swift rename to RiotSwiftUI/Modules/Template/SimpleUserProfileExample/TemplateUserProfileModels.swift index c2d61aaea..62e4c895c 100644 --- a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/Model/TemplateUserProfilePresence.swift +++ b/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/TemplateUserProfileModels.swift @@ -16,13 +16,17 @@ import Foundation +// MARK: - Coordinator + enum TemplateUserProfilePresence { case online case idle case offline } -extension TemplateUserProfilePresence { +extension TemplateUserProfilePresence: Identifiable, CaseIterable { + var id: Self { self } + var title: String { switch self { case .online: @@ -35,8 +39,30 @@ extension TemplateUserProfilePresence { } } -extension TemplateUserProfilePresence: CaseIterable { } +// MARK: View model -extension TemplateUserProfilePresence: Identifiable { - var id: Self { self } +enum TemplateUserProfileStateAction { + case viewAction(TemplateUserProfileViewAction) + case updatePresence(TemplateUserProfilePresence) +} + +enum TemplateUserProfileViewModelResult { + case cancel + case done +} + +// MARK: View + +struct TemplateUserProfileViewState: BindableState { + let avatar: AvatarInputProtocol? + let displayName: String? + var presence: TemplateUserProfilePresence + var count: Int +} + +enum TemplateUserProfileViewAction { + case incrementCount + case decrementCount + case cancel + case done } diff --git a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/ViewModel/TemplateUserProfileViewModel.swift b/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/TemplateUserProfileViewModel.swift similarity index 99% rename from RiotSwiftUI/Modules/Template/SimpleUserProfileExample/ViewModel/TemplateUserProfileViewModel.swift rename to RiotSwiftUI/Modules/Template/SimpleUserProfileExample/TemplateUserProfileViewModel.swift index 604665f3c..e476b467e 100644 --- a/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/ViewModel/TemplateUserProfileViewModel.swift +++ b/RiotSwiftUI/Modules/Template/SimpleUserProfileExample/TemplateUserProfileViewModel.swift @@ -17,8 +17,6 @@ import SwiftUI import Combine - - @available(iOS 14, *) typealias TemplateUserProfileViewModelType = StateStoreViewModel /tmp/$$ && mv /tmp/$$ ${file} - echo '// File created from SimpleUserProfileExample' | cat - ${file} > /tmp/$$ && mv /tmp/$$ ${file} - mv ${file} ${file/TemplateUserProfile/$SCREEN_NAME} done diff --git a/Tools/Templates/createSwiftUITwoScreen.sh b/Tools/Templates/createSwiftUITwoScreen.sh index e82027fc1..5d822d42e 100755 --- a/Tools/Templates/createSwiftUITwoScreen.sh +++ b/Tools/Templates/createSwiftUITwoScreen.sh @@ -53,9 +53,3 @@ do mv ${file} ${file/TemplateRoomChat/$DETAIL_SCREEN_NAME} fi done - -for file in $(find * -type f -print) -do - echo "// $ createSwiftUITwoScreen.sh $@" | cat - ${file} > /tmp/$$ && mv /tmp/$$ ${file} - echo '// File created from TemplateAdvancedRoomsExample' | cat - ${file} > /tmp/$$ && mv /tmp/$$ ${file} -done