Implemented the FilterOption enumeration in the Feed framework.
This commit is contained in:
parent
249281424f
commit
05c4ed08d9
@ -0,0 +1,102 @@
|
||||
//
|
||||
// FilterOption.swift
|
||||
// ReviewsFeed
|
||||
//
|
||||
// Created by Javier Cicchelli on 20/03/2024.
|
||||
// Copyright © 2024 Röck+Cöde. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import ReviewsFoundationKit
|
||||
import ReviewsUIKit
|
||||
import UIKit
|
||||
|
||||
enum FilterOption: Int {
|
||||
case all = 0
|
||||
case only1Star
|
||||
case only2Star
|
||||
case only3Star
|
||||
case only4Star
|
||||
case only5Star
|
||||
}
|
||||
|
||||
// MARK: - Computed
|
||||
extension FilterOption {
|
||||
|
||||
var icon: String {
|
||||
switch self {
|
||||
case .all: .Icon.starAll
|
||||
case .only1Star: .Icon.star1
|
||||
case .only2Star: .Icon.star2
|
||||
case .only3Star: .Icon.star3
|
||||
case .only4Star: .Icon.star4
|
||||
case .only5Star: .Icon.star5
|
||||
}
|
||||
}
|
||||
|
||||
var text: String {
|
||||
switch self {
|
||||
case .all: NSLocalizedString(
|
||||
.Key.Menu.Action.allReviews,
|
||||
bundle: .module,
|
||||
comment: .empty
|
||||
)
|
||||
case .only1Star: NSLocalizedString(
|
||||
.Key.Menu.Action.only1StarReviews,
|
||||
bundle: .module,
|
||||
comment: .empty
|
||||
)
|
||||
case .only2Star: NSLocalizedString(
|
||||
.Key.Menu.Action.only2StarReviews,
|
||||
bundle: .module,
|
||||
comment: .empty
|
||||
)
|
||||
case .only3Star: NSLocalizedString(
|
||||
.Key.Menu.Action.only3StarReviews,
|
||||
bundle: .module,
|
||||
comment: .empty
|
||||
)
|
||||
case .only4Star: NSLocalizedString(
|
||||
.Key.Menu.Action.only4StarReviews,
|
||||
bundle: .module,
|
||||
comment: .empty
|
||||
)
|
||||
case .only5Star: NSLocalizedString(
|
||||
.Key.Menu.Action.only5StarReviews,
|
||||
bundle: .module,
|
||||
comment: .empty
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - CaseIterable
|
||||
extension FilterOption: CaseIterable {
|
||||
|
||||
// MARK: Computed
|
||||
static var allCases: [FilterOption] = [
|
||||
.only1Star,
|
||||
.only2Star,
|
||||
.only3Star,
|
||||
.only4Star,
|
||||
.only5Star
|
||||
]
|
||||
|
||||
}
|
||||
|
||||
// MARK: - String+Constants
|
||||
private extension String {
|
||||
enum Key {
|
||||
enum Menu {
|
||||
enum Action {
|
||||
static let allReviews = "common.filter.menu.all-reviews.action.title.text"
|
||||
static let only1StarReviews = "common.filter.menu.only-1-star-reviews.action.title.text"
|
||||
static let only2StarReviews = "common.filter.menu.only-2-star-reviews.action.title.text"
|
||||
static let only3StarReviews = "common.filter.menu.only-3-star-reviews.action.title.text"
|
||||
static let only4StarReviews = "common.filter.menu.only-4-star-reviews.action.title.text"
|
||||
static let only5StarReviews = "common.filter.menu.only-5-star-reviews.action.title.text"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -10,6 +10,7 @@
|
||||
0220ADA32BA90646001E6A9F /* FeedItemCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0220ADA22BA90646001E6A9F /* FeedItemCell.swift */; };
|
||||
023AC7FC2BAA3EC10027D064 /* Int+Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 023AC7FB2BAA3EC10027D064 /* Int+Constants.swift */; };
|
||||
02620B8C2BA89C9A00DE7137 /* FeedViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02620B8B2BA89C9A00DE7137 /* FeedViewModel.swift */; };
|
||||
02909E792BAB6B0200710E14 /* FilterOption.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02909E782BAB6B0200710E14 /* FilterOption.swift */; };
|
||||
02909E7B2BAB6D2E00710E14 /* Bundle+Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02909E7A2BAB6D2E00710E14 /* Bundle+Constants.swift */; };
|
||||
02DA924E2BAAE3FD00C47985 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = 02DA924D2BAAE3FD00C47985 /* Localizable.xcstrings */; };
|
||||
02DC7F9F2BA51793000EEEBE /* ReviewsFeed.h in Headers */ = {isa = PBXBuildFile; fileRef = 02DC7F912BA51793000EEEBE /* ReviewsFeed.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
@ -53,6 +54,7 @@
|
||||
0220ADA22BA90646001E6A9F /* FeedItemCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedItemCell.swift; sourceTree = "<group>"; };
|
||||
023AC7FB2BAA3EC10027D064 /* Int+Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Int+Constants.swift"; sourceTree = "<group>"; };
|
||||
02620B8B2BA89C9A00DE7137 /* FeedViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedViewModel.swift; sourceTree = "<group>"; };
|
||||
02909E782BAB6B0200710E14 /* FilterOption.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FilterOption.swift; sourceTree = "<group>"; };
|
||||
02909E7A2BAB6D2E00710E14 /* Bundle+Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Bundle+Constants.swift"; sourceTree = "<group>"; };
|
||||
02DA924D2BAAE3FD00C47985 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = "<group>"; };
|
||||
02DC7F8F2BA51793000EEEBE /* ReviewsFeed.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ReviewsFeed.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
@ -118,6 +120,7 @@
|
||||
02620B862BA89C0000DE7137 /* Logic */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
02909E772BAB6AD500710E14 /* Enumerations */,
|
||||
023AC7FA2BAA3EB60027D064 /* Extensions */,
|
||||
02620B8A2BA89C3300DE7137 /* Models */,
|
||||
02620B872BA89C0700DE7137 /* View Models */,
|
||||
@ -158,6 +161,14 @@
|
||||
path = Models;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
02909E772BAB6AD500710E14 /* Enumerations */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
02909E782BAB6B0200710E14 /* FilterOption.swift */,
|
||||
);
|
||||
path = Enumerations;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
02A6DA2F2BA591C000B943E2 /* Bundle */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -414,6 +425,7 @@
|
||||
0220ADA32BA90646001E6A9F /* FeedItemCell.swift in Sources */,
|
||||
02DC7FAF2BA51B4C000EEEBE /* Review.swift in Sources */,
|
||||
02DC7FAE2BA51B4C000EEEBE /* FeedListViewController.swift in Sources */,
|
||||
02909E792BAB6B0200710E14 /* FilterOption.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user