diff --git a/LionHeart-iOS/LionHeart-iOS/Scenes/Article/ArticleDetail/Cells/ThumnailTableViewCell.swift b/LionHeart-iOS/LionHeart-iOS/Scenes/Article/ArticleDetail/Cells/ThumnailTableViewCell.swift index 4eb6a47f..25ee277a 100644 --- a/LionHeart-iOS/LionHeart-iOS/Scenes/Article/ArticleDetail/Cells/ThumnailTableViewCell.swift +++ b/LionHeart-iOS/LionHeart-iOS/Scenes/Article/ArticleDetail/Cells/ThumnailTableViewCell.swift @@ -123,10 +123,16 @@ private extension ThumnailTableViewCell { } extension ThumnailTableViewCell { + func setThumbnailImageView() { + bookMarkButton.isHidden = false + gradientImageView.isHidden = false + } + func setImageTypeCell() { imageCaptionLabel.snp.updateConstraints { make in make.bottom.equalToSuperview().inset(72) } + gradientImageView.isHidden = true bookMarkButton.isHidden = true } } diff --git a/LionHeart-iOS/LionHeart-iOS/Scenes/Article/ArticleDetail/ViewControllers/ArticleDetailViewController.swift b/LionHeart-iOS/LionHeart-iOS/Scenes/Article/ArticleDetail/ViewControllers/ArticleDetailViewController.swift index 26a9888e..2a45608a 100644 --- a/LionHeart-iOS/LionHeart-iOS/Scenes/Article/ArticleDetail/ViewControllers/ArticleDetailViewController.swift +++ b/LionHeart-iOS/LionHeart-iOS/Scenes/Article/ArticleDetail/ViewControllers/ArticleDetailViewController.swift @@ -33,6 +33,8 @@ final class ArticleDetailViewController: UIViewController { // MARK: - Properties + private var isBookMarked: Bool? + private var articleDatas: [BlockTypeAppData]? { didSet { self.articleTableView.reloadData() @@ -40,10 +42,6 @@ final class ArticleDetailViewController: UIViewController { } } -// private var articleDatas: [BlockTypeAppData] = ArticleDetail.dummy().toAppData() - - private var isArticleMarked: Bool? - private var articleId: Int? private var contentOffsetY: CGFloat = 0 @@ -91,6 +89,7 @@ extension ArticleDetailViewController { do { let bookmarkRequest = BookmarkRequest(articleId: articleId, bookmarkStatus: isSelected) try await BookmarkService.shared.postBookmark(bookmarkRequest) + isBookMarked = isSelected } catch { guard let error = error as? NetworkError else { return } self.handleError(error) @@ -191,19 +190,24 @@ extension ArticleDetailViewController: UITableViewDataSource { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { guard let articleDatas else { return UITableViewCell() } + switch articleDatas[indexPath.row] { case .thumbnail(let isMarked, let thumbnailModel): let cell = ThumnailTableViewCell.dequeueReusableCell(to: articleTableView) - self.isArticleMarked = isMarked - cell.isMarked = self.isArticleMarked cell.inputData = thumbnailModel - cell.selectionStyle = .none cell.bookmarkButtonDidTap = { isSelected in guard let articleId = self.articleId else { return } - + self.articleBookMark(articleId: articleId, isSelected: isSelected) } + + if let isBookMarked { + cell.isMarked = isBookMarked + } else { + cell.isMarked = isMarked + } + cell.setThumbnailImageView() return cell case .articleTitle(let titleModel): let cell = TitleTableViewCell.dequeueReusableCell(to: articleTableView)