generated from GSM-MSG/MSG-Repository-Generator
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #57 from GSM-MSG/44-information-page-ui
🔀 :: 정보입력 페이지 기반 다져놓기
- Loading branch information
Showing
67 changed files
with
661 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 2 additions & 0 deletions
2
Projects/Core/DesignSystem/Sources/Extension/View+smsBackButton.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
6 changes: 6 additions & 0 deletions
6
Projects/Feature/InputCertificateInfoFeature/Interface/InputCertificateInfoBuildable.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
import SwiftUI | ||
|
||
public protocol InputCertificateInfoBuildable { | ||
associatedtype ViewType: View | ||
func makeView() -> ViewType | ||
} |
12 changes: 12 additions & 0 deletions
12
Projects/Feature/InputCertificateInfoFeature/Project.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
import ProjectDescription | ||
import ProjectDescriptionHelpers | ||
import DependencyPlugin | ||
|
||
let project = Project.makeModule( | ||
name: ModulePaths.Feature.InputCertificateInfoFeature.rawValue, | ||
product: .staticLibrary, | ||
targets: [.interface, .unitTest], | ||
internalDependencies: [ | ||
.Feature.BaseFeature | ||
] | ||
) |
15 changes: 15 additions & 0 deletions
15
Projects/Feature/InputCertificateInfoFeature/Sources/DI/InputCertificateInfoComponent.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
import BaseFeature | ||
import InputCertificateInfoFeatureInterface | ||
import NeedleFoundation | ||
import SwiftUI | ||
|
||
public protocol InputCertificateInfoDependency: Dependency {} | ||
|
||
public final class InputCertificateInfoComponent: | ||
Component<InputCertificateInfoDependency>, | ||
InputCertificateInfoBuildable { | ||
|
||
public func makeView() -> some View { | ||
EmptyView() | ||
} | ||
} |
3 changes: 3 additions & 0 deletions
3
Projects/Feature/InputCertificateInfoFeature/Sources/Intent/InputCertificateInfoIntent.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
import Foundation | ||
|
||
final class InputCertificateInfoIntent: InputCetrificateInfoIntentProtocol {} |
3 changes: 3 additions & 0 deletions
3
...ature/InputCertificateInfoFeature/Sources/Intent/InputCertificateInfoIntentProtocol.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
import Foundation | ||
|
||
protocol InputCertificateInfoIntentProtocol {} |
5 changes: 5 additions & 0 deletions
5
Projects/Feature/InputCertificateInfoFeature/Sources/Model/InputCertificateInfoModel.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
import Foundation | ||
|
||
final class InputCertificateInfoModel: ObservableObject, InputCertificateInfoStateProtocol {} | ||
|
||
extension InputCertificateInfoModel: InputCertificateInfoActionProtocol {} |
5 changes: 5 additions & 0 deletions
5
...Feature/InputCertificateInfoFeature/Sources/Model/InputCertificateInfoModelProtocol.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
import Foundation | ||
|
||
protocol InputCertificateInfoStateProtocol {} | ||
|
||
protocol InputCertificateInfoActionProtocol: AnyObject {} |
12 changes: 12 additions & 0 deletions
12
Projects/Feature/InputCertificateInfoFeature/Sources/Scene/InputCertificateInfoView.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
import BaseFeature | ||
import SwiftUI | ||
|
||
struct InputCertificateInfoView: View { | ||
@StateObject var container: MVIContainer<InputCertificateInfoIntentProtocol, InputCertificateInfoStateProtocol> | ||
var intent: any InputCertificateInfoIntentProtocol { container.intent } | ||
var state: any InputCertificateInfoStateProtocol { container.model } | ||
|
||
var body: some View { | ||
Text("Hello, World!") | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
Projects/Feature/InputCertificateInfoFeature/Tests/InputCertificateInfoFeatureTest.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
import XCTest | ||
|
||
final class InputCertificateInfoFeatureTests: XCTestCase { | ||
override func setUpWithError() throws {} | ||
|
||
override func tearDownWithError() throws {} | ||
|
||
func testExample() { | ||
XCTAssertEqual(1, 1) | ||
} | ||
} |
6 changes: 6 additions & 0 deletions
6
Projects/Feature/InputInformationFeature/Interface/InputInformationBuildable.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
import SwiftUI | ||
|
||
public protocol InputInformationBuildable { | ||
associatedtype ViewType: View | ||
func makeView() -> ViewType | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
import ProjectDescription | ||
import ProjectDescriptionHelpers | ||
import DependencyPlugin | ||
|
||
let project = Project.makeModule( | ||
name: ModulePaths.Feature.InputInformationFeature.rawValue, | ||
product: .staticLibrary, | ||
targets: [.interface, .unitTest], | ||
internalDependencies: [ | ||
.Feature.BaseFeature, | ||
.Feature.InputProfileInfoFeatureInterface, | ||
.Feature.InputSchoolLifeInfoFeatureInterface, | ||
.Feature.InputWorkInfoFeatureInterface, | ||
.Feature.InputMilitaryInfoFeatureInterface, | ||
.Feature.InputCertificateInfoFeatureInterface, | ||
.Feature.InputLanguageInfoFeatureInterface | ||
] | ||
) |
22 changes: 22 additions & 0 deletions
22
Projects/Feature/InputInformationFeature/Sources/DI/InputInformationComponent.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
import BaseFeature | ||
import InputInformationFeatureInterface | ||
import NeedleFoundation | ||
import SwiftUI | ||
|
||
public protocol InputInformationDependency: Dependency {} | ||
|
||
public final class InputInformationComponent: | ||
Component<InputInformationDependency>, | ||
InputInformationBuildable { | ||
|
||
public func makeView() -> some View { | ||
let model = InputInformationModel() | ||
let intent = InputInformationIntent(model: model) | ||
let container = MVIContainer( | ||
intent: intent as InputInformationIntentProtocol, | ||
model: model as InputInformationStateProtocol, | ||
modelChangePublisher: model.objectWillChange | ||
) | ||
return InputInformationView(container: container) | ||
} | ||
} |
9 changes: 9 additions & 0 deletions
9
Projects/Feature/InputInformationFeature/Sources/Intent/InputInformationIntent.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
import Foundation | ||
|
||
final class InputInformationIntent: InputInformationIntentProtocol { | ||
private weak var model: (any InputInformationActionProtocol)? | ||
|
||
init(model: any InputInformationActionProtocol) { | ||
self.model = model | ||
} | ||
} |
3 changes: 3 additions & 0 deletions
3
Projects/Feature/InputInformationFeature/Sources/Intent/InputInformationIntentProtocol.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
import Foundation | ||
|
||
protocol InputInformationIntentProtocol {} |
21 changes: 21 additions & 0 deletions
21
Projects/Feature/InputInformationFeature/Sources/Model/InputInformationModel.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
import Foundation | ||
|
||
final class InputInformationModel: ObservableObject, InputInformationStateProtocol { | ||
@Published var phase: InformationPhase = .profile | ||
} | ||
|
||
extension InputInformationModel: InputInformationActionProtocol { | ||
func prevButtonDidTap() { | ||
guard let currentIndex = InformationPhase.allCases.firstIndex(of: phase), | ||
currentIndex > 1 | ||
else { return } | ||
phase = InformationPhase.allCases[currentIndex - 1] | ||
} | ||
|
||
func nextButtonDidTap() { | ||
guard let currentIndex = InformationPhase.allCases.firstIndex(of: phase), | ||
currentIndex < InformationPhase.allCases.count - 1 | ||
else { return } | ||
phase = InformationPhase.allCases[currentIndex + 1] | ||
} | ||
} |
19 changes: 19 additions & 0 deletions
19
Projects/Feature/InputInformationFeature/Sources/Model/InputInformationModelProtocol.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
import Foundation | ||
|
||
enum InformationPhase: CaseIterable { | ||
case profile | ||
case school | ||
case workCondition | ||
case military | ||
case certification | ||
case language | ||
} | ||
|
||
protocol InputInformationStateProtocol { | ||
var phase: InformationPhase { get } | ||
} | ||
|
||
protocol InputInformationActionProtocol: AnyObject { | ||
func prevButtonDidTap() | ||
func nextButtonDidTap() | ||
} |
20 changes: 20 additions & 0 deletions
20
Projects/Feature/InputInformationFeature/Sources/Scene/InputInformationView.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import BaseFeature | ||
import SwiftUI | ||
|
||
struct InputInformationView: View { | ||
@StateObject var container: MVIContainer<InputInformationIntentProtocol, InputInformationStateProtocol> | ||
var intent: any InputInformationIntentProtocol { container.intent } | ||
var state: any InputInformationStateProtocol { container.model } | ||
|
||
var body: some View { | ||
InputInformationPageWrapView( | ||
selection: Binding( | ||
get: { state.phase }, | ||
set: { _ in } | ||
) | ||
) { | ||
Text("a") | ||
.tag(InformationPhase.profile) | ||
} | ||
} | ||
} |
23 changes: 23 additions & 0 deletions
23
...cts/Feature/InputInformationFeature/Sources/Scene/View/InputInformationPageWrapView.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
import SwiftUI | ||
|
||
struct InputInformationPageWrapView<Selection: Hashable, Content: View>: View { | ||
@Binding var selection: Selection | ||
var content: Content | ||
|
||
init( | ||
selection: Binding<Selection>, | ||
@ViewBuilder content: () -> Content | ||
) { | ||
_selection = selection | ||
self.content = content() | ||
} | ||
|
||
var body: some View { | ||
ZStack(alignment: .topTrailing) { | ||
TabView(selection: $selection) { | ||
content | ||
} | ||
.tabViewStyle(.page(indexDisplayMode: .never)) | ||
} | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
Projects/Feature/InputInformationFeature/Tests/InputInformationFeatureTest.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
import XCTest | ||
|
||
final class InputInformationFeatureTests: XCTestCase { | ||
override func setUpWithError() throws {} | ||
|
||
override func tearDownWithError() throws {} | ||
|
||
func testExample() { | ||
XCTAssertEqual(1, 1) | ||
} | ||
} |
6 changes: 6 additions & 0 deletions
6
Projects/Feature/InputLanguageInfoFeature/Interface/InputLanguageInfoBuildable.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
import SwiftUI | ||
|
||
public protocol InputLanguageInfoBuildable { | ||
associatedtype ViewType: View | ||
func makeView() -> ViewType | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
import ProjectDescription | ||
import ProjectDescriptionHelpers | ||
import DependencyPlugin | ||
|
||
let project = Project.makeModule( | ||
name: ModulePaths.Feature.InputLanguageInfoFeature.rawValue, | ||
product: .staticLibrary, | ||
targets: [.interface, .unitTest], | ||
internalDependencies: [ | ||
.Feature.BaseFeature | ||
] | ||
) |
15 changes: 15 additions & 0 deletions
15
Projects/Feature/InputLanguageInfoFeature/Sources/DI/InputLanguageInfoComponent.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
import BaseFeature | ||
import InputLanguageInfoFeatureInterface | ||
import NeedleFoundation | ||
import SwiftUI | ||
|
||
public protocol InputLanguageInfoDependency: Dependency {} | ||
|
||
public final class InputLanguageInfoComponent: | ||
Component<InputLanguageInfoDependency>, | ||
InputLanguageInfoBuildable { | ||
|
||
public func makeView() -> some View { | ||
EmptyView() | ||
} | ||
} |
3 changes: 3 additions & 0 deletions
3
Projects/Feature/InputLanguageInfoFeature/Sources/Intent/InputLanguageInfoIntent.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
import Foundation | ||
|
||
final class InputLanguageInfoIntent: InputLanguageInfoIntentProtocol {} |
3 changes: 3 additions & 0 deletions
3
...cts/Feature/InputLanguageInfoFeature/Sources/Intent/InputLanguageInfoIntentProtocol.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
import Foundation | ||
|
||
protocol InputLanguageInfoIntentProtocol {} |
5 changes: 5 additions & 0 deletions
5
Projects/Feature/InputLanguageInfoFeature/Sources/Model/InputLanguageInfoModel.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
import Foundation | ||
|
||
final class InputLanguageInfoModel: ObservableObject, InputLanguageInfoStateProtocol {} | ||
|
||
extension InputLanguageInfoModel: InputLanguageInfoActionProtocol {} |
5 changes: 5 additions & 0 deletions
5
Projects/Feature/InputLanguageInfoFeature/Sources/Model/InputLanguageInfoModelProtocol.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
import Foundation | ||
|
||
protocol InputLanguageInfoStateProtocol {} | ||
|
||
protocol InputLanguageInfoActionProtocol: AnyObject {} |
12 changes: 12 additions & 0 deletions
12
Projects/Feature/InputLanguageInfoFeature/Sources/Scene/InputLanguageInfoView.swift
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
import BaseFeature | ||
import SwiftUI | ||
|
||
struct InputLanguageInfoView: View { | ||
@StateObject var container: MVIContainer<InputLanguageInfoIntentProtocol, InputLanguageInfoStateProtocol> | ||
var intent: any InputLanguageInfoIntentProtocol { container.intent } | ||
var state: any InputLanguageInfoStateProtocol { container.model } | ||
|
||
var body: some View { | ||
Text("Hello, World!") | ||
} | ||
} |
Oops, something went wrong.