Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

잔류 신청 페이지 UI 퍼블리싱 #167

Merged
merged 42 commits into from
Feb 27, 2023
Merged
Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
bd71dc9
feat :: 새로운 Feature 생성 및 graph 변경
DSMInhyeKang Feb 15, 2023
0b55638
feat :: ApplyFeature 파일 StudyRoomFeature로 이동
DSMInhyeKang Feb 16, 2023
8f1249c
feat :: 자습실 기능 StudyRoomFeature로 이전
DSMInhyeKang Feb 16, 2023
4591a63
feat :: 신청 메인 화면 UI 퍼블리싱
DSMInhyeKang Feb 16, 2023
827df2d
feat :: 신청 메인 화면 UI 퍼블리싱
DSMInhyeKang Feb 17, 2023
9a1ba79
feat :: 네비게이션 기능 구현
DSMInhyeKang Feb 17, 2023
98c67de
refactor :: NavigationView 중첩 코드 리팩토링
DSMInhyeKang Feb 17, 2023
2242a2d
fix :: 네비게이션 백버튼 중첩 버그 수정
DSMInhyeKang Feb 17, 2023
53a3d4c
fix :: 네비게이션 바 수정
DSMInhyeKang Feb 17, 2023
eca1558
refactor :: ApplyView 코드 리팩토링
DSMInhyeKang Feb 19, 2023
bbf797a
feat :: 잔류 신청 페이지 UI 퍼블리싱
DSMInhyeKang Feb 21, 2023
fa4e5b9
refactor :: UI 코드 리팩토링
DSMInhyeKang Feb 21, 2023
d64f5f1
feat :: 잔류 신청 페이지 UI 퍼블리싱
DSMInhyeKang Feb 23, 2023
7555e75
refactor :: swiftlint 수정
DSMInhyeKang Feb 23, 2023
343ba07
refactor :: UI 오류 수정
DSMInhyeKang Feb 23, 2023
1687669
feat :: 항목 디테일 화살표 버튼 수정
DSMInhyeKang Feb 23, 2023
aafbf8b
feat :: UI 코드 리팩토링
DSMInhyeKang Feb 23, 2023
d8a319d
refactor :: 옵셔널 삭제
DSMInhyeKang Feb 23, 2023
349d717
refactor :: UI 코드 리팩토링
DSMInhyeKang Feb 23, 2023
09f94c0
refactor :: 파일 이름 변경
DSMInhyeKang Feb 24, 2023
ee52890
feat :: update graph
DSMInhyeKang Feb 24, 2023
9ddea59
style :: 스타일 가이드에 맞게 수정
DSMInhyeKang Feb 24, 2023
028afe0
refactor :: comment 반영
DSMInhyeKang Feb 24, 2023
dfd60e9
fix :: conflicts 해결
DSMInhyeKang Feb 24, 2023
422d0c9
refactor :: comment 반영
DSMInhyeKang Feb 24, 2023
21bdab3
feat :: 스크롤뷰, 네비게이션 바 변경
DSMInhyeKang Feb 24, 2023
f7d557a
fix :: conflicts 해결
DSMInhyeKang Feb 25, 2023
8fa4795
fix :: conflicts 해결
DSMInhyeKang Feb 25, 2023
d9e320f
fix :: conflicts 해결
DSMInhyeKang Feb 25, 2023
105e79e
fix :: 네비게이션 바 수정
DSMInhyeKang Feb 26, 2023
0a85378
fix :: conflicts 해결
DSMInhyeKang Feb 26, 2023
4047541
refactor :: comment 반영
DSMInhyeKang Feb 26, 2023
f6e55d3
refactor :: comment 반영
DSMInhyeKang Feb 26, 2023
845484a
refactor :: @EnvironmentObject 해제 및 @AppStorage 처리
DSMInhyeKang Feb 26, 2023
3829592
fix :: conflicts 해결
DSMInhyeKang Feb 26, 2023
ba60cd7
feat :: @EnvironmentObject 삭제
DSMInhyeKang Feb 26, 2023
e57a2ea
feat :: 신청 상태 저장
DSMInhyeKang Feb 26, 2023
e873214
refactor :: 코드 리팩토링
DSMInhyeKang Feb 27, 2023
a7fbd3c
refactor :: 코멘트 반영
DSMInhyeKang Feb 27, 2023
39e3fca
refactor :: 코멘트 반영
DSMInhyeKang Feb 27, 2023
304de04
refactor :: comment 반영
DSMInhyeKang Feb 27, 2023
b97871b
feat :: 에러 발생 시 state nil 처리
DSMInhyeKang Feb 27, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ public extension TargetDependency {
}

