Showing
3 changed files
with
27 additions
and
22 deletions
No preview for this file type
... | @@ -17,6 +17,8 @@ protocol ProfileCouponFiltersTableViewCellDelegate: AnyObject { | ... | @@ -17,6 +17,8 @@ protocol ProfileCouponFiltersTableViewCellDelegate: AnyObject { |
17 | 17 | ||
18 | weak var delegate: ProfileCouponFiltersTableViewCellDelegate? | 18 | weak var delegate: ProfileCouponFiltersTableViewCellDelegate? |
19 | var data: [CouponFilterModel]? | 19 | var data: [CouponFilterModel]? |
20 | + var couponFilterSelected: CouponFilterModel? | ||
21 | +// var couponFilterSelected: CouponFilterModel = CouponFilterModel(title: "Ενεργά") | ||
20 | 22 | ||
21 | public override func awakeFromNib() { | 23 | public override func awakeFromNib() { |
22 | super.awakeFromNib() | 24 | super.awakeFromNib() |
... | @@ -72,8 +74,9 @@ protocol ProfileCouponFiltersTableViewCellDelegate: AnyObject { | ... | @@ -72,8 +74,9 @@ protocol ProfileCouponFiltersTableViewCellDelegate: AnyObject { |
72 | // Configure the view for the selected state | 74 | // Configure the view for the selected state |
73 | } | 75 | } |
74 | 76 | ||
75 | - func configureCell(data: [CouponFilterModel]?) { | 77 | + func configureCell(data: [CouponFilterModel]?, couponFilterSelected: CouponFilterModel) { |
76 | self.data = data | 78 | self.data = data |
79 | + self.couponFilterSelected = couponFilterSelected | ||
77 | 80 | ||
78 | self.collectionView.reloadData(); | 81 | self.collectionView.reloadData(); |
79 | } | 82 | } |
... | @@ -93,8 +96,9 @@ extension ProfileCouponFiltersTableViewCell: UICollectionViewDataSource, UIColle | ... | @@ -93,8 +96,9 @@ extension ProfileCouponFiltersTableViewCell: UICollectionViewDataSource, UIColle |
93 | public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { | 96 | public func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { |
94 | let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ProfileFilterCollectionViewCell", for: indexPath) as! ProfileFilterCollectionViewCell | 97 | let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "ProfileFilterCollectionViewCell", for: indexPath) as! ProfileFilterCollectionViewCell |
95 | if let filter = self.data?[indexPath.row] { | 98 | if let filter = self.data?[indexPath.row] { |
96 | - // TODO: Fix dynamic | 99 | +// let isSelected = self.data?[indexPath.row].title == "Ενεργά" |
97 | - let isSelected = self.data?[indexPath.row].title == "Ενεργά" | 100 | +// let isSelected = self.data?[indexPath.row].title == self.couponFilterSelected.title |
101 | + let isSelected = self.data?[indexPath.row].title == self.couponFilterSelected?.title ?? "Ενεργά" | ||
98 | cell.configureCell(data: filter, isSelected: isSelected) | 102 | cell.configureCell(data: filter, isSelected: isSelected) |
99 | } | 103 | } |
100 | return cell; | 104 | return cell; | ... | ... |
... | @@ -242,7 +242,7 @@ import UIKit | ... | @@ -242,7 +242,7 @@ import UIKit |
242 | // Favorite Offers | 242 | // Favorite Offers |
243 | let redeemedOffers = allOffers.filter { $0.redeemed ?? false } | 243 | let redeemedOffers = allOffers.filter { $0.redeemed ?? false } |
244 | redeemedOffersSection = SectionModel( | 244 | redeemedOffersSection = SectionModel( |
245 | - title: "Αγαπημένα", | 245 | + title: "Εξαργυρωμένα", |
246 | count: redeemedOffers.count, | 246 | count: redeemedOffers.count, |
247 | offers: redeemedOffers | 247 | offers: redeemedOffers |
248 | ) | 248 | ) |
... | @@ -256,6 +256,19 @@ import UIKit | ... | @@ -256,6 +256,19 @@ import UIKit |
256 | 256 | ||
257 | self.navigationController?.pushViewController(vc, animated: true) | 257 | self.navigationController?.pushViewController(vc, animated: true) |
258 | } | 258 | } |
259 | + | ||
260 | + private func handleFilterPress(with filter: CouponFilterModel) { | ||
261 | + switch (filter.title) { | ||
262 | + case "Ενεργά": | ||
263 | + self.filteredOffersSection = activeOffersSection | ||
264 | + case "Αγαπημένα": | ||
265 | + self.filteredOffersSection = favoriteOffersSection | ||
266 | + case "Εξαργυρωμένα": | ||
267 | + self.filteredOffersSection = redeemedOffersSection | ||
268 | + default: | ||
269 | + self.filteredOffersSection = activeOffersSection | ||
270 | + } | ||
271 | + } | ||
259 | } | 272 | } |
260 | 273 | ||
261 | // MARK: - TableView | 274 | // MARK: - TableView |
... | @@ -328,7 +341,7 @@ extension ProfileViewController: UITableViewDelegate, UITableViewDataSource { | ... | @@ -328,7 +341,7 @@ extension ProfileViewController: UITableViewDelegate, UITableViewDataSource { |
328 | let cell = tableView.dequeueReusableCell(withIdentifier: "ProfileCouponFiltersTableViewCell", for: indexPath) as! ProfileCouponFiltersTableViewCell | 341 | let cell = tableView.dequeueReusableCell(withIdentifier: "ProfileCouponFiltersTableViewCell", for: indexPath) as! ProfileCouponFiltersTableViewCell |
329 | 342 | ||
330 | cell.delegate = self // Set the offers delegate | 343 | cell.delegate = self // Set the offers delegate |
331 | - cell.configureCell(data: self.couponFilters) | 344 | + cell.configureCell(data: self.couponFilters, couponFilterSelected: self.couponFilterSelected) |
332 | 345 | ||
333 | return cell | 346 | return cell |
334 | 347 | ||
... | @@ -343,25 +356,12 @@ extension ProfileViewController: UITableViewDelegate, UITableViewDataSource { | ... | @@ -343,25 +356,12 @@ extension ProfileViewController: UITableViewDelegate, UITableViewDataSource { |
343 | } | 356 | } |
344 | 357 | ||
345 | public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { | 358 | public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { |
346 | - if (indexPath.section == 0) { | 359 | + if (indexPath.section <= 3) { |
347 | - // Do nothing - Each button is handled differently | ||
348 | - | ||
349 | - } else if (indexPath.section == 1) { | ||
350 | - // Do nothing | ||
351 | - } else if (indexPath.section == 2) { | ||
352 | - // Do nothing | ||
353 | - } else if (indexPath.section == 3) { | ||
354 | - // Do nothing | ||
355 | - } else if (indexPath.section == 4) { | ||
356 | - // Do nothing | ||
357 | - } else if (indexPath.section == 5) { | ||
358 | - // Do nothing | ||
359 | - } else if (indexPath.section == 6) { | ||
360 | - // Do nothing | ||
361 | - } else if (indexPath.section == 7) { | ||
362 | // Do nothing | 360 | // Do nothing |
363 | } else { | 361 | } else { |
364 | - // Do nothing | 362 | + if let offer = self.filteredOffersSection?.offers[indexPath.row] { |
363 | + openCouponViewController(with: offer) | ||
364 | + } | ||
365 | } | 365 | } |
366 | } | 366 | } |
367 | } | 367 | } |
... | @@ -378,6 +378,7 @@ extension ProfileViewController: MyRewardsOffersScrollTableViewCellDelegate { | ... | @@ -378,6 +378,7 @@ extension ProfileViewController: MyRewardsOffersScrollTableViewCellDelegate { |
378 | extension ProfileViewController: ProfileCouponFiltersTableViewCellDelegate { | 378 | extension ProfileViewController: ProfileCouponFiltersTableViewCellDelegate { |
379 | func didSelectFilter(_ filter: CouponFilterModel) { | 379 | func didSelectFilter(_ filter: CouponFilterModel) { |
380 | self.couponFilterSelected = filter | 380 | self.couponFilterSelected = filter |
381 | + handleFilterPress(with: filter) | ||
381 | self.tableView.reloadData() | 382 | self.tableView.reloadData() |
382 | } | 383 | } |
383 | } | 384 | } | ... | ... |
-
Please register or login to post a comment