Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksey Belousov <aleksey@maps.me>2020-04-09 02:17:35 +0300
committerVladimir Byko-Ianko <bykoianko@gmail.com>2020-04-14 16:19:24 +0300
commita8b87e8497b4f8ad1d7034d75b73cb473ab0ada3 (patch)
treec1202cfcaf2e476a306eaeaf07480d1f54a99ba9 /iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC
parent1671c95bfb35cc36e2fbe494668ca8e2df982e95 (diff)
[iOS] Refresh reviews section in PP after adding review
https://jira.mail.ru/browse/MAPSME-13637
Diffstat (limited to 'iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC')
-rw-r--r--iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCAddReview/UGCAddReviewController.swift54
-rw-r--r--iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCAddReview/UGCReviewModel.swift8
-rw-r--r--iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCRating.swift4
3 files changed, 29 insertions, 37 deletions
diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCAddReview/UGCAddReviewController.swift b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCAddReview/UGCAddReviewController.swift
index b4a55d34a7..bf8d6967e6 100644
--- a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCAddReview/UGCAddReviewController.swift
+++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCAddReview/UGCAddReviewController.swift
@@ -1,43 +1,45 @@
@objc(MWMGCReviewSaver)
protocol UGCReviewSaver {
typealias onSaveHandler = (Bool) -> Void
- func saveUgc(model: UGCAddReviewController.Model, language: String, resultHandler: @escaping onSaveHandler)
+ func saveUgc(placePageData: PlacePageData, model: UGCReviewModel, language: String, resultHandler: @escaping onSaveHandler)
}
@objc(MWMUGCAddReviewController)
final class UGCAddReviewController: MWMTableViewController {
- typealias Model = UGCReviewModel
+ private weak var textCell: UGCAddReviewTextCell?
+ private var reviewPosted = false
- weak var textCell: UGCAddReviewTextCell?
- var reviewPosted = false
-
- enum Sections {
+ private enum Sections {
case ratings
case text
}
- @objc static func instance(model: Model, saver: UGCReviewSaver) -> UGCAddReviewController {
- let vc = UGCAddReviewController(nibName: toString(self), bundle: nil)
- vc.model = model
- vc.saver = saver
- return vc
- }
+ private let placePageData: PlacePageData
+ private let model: UGCReviewModel
+ private let saver: UGCReviewSaver
+ private var sections: [Sections] = []
- private var model: Model! {
- didSet {
- sections = []
- assert(!model.ratings.isEmpty)
- sections.append(.ratings)
- sections.append(.text)
+ @objc init(placePageData: PlacePageData, rating: UgcSummaryRatingType, saver: UGCReviewSaver) {
+ self.placePageData = placePageData
+ self.saver = saver
+ let ratings = placePageData.ratingCategories.map {
+ UGCRatingStars(title: $0, value: CGFloat(rating.rawValue))
}
+ model = UGCReviewModel(ratings: ratings, text: "")
+ super.init(nibName: toString(UGCAddReviewController.self), bundle: nil)
+ title = placePageData.previewData.title
}
- private var sections: [Sections] = []
- private var saver: UGCReviewSaver!
+ required init?(coder: NSCoder) {
+ fatalError("init(coder:) has not been implemented")
+ }
override func viewDidLoad() {
super.viewDidLoad()
- configNavBar()
+ sections.append(.ratings)
+ sections.append(.text)
+
+ navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(onDone))
configTableView()
}
@@ -48,11 +50,6 @@ final class UGCAddReviewController: MWMTableViewController {
}
}
- private func configNavBar() {
- title = model.title
- navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(onDone))
- }
-
private func configTableView() {
tableView.registerNib(cellClass: UGCAddReviewRatingCell.self)
tableView.registerNib(cellClass: UGCAddReviewTextCell.self)
@@ -70,7 +67,10 @@ final class UGCAddReviewController: MWMTableViewController {
reviewPosted = true
model.text = text
- saver.saveUgc(model: model, language: textCell?.reviewLanguage ?? "en", resultHandler: { (saveResult) in
+ saver.saveUgc(placePageData: placePageData,
+ model: model,
+ language: textCell?.reviewLanguage ?? "en",
+ resultHandler: { (saveResult) in
guard let nc = self.navigationController else { return }
if !saveResult {
diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCAddReview/UGCReviewModel.swift b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCAddReview/UGCReviewModel.swift
index 42abfde712..f1b0d6e51c 100644
--- a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCAddReview/UGCReviewModel.swift
+++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCAddReview/UGCReviewModel.swift
@@ -1,16 +1,10 @@
@objc(MWMUGCReviewModel)
final class UGCReviewModel: NSObject {
- let reviewValue: UgcSummaryRatingType
-
@objc let ratings: [UGCRatingStars]
@objc var text: String
- let title: String
-
- @objc init(reviewValue: UgcSummaryRatingType, ratings: [UGCRatingStars], title: String, text: String) {
- self.reviewValue = reviewValue
+ init(ratings: [UGCRatingStars], text: String) {
self.ratings = ratings
- self.title = title
self.text = text
}
}
diff --git a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCRating.swift b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCRating.swift
index b468368f86..57f2768e94 100644
--- a/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCRating.swift
+++ b/iphone/Maps/UI/PlacePage/PlacePageLayout/Content/UGC/UGCRating.swift
@@ -2,11 +2,9 @@
final class UGCRatingStars: NSObject {
@objc let title: String
@objc var value: CGFloat
- let maxValue: CGFloat
- @objc init(title: String, value: CGFloat, maxValue: CGFloat) {
+ init(title: String, value: CGFloat) {
self.title = title
self.value = value
- self.maxValue = maxValue
}
}