public extension TargetDependency.Project.Features {
static let RemainApplyFeature = TargetDependency.feature(name: "RemainApplyFeature")
static let StudyRoomFeature = TargetDependency.feature(name: "StudyRoomFeature")
static let SplashFeature = TargetDependency.feature(name: "SplashFeature")
static let MyPageFeature = TargetDependency.feature(name: "MyPageFeature")
static let NoticeFeature = TargetDependency.feature(name: "NoticeFeature")
Expand Down
10 changes: 8 additions & 2 deletions Projects/App/Project.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,14 @@ let isCI = (ProcessInfo.processInfo.environment["TUIST_CI"] ?? "0") == "1" ? tru
let settinges: Settings =
.settings(base: Environment.baseSetting,
configurations: [
.debug(name: .dev, xcconfig: isCI ? nil : .relativeToXCConfig(type: .dev, name: Environment.targetName)),
.release(name: .prod, xcconfig: isCI ? nil : .relativeToXCConfig(type: .prod, name: Environment.targetName))
.debug(name: .dev, xcconfig: isCI ? nil : .relativeToXCConfig(
type: .dev,
name: Environment.targetName)
),
.release(name: .prod, xcconfig: isCI ? nil : .relativeToXCConfig(
type: .prod,
name: Environment.targetName)
)
],
defaultSettings: .recommended)

Expand Down
8 changes: 8 additions & 0 deletions Projects/App/Sources/Application/DI/AppComponent.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import RenewalPasswordFeature
import MainTabFeature
import HomeFeature
import ApplyFeature
import StudyRoomFeature
import RemainApplyFeature
import MyPageFeature
import NoticeFeature
import SplashFeature
Expand Down Expand Up @@ -112,4 +114,10 @@ public extension AppComponent {
var studyRoomListComponent: StudyRoomListComponent {
StudyRoomListComponent(parent: self)
}
var applyPageComponent: ApplyPageComponent {
ApplyPageComponent(parent: self)
}
var remainApplyComponent: RemainApplyComponent {
RemainApplyComponent(parent: self)
}
}
152 changes: 98 additions & 54 deletions Projects/App/Sources/Application/NeedleGenerated.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,13 @@ import MyPageFeature
import NeedleFoundation
import NetworkModule
import NoticeFeature
import RemainApplyFeature
import RenewalPasswordFeature
import RootFeature
import SigninFeature
import SignupFeature
import SplashFeature
import StudyRoomFeature
import SwiftUI

// swiftlint:disable unused_declaration
Expand Down Expand Up @@ -182,8 +184,8 @@ private class MainTabDependency2826cdb310ed0b17a725Provider: MainTabDependency {
var homeComponent: HomeComponent {
return appComponent.homeComponent
}
var studyRoomListComponent: StudyRoomListComponent {
return appComponent.studyRoomListComponent
var applyPageComponent: ApplyPageComponent {
return appComponent.applyPageComponent
}
var noticeListComponent: NoticeListComponent {
return appComponent.noticeListComponent
Expand Down Expand Up @@ -286,6 +288,50 @@ private class CheckPasswordDependencyd8ff624643356835c570Provider: CheckPassword
private func factorycb24ea072925f86bef40f47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
return CheckPasswordDependencyd8ff624643356835c570Provider(appComponent: parent1(component) as! AppComponent)
}
private class StudyRoomDetailDependency00589e4f8d1416a01b43Provider: StudyRoomDetailDependency {
var fetchStudyAvailableTimeUseCase: any FetchStudyAvailableTimeUseCase {
return appComponent.fetchStudyAvailableTimeUseCase
}
var fetchSeatTypesUseCase: any FetchSeatTypesUseCase {
return appComponent.fetchSeatTypesUseCase
}
var fetchDetailStudyRoomUseCase: any FetchDetailStudyRoomUseCase {
return appComponent.fetchDetailStudyRoomUseCase
}
var applyStudyRoomSeatUseCase: any ApplyStudyRoomSeatUseCase {
return appComponent.applyStudyRoomSeatUseCase
}
var cancelStudyRoomSeatUseCase: any CancelStudyRoomSeatUseCase {
return appComponent.cancelStudyRoomSeatUseCase
}
private let appComponent: AppComponent
init(appComponent: AppComponent) {
self.appComponent = appComponent
}
}
/// ^->AppComponent->StudyRoomDetailComponent
private func factorya36f40c25dcb280bae0ff47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
return StudyRoomDetailDependency00589e4f8d1416a01b43Provider(appComponent: parent1(component) as! AppComponent)
}
private class StudyRoomListDependencyef56e26c25d5de596604Provider: StudyRoomListDependency {
var fetchStudyRoomListUseCase: any FetchStudyRoomListUseCase {
return appComponent.fetchStudyRoomListUseCase
}
var fetchStudyAvailableTimeUseCase: any FetchStudyAvailableTimeUseCase {
return appComponent.fetchStudyAvailableTimeUseCase
}
var studyRoomDetailComponent: StudyRoomDetailComponent {
return appComponent.studyRoomDetailComponent
}
private let appComponent: AppComponent
init(appComponent: AppComponent) {
self.appComponent = appComponent
}
}
/// ^->AppComponent->StudyRoomListComponent
private func factory7451c5364e65ee2d46bbf47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
return StudyRoomListDependencyef56e26c25d5de596604Provider(appComponent: parent1(component) as! AppComponent)
}
private class RootDependency3944cc797a4a88956fb5Provider: RootDependency {
var signinComponent: SigninComponent {
return appComponent.signinComponent
Expand Down Expand Up @@ -343,49 +389,21 @@ private class HomeDependency443c4e1871277bd8432aProvider: HomeDependency {
private func factory67229cdf0f755562b2b1f47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
return HomeDependency443c4e1871277bd8432aProvider(appComponent: parent1(component) as! AppComponent)
}
private class StudyRoomDetailDependency00589e4f8d1416a01b43Provider: StudyRoomDetailDependency {
var fetchStudyAvailableTimeUseCase: any FetchStudyAvailableTimeUseCase {
return appComponent.fetchStudyAvailableTimeUseCase
}
var fetchSeatTypesUseCase: any FetchSeatTypesUseCase {
return appComponent.fetchSeatTypesUseCase
}
var fetchDetailStudyRoomUseCase: any FetchDetailStudyRoomUseCase {
return appComponent.fetchDetailStudyRoomUseCase
}
var applyStudyRoomSeatUseCase: any ApplyStudyRoomSeatUseCase {
return appComponent.applyStudyRoomSeatUseCase
}
var cancelStudyRoomSeatUseCase: any CancelStudyRoomSeatUseCase {
return appComponent.cancelStudyRoomSeatUseCase
}
private let appComponent: AppComponent
init(appComponent: AppComponent) {
self.appComponent = appComponent
}
}
/// ^->AppComponent->StudyRoomDetailComponent
private func factorya36f40c25dcb280bae0ff47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
return StudyRoomDetailDependency00589e4f8d1416a01b43Provider(appComponent: parent1(component) as! AppComponent)
}
private class StudyRoomListDependencyef56e26c25d5de596604Provider: StudyRoomListDependency {
var fetchStudyRoomListUseCase: any FetchStudyRoomListUseCase {
return appComponent.fetchStudyRoomListUseCase
}
var fetchStudyAvailableTimeUseCase: any FetchStudyAvailableTimeUseCase {
return appComponent.fetchStudyAvailableTimeUseCase
private class ApplyPageDependency3fe4e7c221b14c86d427Provider: ApplyPageDependency {
var studyRoomListComponent: StudyRoomListComponent {
return appComponent.studyRoomListComponent
}
var studyRoomDetailComponent: StudyRoomDetailComponent {
return appComponent.studyRoomDetailComponent
var remainApplyComponent: RemainApplyComponent {
return appComponent.remainApplyComponent
}
private let appComponent: AppComponent
init(appComponent: AppComponent) {
self.appComponent = appComponent
}
}
/// ^->AppComponent->StudyRoomListComponent
private func factory7451c5364e65ee2d46bbf47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
return StudyRoomListDependencyef56e26c25d5de596604Provider(appComponent: parent1(component) as! AppComponent)
/// ^->AppComponent->ApplyPageComponent
private func factory45f688c5d4c7f313fc8df47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
return ApplyPageDependency3fe4e7c221b14c86d427Provider(appComponent: parent1(component) as! AppComponent)
}
private class AuthenticationEmailDependency73189eb572618b10e0fbProvider: AuthenticationEmailDependency {
var verifyAuthCodeUseCase: any VerifyAuthCodeUseCase {
Expand Down Expand Up @@ -435,6 +453,17 @@ private class EnterInformationDependency9204f24c784151f429ddProvider: EnterInfor
private func factory359a960501e79e833f64f47b58f8f304c97af4d5(_ component: NeedleFoundation.Scope) -> AnyObject {
return EnterInformationDependency9204f24c784151f429ddProvider(appComponent: parent1(component) as! AppComponent)
}
private class RemainApplyDependency4d8caef674dc801cbb54Provider: RemainApplyDependency {


init() {

}
}
/// ^->AppComponent->RemainApplyComponent
private func factory9615846346c92a2f8176e3b0c44298fc1c149afb(_ component: NeedleFoundation.Scope) -> AnyObject {
return RemainApplyDependency4d8caef674dc801cbb54Provider()
}
private class NoticeListDependency0e93eb53be8626c408e4Provider: NoticeListDependency {
var fetchNoticeListUseCase: any FetchNoticeListUseCase {
return appComponent.fetchNoticeListUseCase
Expand Down Expand Up @@ -529,6 +558,8 @@ extension AppComponent: Registration {
localTable["checkPasswordComponent-CheckPasswordComponent"] = { [unowned self] in self.checkPasswordComponent as Any }
localTable["modifyPasswordComponent-ModifyPasswordComponent"] = { [unowned self] in self.modifyPasswordComponent as Any }
localTable["studyRoomListComponent-StudyRoomListComponent"] = { [unowned self] in self.studyRoomListComponent as Any }
localTable["applyPageComponent-ApplyPageComponent"] = { [unowned self] in self.applyPageComponent as Any }
localTable["remainApplyComponent-RemainApplyComponent"] = { [unowned self] in self.remainApplyComponent as Any }
localTable["remoteNoticeDataSource-any RemoteNoticeDataSource"] = { [unowned self] in self.remoteNoticeDataSource as Any }
localTable["noticeRepository-any NoticeRepository"] = { [unowned self] in self.noticeRepository as Any }
localTable["fetchWhetherNewNoticeUseCase-any FetchWhetherNewNoticeUseCase"] = { [unowned self] in self.fetchWhetherNewNoticeUseCase as Any }
Expand Down Expand Up @@ -629,7 +660,7 @@ extension SignupProfileImageComponent: Registration {
extension MainTabComponent: Registration {
public func registerItems() {
keyPathToName[\MainTabDependency.homeComponent] = "homeComponent-HomeComponent"
keyPathToName[\MainTabDependency.studyRoomListComponent] = "studyRoomListComponent-StudyRoomListComponent"
keyPathToName[\MainTabDependency.applyPageComponent] = "applyPageComponent-ApplyPageComponent"
keyPathToName[\MainTabDependency.noticeListComponent] = "noticeListComponent-NoticeListComponent"
keyPathToName[\MainTabDependency.myPageComponent] = "myPageComponent-MyPageComponent"
}
Expand Down Expand Up @@ -666,6 +697,22 @@ extension CheckPasswordComponent: Registration {
keyPathToName[\CheckPasswordDependency.modifyPasswordComponent] = "modifyPasswordComponent-ModifyPasswordComponent"
}
}
extension StudyRoomDetailComponent: Registration {
public func registerItems() {
keyPathToName[\StudyRoomDetailDependency.fetchStudyAvailableTimeUseCase] = "fetchStudyAvailableTimeUseCase-any FetchStudyAvailableTimeUseCase"
keyPathToName[\StudyRoomDetailDependency.fetchSeatTypesUseCase] = "fetchSeatTypesUseCase-any FetchSeatTypesUseCase"
keyPathToName[\StudyRoomDetailDependency.fetchDetailStudyRoomUseCase] = "fetchDetailStudyRoomUseCase-any FetchDetailStudyRoomUseCase"
keyPathToName[\StudyRoomDetailDependency.applyStudyRoomSeatUseCase] = "applyStudyRoomSeatUseCase-any ApplyStudyRoomSeatUseCase"
keyPathToName[\StudyRoomDetailDependency.cancelStudyRoomSeatUseCase] = "cancelStudyRoomSeatUseCase-any CancelStudyRoomSeatUseCase"
}
}
extension StudyRoomListComponent: Registration {
public func registerItems() {
keyPathToName[\StudyRoomListDependency.fetchStudyRoomListUseCase] = "fetchStudyRoomListUseCase-any FetchStudyRoomListUseCase"
keyPathToName[\StudyRoomListDependency.fetchStudyAvailableTimeUseCase] = "fetchStudyAvailableTimeUseCase-any FetchStudyAvailableTimeUseCase"
keyPathToName[\StudyRoomListDependency.studyRoomDetailComponent] = "studyRoomDetailComponent-StudyRoomDetailComponent"
}
}
extension RootComponent: Registration {
public func registerItems() {
keyPathToName[\RootDependency.signinComponent] = "signinComponent-SigninComponent"
Expand All @@ -687,20 +734,10 @@ extension HomeComponent: Registration {
keyPathToName[\HomeDependency.fetchWhetherNewNoticeUseCase] = "fetchWhetherNewNoticeUseCase-any FetchWhetherNewNoticeUseCase"
}
}
extension StudyRoomDetailComponent: Registration {
extension ApplyPageComponent: Registration {
public func registerItems() {
keyPathToName[\StudyRoomDetailDependency.fetchStudyAvailableTimeUseCase] = "fetchStudyAvailableTimeUseCase-any FetchStudyAvailableTimeUseCase"
keyPathToName[\StudyRoomDetailDependency.fetchSeatTypesUseCase] = "fetchSeatTypesUseCase-any FetchSeatTypesUseCase"
keyPathToName[\StudyRoomDetailDependency.fetchDetailStudyRoomUseCase] = "fetchDetailStudyRoomUseCase-any FetchDetailStudyRoomUseCase"
keyPathToName[\StudyRoomDetailDependency.applyStudyRoomSeatUseCase] = "applyStudyRoomSeatUseCase-any ApplyStudyRoomSeatUseCase"
keyPathToName[\StudyRoomDetailDependency.cancelStudyRoomSeatUseCase] = "cancelStudyRoomSeatUseCase-any CancelStudyRoomSeatUseCase"
}
}
extension StudyRoomListComponent: Registration {
public func registerItems() {
keyPathToName[\StudyRoomListDependency.fetchStudyRoomListUseCase] = "fetchStudyRoomListUseCase-any FetchStudyRoomListUseCase"
keyPathToName[\StudyRoomListDependency.fetchStudyAvailableTimeUseCase] = "fetchStudyAvailableTimeUseCase-any FetchStudyAvailableTimeUseCase"
keyPathToName[\StudyRoomListDependency.studyRoomDetailComponent] = "studyRoomDetailComponent-StudyRoomDetailComponent"
keyPathToName[\ApplyPageDependency.studyRoomListComponent] = "studyRoomListComponent-StudyRoomListComponent"
keyPathToName[\ApplyPageDependency.remainApplyComponent] = "remainApplyComponent-RemainApplyComponent"
}
}
extension AuthenticationEmailComponent: Registration {
Expand All @@ -721,6 +758,11 @@ extension EnterInformationComponent: Registration {
keyPathToName[\EnterInformationDependency.authenticationEmailComponent] = "authenticationEmailComponent-AuthenticationEmailComponent"
}
}
extension RemainApplyComponent: Registration {
public func registerItems() {

}
}
extension NoticeListComponent: Registration {
public func registerItems() {
keyPathToName[\NoticeListDependency.fetchNoticeListUseCase] = "fetchNoticeListUseCase-any FetchNoticeListUseCase"
Expand Down Expand Up @@ -770,14 +812,16 @@ private func registerProviderFactory(_ componentPath: String, _ factory: @escapi
registerProviderFactory("^->AppComponent->RewardPointDetailComponent", factory87993268d9e212be8b1af47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->ChangeProfileComponent", factory239204ef0c47c0c68c97f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->CheckPasswordComponent", factorycb24ea072925f86bef40f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->StudyRoomDetailComponent", factorya36f40c25dcb280bae0ff47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->StudyRoomListComponent", factory7451c5364e65ee2d46bbf47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->RootComponent", factory264bfc4d4cb6b0629b40f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->SigninComponent", factory2882a056d84a613debccf47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->HomeComponent", factory67229cdf0f755562b2b1f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->StudyRoomDetailComponent", factorya36f40c25dcb280bae0ff47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->StudyRoomListComponent", factory7451c5364e65ee2d46bbf47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->ApplyPageComponent", factory45f688c5d4c7f313fc8df47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->AuthenticationEmailComponent", factory8798d0becd9d2870112af47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->ChangePasswordComponent", factoryab7c4d87dab53e0a51b9f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->EnterInformationComponent", factory359a960501e79e833f64f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->RemainApplyComponent", factory9615846346c92a2f8176e3b0c44298fc1c149afb)
registerProviderFactory("^->AppComponent->NoticeListComponent", factorye14e687c08985bdffcd0f47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->NoticeDetailComponent", factory3db143c2f80d621d5a7ff47b58f8f304c97af4d5)
registerProviderFactory("^->AppComponent->FindIDComponent", factory8dd2f9e0b545ead35ecaf47b58f8f304c97af4d5)
Expand Down
4 changes: 3 additions & 1 deletion Projects/Features/ApplyFeature/Project.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ let project = Project.makeModule(
name: "ApplyFeature",
product: .staticFramework,
dependencies: [
.Project.Features.BaseFeature
.Project.Features.BaseFeature,
.Project.Features.StudyRoomFeature,
.Project.Features.RemainApplyFeature
]
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import SwiftUI
import StudyRoomFeature
import RemainApplyFeature
import NeedleFoundation

public protocol ApplyPageDependency: Dependency {
var studyRoomListComponent: StudyRoomListComponent { get }
var remainApplyComponent: RemainApplyComponent { get }
}

public final class ApplyPageComponent: Component<ApplyPageDependency> {
public func makeView() -> some View {
ApplyPageView(
viewModel: ApplyPageViewModel(),
studyRoomListComponent: dependency.studyRoomListComponent,
remainApplyComponent: dependency.remainApplyComponent
)
}
}
Loading