Conversation
- static strings are placed in the 'Localizable.strings' file for localization - a group of files for Russian and English languages has been created.
…tring' function. Created the 'Filters' button and it's UI configured.
…r of repetitions in trackers.
Changed color sets for dark and light themes.
Fixed the display issue of stub images.
Updated Localizable.strings for filter cases.
…rackersViewController'. Added missing NSLocalizedStrings to the main screen.
|
Когда будете проверять, пожалуйста, оставьте более понятные инструкции к действиям, я уже обращалась к наставникам, но было непонятно. Лучше, если в коде прямо укажете, где исправить, у меня плохо получается понимать, когда вы загадками и абстрактно пишите. Спасибо |
| } | ||
| private func checkEmptyCategoriesScreen() { | ||
| if !viewModel.categories.isEmpty { | ||
| categoriesTableView.isHidden = true |
There was a problem hiding this comment.
Логику данного метода можно сократить в два раза, например так:
let isEmptyCategories = !viewModel.categories.isEmpty
categoriesTableView.isHidden = !isEmptyCategories
emptyCategoryPlaceholder.isHidden = isEmptyCategories
emptyCategoryText.isHidden = isEmptyCategories
| } | ||
| } | ||
|
|
||
| func tableView(_ tableView: UITableView, contextMenuConfigurationForRowAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? { |
There was a problem hiding this comment.
Метод кажется очень большим и нагруженным, может попробовать его декомпозировать и какую-то часть логики вынести в отдельный приватный метод
| func addTrackerToCategory(to title: String?, tracker: Tracker) { | ||
| try? self.categoryStore.addTrackerToCategory(to: title, tracker: tracker) | ||
| func updateCategory(category: TrackerCategory?, header: String) { | ||
| try! self.categoryStore.updateCategory(category: category, header: header) |
There was a problem hiding this comment.
Force try было бы круто не использовать и поменять на опциональный, как это сделано ниже
| backgroundColor = .clear | ||
| clipsToBounds = true | ||
|
|
||
| addSubview(borderView) |
There was a problem hiding this comment.
Здесь можно также использовать forEach чтобы сократить количество повторяющегося кода
| final class StatisticsViewController: UIViewController { | ||
|
|
||
| let cellReuseIdentifier = "StatisticViewController" | ||
| var trackersViewController: TrackersViewController? |
There was a problem hiding this comment.
Точно ли есть необходимость так завязываться на ViewController ? Может надежнее его передавать через инициализатор ?
Возможно из-за этого подхода на экране всегда показываются ячейки со счетчиками, даже когда трекеров нет
There was a problem hiding this comment.
О, спасибо, помогло пофиксить.
| private func showPlaceholder() { | ||
| guard let trackersViewController = trackersViewController else { return } | ||
|
|
||
| if trackersViewController.completedTrackers.count > 0 { |
There was a problem hiding this comment.
Здесь также можно сократить код в два раза, как предлагалось выше в похожем кейсе
| private var category: String? = nil | ||
|
|
||
| private let addCategoryViewController = CategoryViewController() | ||
| //private var category: String? = nil |
There was a problem hiding this comment.
Давай избавимся от закомментированного кода
| trackerDescription.text = tracker.name | ||
|
|
||
| self.pinnedTracker.isHidden = tracker.pinned ? false : true | ||
| print("Preview", tracker.pinned) |
|
@MiraiChan не совсем понял комментарий по поводу инструкций к действиям. По предыдущим ПР-ам и ревью, кажется что описывались проблемы очень конкретно и понятно, с указанием в коде, где нужно поправить. |
…ssues of trackers' statistics.
…omments. Force unwrap replaced with optionals.
…ted initializer (init(context:)) when initializing TrackerCategoryStore in the convenience initializer (init()).
Sprint_17 done