Skip to content

Commit ee2cfd0

Browse files
committed
๐Ÿ› ๏ธ :: QnaEntity ๊ฐ€์ ธ์˜ค๋Š” ๋กœ์ง ์ˆ˜์ •
1 parent 80c1dc2 commit ee2cfd0

File tree

4 files changed

+26
-15
lines changed

4 files changed

+26
-15
lines changed

โ€ŽProjects/Flow/Sources/MyPage/Review/WritableReviewFlow.swiftโ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ private extension WritableReviewFlow {
4545
view?.dismiss = { question, answer, techCode in
4646
self.rootViewController.viewModel.techCode = techCode.code
4747
self.rootViewController.viewModel.interviewReviewInfo.accept(
48-
[QnaEntity(
48+
QnaEntity(
4949
question: question,
5050
answer: answer,
5151
area: techCode.keyword
52-
)]
52+
)
5353
)
5454
}
5555
self.rootViewController.present(

โ€ŽProjects/Presentation/Sources/WritableReview/Components/QuestionListDetailView.swiftโ€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ final class QuestionListDetailView: BaseView {
145145
}
146146

147147
func configureView(model: QnaEntity) {
148-
super.configureView()
148+
super.configureView()
149149
questionLabel.text = model.question
150150
codeLabel.text = model.area
151151
answerLabel.text = model.answer

โ€ŽProjects/Presentation/Sources/WritableReview/WritableReviewViewController.swiftโ€Ž

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,15 @@ public final class WritableReviewViewController: BaseViewController<WritableRevi
113113

114114
let output = viewModel.transform(input)
115115

116-
output.interviewReviewInfo.asObservable()
116+
output.qnaInfoList.asObservable()
117117
.bind(onNext: {
118-
self.emptyQuestionListView.isHidden = !$0.isEmpty
119118
self.questionListDetailStackView.setFieldType($0)
119+
})
120+
.disposed(by: disposeBag)
121+
122+
output.interviewReviewInfoList.asObservable()
123+
.bind(onNext: {
124+
self.emptyQuestionListView.isHidden = !$0.isEmpty
120125
if !$0.isEmpty {
121126
self.showJobisToast(text: "์งˆ๋ฌธ์ด ์ถ”๊ฐ€๋˜์—ˆ์–ด์š”!", inset: 92)
122127
self.writableReviewButton.isEnabled = true

โ€ŽProjects/Presentation/Sources/WritableReview/WritableReviewViewModel.swiftโ€Ž

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ public final class WritableReviewViewModel: BaseViewModel, Stepper {
1010
private let disposeBag = DisposeBag()
1111
public var companyID = 0
1212
private let postReviewUseCase: PostReviewUseCase
13-
public var interviewReviewInfo = BehaviorRelay<[QnaEntity]>(value: [])
14-
public var interviewReviewInfoList: [QnaElementRequestQuery] = []
13+
public var interviewReviewInfo = PublishRelay<QnaEntity>()
14+
public var qnaInfoList = PublishRelay<[QnaEntity]>()
15+
public var interviewReviewInfoList = BehaviorRelay<[QnaElementRequestQuery]>(value: [])
1516
public var techCode: Int?
1617

1718
init(
@@ -27,7 +28,8 @@ public final class WritableReviewViewModel: BaseViewModel, Stepper {
2728
}
2829

2930
public struct Output {
30-
let interviewReviewInfo: BehaviorRelay<[QnaEntity]>
31+
let interviewReviewInfoList: BehaviorRelay<[QnaElementRequestQuery]>
32+
let qnaInfoList: PublishRelay<[QnaEntity]>
3133
}
3234

3335
public func transform(_ input: Input) -> Output {
@@ -39,29 +41,33 @@ public final class WritableReviewViewModel: BaseViewModel, Stepper {
3941
.disposed(by: disposeBag)
4042

4143
self.interviewReviewInfo.asObservable()
42-
.subscribe(onNext: { data in
43-
data.forEach { qnaEntity in
44-
self.interviewReviewInfoList.append(QnaElementRequestQuery(
44+
.subscribe(onNext: { qnaEntity in
45+
self.qnaInfoList.accept([qnaEntity])
46+
var value = self.interviewReviewInfoList.value
47+
value.append(
48+
QnaElementRequestQuery(
4549
question: qnaEntity.question,
4650
answer: qnaEntity.answer,
4751
codeID: self.techCode ?? 0
48-
))
49-
}
52+
)
53+
)
54+
self.interviewReviewInfoList.accept(value)
5055
})
5156
.disposed(by: disposeBag)
5257

5358
input.writableReviewButtonDidTap.asObservable()
5459
.flatMap {
5560
self.postReviewUseCase.execute(req: PostReviewRequestQuery(
5661
companyID: self.companyID,
57-
qnaElements: self.interviewReviewInfoList
62+
qnaElements: self.interviewReviewInfoList.value
5863
))
5964
}
6065
.subscribe()
6166
.disposed(by: disposeBag)
6267

6368
return Output(
64-
interviewReviewInfo: interviewReviewInfo
69+
interviewReviewInfoList: interviewReviewInfoList,
70+
qnaInfoList: self.qnaInfoList
6571
)
6672
}
6773
}

0 commit comments

Comments
ย (0)