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

댓글 페이지 - 개선사항 구현 및 버그 수정 #309

Merged
merged 8 commits into from
Apr 21, 2023

Conversation

WhiteHyun
Copy link
Member

📌 PR 요약

🌱 작업한 내용

  • 300자 이내로만 댓글이 써질 수 있도록 구현 (delegate로 처리)

  • 댓글 수정 중 다른 댓글을 삭제한 뒤 수정 버튼을 누르면 댓글로 처리되는 버그 수정(DeleteIDObserver을 별도로 추가해서 처리)

  • 개선사항

    • comments를 Set으로 변경, 집합연산을 수행하기 위함
    • BoardDetailViewModelFactory를 구현, 공지에서도 같은 ViewModel을 차용할 예정 + 계속 추가되는 usecase

📸 스크린샷

댓글 삭제 후 답글이 써지지 않는 현상을 고침
수정 후

📮 관련 이슈

댓글 수정 시 reconfigureItems를 사용하기 위해 Item을 고유 ID인 commentID로 받도록 수정했습니다.
…ing it

답글버튼을 누르거나 댓글 수정버튼을 누른 상태에서 어떠한 댓글을 삭제하고 나면, targetID가 nil로 처리되어
UI상 답글 또는 댓글 수정중이라고 뜨고 있음에도 댓글로 달리는 버그가 존재하였고, 이를 수정했습니다.
- 차후 공지 관련 ViewModel에서도 사용될 예정이기 때문에, 갈아 끼워 적용할 수 있도록 팩토리 패턴을 구현하였습니다.
@WhiteHyun WhiteHyun added 🐛 bug Something isn't working 😎 Enhancement New feature or request 🥳MainPage labels Apr 20, 2023
@WhiteHyun WhiteHyun self-assigned this Apr 20, 2023
Copy link
Contributor

@soobin-k soobin-k left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다 승현님!!

Comment on lines +11 to +29
protocol BoardDetailViewModelFactory {
static func make(plubbingID: Int, boardModel: BoardModel) -> BoardDetailViewModel
}

final class BoardDetailViewModelWithFeedsFactory: BoardDetailViewModelFactory {

private init() { }

static func make(plubbingID: Int, boardModel: BoardModel) -> BoardDetailViewModel {
return BoardDetailViewModel(
plubbingID: plubbingID,
content: boardModel,
getCommentsUseCase: DefaultGetCommentsUseCase(),
postCommentUseCase: DefaultPostCommentUseCase(),
deleteCommentUseCase: DefaultDeleteCommentUseCase(),
editCommentUseCase: DefaultEditCommentUseCase()
)
}
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

댓글 관련된 usecase들을 한눈에 파악하기 좋은 것 같습니다👍👍

@@ -42,7 +45,7 @@ protocol BoardDetailViewModelType: BoardDetailViewModel {

protocol BoardDetailDataStore {
var content: BoardModel { get }
var comments: [CommentContent] { get }
var comments: Set<CommentContent> { get }
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

set 사용하니깐 코드도 간결해지고, 성능도 개선될 것 같네요..!!

@WhiteHyun WhiteHyun merged commit 0eecd88 into develop Apr 21, 2023
@WhiteHyun WhiteHyun deleted the feat/302-Comments/Bug branch April 21, 2023 01:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛 bug Something isn't working 😎 Enhancement New feature or request 🥳MainPage
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants